乐于分享
好东西不私藏

Hermes是怎么实现ReAct的?源码级拆解Agent推理引擎

Hermes是怎么实现ReAct的?源码级拆解Agent推理引擎
   本文是「深挖 Hermes 源码」系列第一篇。从 CLI 入口到核心推理循环,完整拆解工业级 Agent 框架的 ReAct 实现。下期将深挖 Skill 系统设计原理,建议关注、收藏。 

你是否也曾经用 LangChain、AutoGPT 这样的框架,手搓过各种 Agent 系统?

你可能试过构建 ReAct 框架来实现思维链推理,也许用过 Self-Reflection 来让 Agent 自我纠正,也许甚至探索过 Plan-and-Execute 或 Chain-of-Thought 这样复杂的模式。每一次都感到这些框架很复杂——能自己思考、自己规划、自己执行。

但接下来,你看到了 Hermes 这样的工业级 Agent 框架,运行得十分流畅高效。你不禁想问:Hermes 到底是如何实现这些 Agent 核心框架的?底层逻辑有多复杂?

今天,我要告诉你的真相是:所有的"复杂",其实源自一个看似简单的 while 循环

我决定撰写一系列深挖 Hermes 源码的文章,逐步看懂工业级 Agent 框架 Hermes 的设计哲学和实现细节。从底层推理引擎到上层应用接口,每一层都值得我们仔细研究。

这是第一篇。我花了时间把 Hermes 的核心源码从头梳理了一遍,从 CLI 入口、Agent 初始化、到核心推理循环再到工具调用——整个链路都摸清楚了。让我为你拆解 Hermes 是怎么做到的。

第一步:用户在终端输入一句话

# cli.py(命令行入口)class HermesCLI:    def run(self):        while True:            user_input = prompt(">> ")  # 等待用户输入            self.process_command(user_input)

用户在终端敲下:帮我总结一下 /Users/me/report.txt 里面的内容

这句话被 process_command() 接住。如果是斜杠命令(比如 /help),本地直接处理。如果是普通对话,就打包往下传给 AIAgent.chat()

第二步:AIAgent 做个"翻译官"

# run_agent.py(AI Agent 主类)class AIAgent:    def chat(self, message: str) -> str:        """最简单的调用接口"""        # 把用户的纯文本组装成标准格式      final_response = self.run_conversation(user_message=message)        return final_response

chat() 的工作很简单:接收用户的一句话,组装成符合 OpenAI 标准的格式,然后丢给真正的处理引擎 run_conversation()

第三步:心脏跳动 —— 开始循环(核心!)

现在到了最关键的部分。这就是 ReAct 的全部秘密:

# run_agent.py 的 run_conversation() 方法核心逻辑def run_conversation(self, user_message: str):    messages = [        {"role": "system", "content": "你是个智能助手..."},        {"role": "user", "content": user_message}    ]    api_call_count = 0    # ========== ReAct 的 while 循环 ==========    while api_call_count < self.max_iterations:  # 最多90次        # 1. 请求大模型,带上聊天记录 + 可用工具列表        response = self.client.chat.completions.create(            model="claude-opus",            messages=messages,            tools=get_tool_definitions(),            max_tokens=2000        )        # 2. 看大模型的回答        # 情况A:大模型直接说话了,任务完成        if not response.tool_calls:            return response.content  # 循环结束        # 情况B:大模型要调用工具        tool_results = []        for tool_call in response.tool_calls:            tool_name = tool_call.name            tool_args = tool_call.arguments        # 3. 在本地执行工具            result = handle_function_call(tool_name, tool_args)            tool_results.append({                "tool_call_id": tool_call.id,                "result": result            })        # 4. 把工具执行结果塞回聊天记录        for result in tool_results:            messages.append({                "role": "tool",                "content": result["result"]            })        api_call_count += 1        # 循环回到 while 开头,大模型继续思考...

