3.2 看懂工具调用树
本节目标
搞懂对话里那些工具行是什么:agent 是怎么思考、怎么调工具、怎么一步步干完活的。
什么是工具调用树
普通聊天里,AI 给你一段文字就结束了。但 dsh 的 agent 不一样,它要真正动手:读文件、搜代码、跑命令。它每做一步,界面上就会多一行记录,这些记录串起来,就是工具调用树。
一句话:工具调用树 = agent 干活的每一步的流水账。
看一棵真实的工具调用树
下面是我发了一条"列出工作区文件并介绍项目"的指令后,agent 实际产生的工具调用树:

从下往上看,它是这样的一个流程:
| 工具行 | 干了什么 |
|---|---|
| 上下文注入 · 系统提示词 | 给 agent 装上"怎么干活"的出厂设定 |
| 上下文注入 · 技能目录 | 加载可用的技能清单,让它知道手里有什么牌 |
| Think | 先想一步:用户要什么,第一步该做什么 |
| Pwsh | 执行命令,列出工作区目录里的文件 |
| Glob | 按模式搜索文件,比如找 README 文件 |
| Think | 看结果,想下一步:每个项目都要了解一下 |
| Pwsh | 再执行命令,读取每个项目的关键信息 |
| Think | 信息齐了,开始组织最终回答 |
看到规律了吗?agent 的干活节奏是:想一下,动一下,看结果,再想,再动。每一行工具调用,都是它真实执行过的一步,不是摆样子。
点开工具行看细节
每一行工具都可以点击展开,看这一步的完整内容。比如点开一个 Think 行,能看到 agent 当时的思考过程:

点开 Pwsh 行,能看到它实际执行的命令和命令的输出。点开上下文注入行,能看到注入的提示词内容。想确认 agent 到底对你的项目做了什么,就逐行点开看,一切透明。
几种常见工具行
不同任务会用到不同工具,认识几个常见的:
| 工具行 | 作用 | 常见场景 |
|---|---|---|
| Think | 模型内部思考 | 几乎每次行动前都有 |
| Pwsh / Bash | 执行命令 | 列目录、跑测试、装依赖 |
| Glob | 按文件名模式搜索 | 找 README、找配置文件 |
| Read | 读取文件内容 | 看代码、看文档 |
| Write / Edit | 写入、修改文件 | 改代码、写文档 |
| 上下文注入 | 注入系统提示、技能 | 每次会话开始 |
工具越多,agent 能干的事越多。前面列的都是内置能力,后面章节会看到更多(子代理、工作流、网页搜索等)。
消息流底部的统计信息
一次任务完成后,工具调用树的下方会显示一行统计,比如:
1 轮 · 4 步 | LLM 14.9s · 工具调用 45.5s | 缓存命中 71% | 输入 76K tok · 输出 1.6K tok
逐个拆解:
- 1 轮:这次任务跑了几轮(一轮 = 一次完整的思考加行动)
- 4 步:总共进行了几次模型调用(每一步里可能连着调用多个工具)
- LLM 14.9s:模型思考花了多久
- 工具调用 45.5s:执行命令、读文件这些实际动作花了多久
- 缓存命中:多少内容命中了上下文模型一次请求中可见的信息范围,包括对话历史、注入的提示和工具结果。缓存,命中越高越省钱
- 输入 / 输出 tok:这次任务消耗的 Token模型处理文本的基本单位,一段文字会被切分成若干 token。 量
任务变长时,这些数字会帮你判断时间花在了"想"还是"干"上。
小结
- 工具调用树是 agent 每一步动作的流水账,一切透明
- 典型节奏是思考 → 行动 → 看结果 → 再思考,对应 Think 和各类工具行
- 点开任意工具行能看到完整细节,包括命令、输出、思考过程
- 底部统计行告诉你轮数、步骤、耗时和 token 消耗
现在你已经看懂 agent 怎么干活了,下一章进入会话进阶,逐个点亮会话里的高级功能。