乐于分享
好东西不私藏

AI 只会聊天不够:Tool Use 如何让 Agent 真正「动手」

AI 只会聊天不够:Tool Use 如何让 Agent 真正「动手」

AI 只会聊天不够:Tool Use 如何让 Agent 真正「动手」

Tool Use(工具调用)— Agent 在 Loop 的 Act 阶段调用外部能力(读文件、执行命令、查 API 等),把「说」变成「做」,并把真实结果送回 Observe。


概述

前三篇我们分别聊了 Agent LoopHarness 和 Context Engineering:Loop 决定怎么一步步做事,Harness 决定能不能做、做完怎么办,Context 决定每一轮 Plan 站在什么信息起点上。

但有一个问题还没展开:Agent 的「行动」究竟是怎么发生的?

纯文本模型只能生成文字。没有 Tool Use,它无法读取你的代码库、无法运行测试、无法确认改动是否生效——只能凭训练数据「猜」。Tool Use 正是打破这一限制的关键机制:让 LLM 在推理过程中主动选择并调用外部工具,拿到真实反馈,再进入下一轮 Loop。

可以把 Tool Use 理解为 Agent 的「双手」:Harness 提供调度与权限,Context 提供决策依据,Tool Use 则是连接数字世界与真实环境的桥梁


没有 Tool Use 时,Agent 缺什么

维度
纯 Chat
具备 Tool Use 的 Agent
信息来源
模型内部知识 + 用户输入
上述 + 文件系统、终端、API 等实时数据
行动能力
输出文本建议
读写文件、执行命令、调用服务
结果验证
无法自证
跑测试、看日志、检查返回值
典型失败
幻觉代码、路径不存在
工具报错可被 Observe,进而修正
在 Loop 中的位置
只有 Plan,没有真实 Act
Act → Observe 闭环成立

上一篇提到的「引用而非内联」——保留文件路径、需要时再读取——也依赖 Tool Use:Agent 必须能调用 read_file 一类工具,才能把引用变成 fresh 的 Observe 输入。


Tool Use 在 Loop 中的位置

Tool Use 几乎完全对应 Agent Loop 的 Act 阶段,并由 Harness 的 工具层 负责落地执行:

一次典型的 Tool Use 往返:

  1. LLM 输出工具调用请求 — 指定工具名与参数(非自然语言「帮我读一下那个文件」)
  2. Harness 策略校验 — 该工具是否在白名单?参数是否越权?
  3. 工具层执行 — 调用真实实现,捕获输出或错误
  4. 结果结构化回传 — 作为 Observe 注入下一轮 Context
  5. LLM 继续推理 — 基于真实结果 Plan 下一步,或结束任务

Harness 在这里的角色至关重要:LLM 只负责「想调用什么」,能不能调、怎么调、调坏了怎么办,都由 Harness 兜底。


Function Calling 的基本流程

Function Calling(函数调用)是 Tool Use 最常见的实现方式——模型不直接执行代码,而是输出一段结构化请求,由运行时替它执行。

用户:修复 login.ts 的空指针问题Loop 1 — LLM 输出:  tool: search_code  args: { "query": "login", "path": "src/auth" }Harness 执行 → 返回:  { "matches": ["src/auth/login.ts", "src/auth/session.ts"] }Loop 2 — LLM 输出:  tool: read_file  args: { "path": "src/auth/login.ts", "start_line": 40, "end_line": 60 }Harness 执行 → 返回文件片段Loop 3 — LLM 输出:  tool: edit_file  args: { "path": "...", "patch": "..." }Harness 执行 → 返回 { "success": true }Loop 4 — LLM 输出:  tool: run_command  args: { "command": "npm test -- login" }Harness 执行 → 返回测试报告

注意几个特征:

  • 模型与执行分离:LLM 生成调用意图,Harness 负责执行——模型本身没有 shell 权限
  • 多轮交替:一次任务往往连续多次 Tool Use,而非一次调用搞定
  • 错误也是有效 Observefile not found、测试失败、权限拒绝,都应原样回传,供 Reflect 调整策略

工具描述(Schema)的设计

LLM 怎么知道有哪些工具、每个工具干什么?靠 Tool Schema(工具描述)——通常在任务启动时注入 Context,格式类似 JSON Schema:

{"name":"read_file","description":"读取指定路径的文件内容,支持行号范围","parameters":{"type":"object","properties":{"path":{"type":"string","description":"相对于项目根目录的文件路径"},"start_line":{"type":"integer","description":"起始行号,可选"},"end_line":{"type":"integer","description":"结束行号,可选"}},"required":["path"]}}

Schema 设计直接影响 Tool Use 的可靠性:

要素
好的做法
坏的做法
name
动词 + 对象,如 read_filerun_tests
含糊的 do_stuffhelper
description
说明用途、边界、何时该用 / 不该用
仅重复函数名
parameters
类型明确、必填项清晰、枚举有限选项
全 string、无约束、参数过多
粒度
一个工具做一件事
一个「万能工具」包打天下
数量
按任务场景注册最小必要集合
一次塞入 50+ 工具

description 是最被低估的字段。 模型选错工具,多半不是因为「笨」,而是因为两个工具的描述重叠、或缺少「何时不用我」的说明。

编程场景常见工具族:

  • 感知类read_filelist_dirsearch_codegit_diff
  • 变更类edit_filewrite_fileapply_patch
  • 验证类run_commandrun_testshttp_request
  • 协作类ask_user(请求人工确认或补充信息)

变更类与验证类应成对出现——Harness 策略层可以鼓励「改完必测」,避免 Agent 只写不验。


工具选择的可靠性问题

Tool Use 落地后,最常见的痛点不是「工具能不能跑」,而是 Agent 会不会用、用对不对