这就是 ReAct 的全部。 没有黑魔法,就是:

① 给大模型工具列表

② 大模型决定要不要用

③ 如果用,本地跑代码

④ 结果塞回去,大模型再看一遍

⑤ 重复,直到大模型说完

第四步:工具怎么执行?

当大模型输出工具调用的 JSON 时,谁来接住?

答案是 handle_function_call()

# model_tools.pydef handle_function_call(tool_name: str, args: dict, task_id=None):    """工具路由器 - 根据工具名称,找到对应的函数执行"""    # 从注册表里找对应的工具实现    tool = get_tool_from_registry(tool_name)    if not tool:        return json.dumps({"error": f"工具不存在: {tool_name}"})    try:        result = tool["handler"](args, task_id=task_id)        return json.dumps({"success": True, "data": result})    except Exception as e:        return json.dumps({"error": str(e)})

工具是怎么注册进来的?很简单,每个工具文件顶部都有一句:

# tools/file_tools.pyfrom tools.registry import registrydef read_file_impl(path: str) -> str:    with open(path, 'r') as f:        return f.read()# 注册这个工具registry.register(    name="read_file",    schema={        "name": "read_file",        "description": "读取文件内容",        "parameters": {            "type": "object",            "properties": {                "path": {"type": "string", "description": "文件路径"}            }        }    },    handler=lambda args, **kw: read_file_impl(args["path"]))

就这么简单。大模型不用知道这个函数怎么实现的,它只知道:"我有个叫 read_file 的工具,我可以传一个文件路径给它。"

真实执行流程演示

用户问:总结一下 /Users/me/report.txt

循环第 1 轮

[用户输入] - [CLI] - [AIAgent.chat()]  |[LLM 看到] messages + tools = [read_file, write_file, ...]  |[LLM 思考] 用户让我总结文件,但我不知道文件内容。           我看到工具列表里有 read_file,那我先读一下吧。  |[LLM 输出] tool_calls: [{"name": "read_file", ...}]  |[本地执行] 结果:"第一季度销售额增长 30%,其中..."  |[更新 messages] 塞回工具结果  |api_call_count = 1,循环继续

循环第 2 轮

[LLM 再次请求] messages 里多了工具返回的文件内容  |[LLM 思考] 现在我看到了文件内容,我可以直接总结了。  |[LLM 输出] content: "总结:贵公司第一季度销售额增长30%..."           (这次没有 tool_calls,只有 content)  |[检查] if not response.tool_calls: 是的!  |[返回] return response.content循环结束

为什么 run_agent.py 有 14000 行?

理论上,ReAct 这么简单,代码不应该这么多。但一旦上生产环境,事情就复杂了。除了常见的容错处理外,Hermes 还需要适配 OpenAI、Anthropic、Gemini、DeepSeek 等多种模型的 API 格式差异

每个模型的接口、参数、返回格式都不同。Hermes 需要在底层做大量的适配代码,让上层逻辑无感知地支持所有这些模型。

具体来说,这 14000 行的开销包括:

1. 模型适配层 —— Claude 用 thinking_blocks,Gemini 用不同格式,需要统一提取推理过程

2. JSON 修复器 —— 大模型经常输出破损的 JSON(缺少双引号),代码得硬编码正则修复

3. 上下文压缩 —— 工具返回 10 万行日志时,不压缩下一轮 LLM 请求会 Token 超限

4. 死循环防护 —— 大模型可能一直调用错误的工具,最多 90 次强制终止

5. 并发执行 —— 多个工具可以并发执行(读 3 个文件同时进行),需要判断依赖关系

总结:ReAct 就是这么简单

写到这儿,你应该看出来了:

📌 ReAct 三步总结

① 思考(Reasoning) = 大模型看着工具列表,输出"我想用这个工具"

② 行动(Acting) = 本地代码找到对应的 Python 函数并执行

③ 循环 = 把执行结果塞回聊天记录,大模型再看一遍,接着想

没有什么黑魔法。所有的 AI Agent 框架,本质都是这个逻辑。

区别只在于:谁的 error handling 做得更硬核,谁的模型适配做得更全面,谁就能上生产环境不崩盘。

深度思考:为什么 ReAct 如此有效?

你可能会问:一个这么简单的框架,为什么能做到那么好的效果?

答案其实很简单:因为大模型本身能力提升了。

在过去的 Agent 框架时代,开发者们需要在框架代码里手搓大量的复杂逻辑:如何判断是否需要调用工具?手搓规则引擎。工具调用失败了怎么办?手搓重试逻辑。多个工具怎么组织执行顺序?手搓编排引擎。大模型的输出格式不对怎么办?手搓解析和修复。

这些都是框架级别的问题,占用了大量工程师的时间。

但现在不同了。 今天的大模型(Claude 3.5、GPT-4、Gemini 2.0)已经可以自己判断什么时候需要用工具、自己规划工具调用的顺序、自己从错误中学习和修正、自己按照格式输出工具调用。

这些原本需要框架处理的事情,现在大模型可以直接处理。所以 Hermes 的框架变得极其简单——它只需要做好"翻译"和"执行"这两件事,其他的都交给大模型。

这是 ReAct 框架仍然有效的根本原因。不是框架变得更聪明,而是大模型变得更聪明。框架反而可以变得更简单。

换句话说:Hermes 的优秀不在于框架的复杂度,而在于它充分信任大模型的能力,让大模型真正成为 Agent 的"脑子"。

这只是开始

好了,ReAct 的秘密我们都看透了。

下期,我将继续为你深挖 Hermes 是怎么支持 Skill 功能的。 你知道吗?Hermes 能让任何 Skill(脚本、代码、文档)自动被 Agent 理解和调用,这背后的机制是什么?它是如何做到像"插件系统"一样灵活的?

通过这一系列深挖 Hermes 源码的文章,我们将逐步看懂工业级 Agent 框架 Hermes 的设计哲学和实现细节。 从底层推理引擎,到中层技能管理,再到上层应用接口——每一层都值得我们仔细研究。

💬 关注熵息茶馆,回复"进群"加入交流群,一起探讨 AI Agent 开发技巧和 Hermes 源码。

推荐阅读
一文搞懂:DeepSeek V1到V4核心技术全解
深度长文 | DeepSeek的七道坎:一家量化基金如何用穷人思维重写AI规则
从Hermes和OpenClaw的竞争,看Agent进化论:Skill适者生存
你辛苦搭建的 Agent,正在被人下套
Harness Engineering设计:把人类协作经验注入AI Agent

   如果你觉得这篇文章有收获,请点个在看! 

   关注 熵息茶馆,我们下期继续深挖 Hermes! 

   干掉技术焦虑,看懂工业级 AI Agent。 

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-09 05:47:10 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/588946.html
  2. 运行时间 : 0.276422s [ 吞吐率:3.62req/s ] 内存消耗:4,809.24kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=21913f7f7924fad08df5317049d6ccc0
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000862s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001384s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.010143s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000649s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001744s ]
  6. SELECT * FROM `set` [ RunTime:0.001010s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001430s ]
  8. SELECT * FROM `article` WHERE `id` = 588946 LIMIT 1 [ RunTime:0.005040s ]
  9. UPDATE `article` SET `lasttime` = 1778276831 WHERE `id` = 588946 [ RunTime:0.009722s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000741s ]
  11. SELECT * FROM `article` WHERE `id` < 588946 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001111s ]
  12. SELECT * FROM `article` WHERE `id` > 588946 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003938s ]
  13. SELECT * FROM `article` WHERE `id` < 588946 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.007602s ]
  14. SELECT * FROM `article` WHERE `id` < 588946 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001922s ]
  15. SELECT * FROM `article` WHERE `id` < 588946 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008117s ]
0.280916s