1. 选错工具

表现:该搜索代码却去读 README;该跑测试却手动 curl。原因:工具描述重叠;可用工具过多;Plan 阶段上下文不足。应对:精简工具集;在 description 中写清使用场景;Context 里注入当前步骤需要的工具提示。

2. 参数幻觉

表现:文件路径不存在、命令拼错、把相对路径写成绝对路径。原因:模型未先 Observe 目录结构就猜测路径。应对:优先 list_dir / search_code;Harness 对路径做存在性校验,失败信息明确回传。

3. 重复调用

表现:同一文件读五遍、同一失败命令反复执行。原因:Observe 结果未进入有效 Context;Reflect 缺少重复检测。应对:Harness 记录调用历史;重复时强制换策略(参见 [[02-给 AI 套上「缰绳」:Harness 如何让编程 Agent 不失控]])。

4. 跳过工具

表现:模型直接在回复里贴「修改后的代码」,不调用 edit_file原因:Chat 习惯未打破;未强制要求通过工具完成变更。应对:Harness 策略层规定「代码变更必须经工具落地」;纯文本输出仅用于解释,不视为 Act 完成。

5. 工具链断裂

表现:改了代码却不跑测试,或测试失败就宣布完成。原因:缺少验证步骤约束;工具集没有配套的验证工具。应对:任务模板或 Skill 中定义标准工具链:read → edit → test → confirm


一次任务的 Tool Use 轨迹

延续前几篇的登录修复示例,Tool Use 视角下的轨迹如下:

Loop 1  search_code("login")     → 定位候选文件Loop 2  read_file(login.ts:40-60) → 发现空值风险Loop 3  edit_file(patch)          → 添加空值检查Loop 4  write_file(test)          → 补充单元测试Loop 5  run_command(npm test)     → 全部通过 → 任务结束

对比纯 Chat:Chat 可能在 Loop 0 就输出「你应该在第 47 行加 if (user)」——但无法确认第 47 行现在是什么、改完测试是否通过。Tool Use 让每一步都有 可 Observe 的证据


常见反模式

1. 工具箱堆砌

注册大量工具「以防万一」,包括 Agent 当前任务根本用不到的。

后果:选择困难、误调用增多、Schema 占用 Context Token。应对:按任务类型动态加载工具子集;Harness 支持工具分组与按需启用。

2. Schema 即文档

把复杂业务逻辑全塞进 description,参数列表冗长。

后果:模型抓不住重点,关键约束被淹没。应对:description 保持简洁;复杂流程放到 Skill 或 Rule 静态上下文中。

3. 无结构化返回

工具返回一大段非结构化日志,原样塞进 Context。

后果:Context 洪水,关键错误信息被稀释(参见 [[03-上下文才是隐藏 Boss:AI 编程效率,多半取决于你喂了什么]])。应对:工具层对输出做截断与结构化;只回传与决策相关的字段。

4. 信任模型自检

不跑测试,仅凭模型说「应该没问题了」就结束 Loop。

后果:隐蔽 bug 流入代码库。应对:Harness 终止条件要求验证类 Tool Use 成功,而非 LLM 的自我声明。

5. 裸工具无 Harness

工具直接暴露给 LLM,无权限控制、无超时、无审计。

后果:误删文件、命令注入、不可追溯。应对:所有 Tool Use 必须经 Harness 工具层与策略层。


实践要点

  1. 工具要少而精:完成当前任务所需的最小集合,比「全能工具箱」更可靠
  2. description 写清楚边界:不只说「能做什么」,还要说「什么时候不该用我」
  3. 参数可校验:Harness 在执行前校验类型、路径、权限,失败信息要 actionable
  4. 返回结构化的 Observe:截断、摘要、标注成功/失败,方便下一轮 Plan
  5. 变更必验证:编辑类工具之后,策略层引导或强制调用验证类工具
  6. 记录调用轨迹:工具名、参数、返回值、耗时——调试 Agent 选错工具的第一手证据
  7. 与 Context 配合:工具结果进入 Context 前做裁剪;Stale 的文件内容在 re-read 后替换旧 Observe

Tool Use 解决的是 Agent 「能不能动手」的问题。下一篇我们将看 MCP(Model Context Protocol)——当工具不再局限于内置的几个,而是需要连接数据库、浏览器、Slack、Figma 等外部系统时,如何用标准协议统一接入。


本文是 AI Agent 系列的第四篇,前序文章:

  • [01] Agent Loop:AI 如何像人一样一步步思考
  • [02] Harness:给 AI 套上「缰绳」
  • [03] Context Engineering:上下文才是隐藏 Boss
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-28 14:34:25 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/811668.html
  2. 运行时间 : 0.100802s [ 吞吐率:9.92req/s ] 内存消耗:4,902.72kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=5f6914a456dd357eeadb9ef0513c48f7
  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.000526s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000601s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000283s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000249s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000477s ]
  6. SELECT * FROM `set` [ RunTime:0.000196s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000485s ]
  8. SELECT * FROM `article` WHERE `id` = 811668 LIMIT 1 [ RunTime:0.000626s ]
  9. UPDATE `article` SET `lasttime` = 1782628465 WHERE `id` = 811668 [ RunTime:0.008160s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000266s ]
  11. SELECT * FROM `article` WHERE `id` < 811668 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000650s ]
  12. SELECT * FROM `article` WHERE `id` > 811668 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000845s ]
  13. SELECT * FROM `article` WHERE `id` < 811668 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001420s ]
  14. SELECT * FROM `article` WHERE `id` < 811668 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005299s ]
  15. SELECT * FROM `article` WHERE `id` < 811668 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003196s ]
0.102513s