工具结果
Tool result
Harness 执行工具调用后发回的内容——文件内容、命令输出、错误。它是 Agent 看待 Environment 的唯一窗口。在下次模型请求中返回给模型,由模型决定如何处理。工具调用和工具结果是同一次交换的两端,都在一轮之内。
工具结果的生命周期:
| 步骤 | 谁 | 发生了什么 |
|---|---|---|
| 1 | Harness | 执行工具调用——运行命令、读取文件 |
| 2 | Harness | 捕获结果:输出、内容或错误 |
| 3 | Harness | 把它作为一条消息追加到上下文 |
| 4 | Harness | 在下次模型请求中把整个上下文发给模型提供商 |
| 5 | 模型 | 读取结果并决定:再来一次工具调用,还是给出最终回答 |
这个结果会在 Session 剩余时间里一直留在上下文中。工具结果通常占编程 Session 上下文的大部分:每一次文件读取、每一次测试运行、每一次搜索都会完整落盘,并在早已不再有用之后继续占用 Token。少数几个大结果——一份冗长的测试日志、一个被整体读取的生成文件——就能让 Session 比对话本身更快地逼近上下文窗口边缘。
因为结果就是模型看到的全部,所以它无法去核实结果背后的 Environment。如果输出被截断、命令静默失败,或者 Harness 返回的是错误而不是内容,模型只能基于它被给予的东西推理。当 Agent 对你系统的描述看起来不对时,就去看工具结果:transcript 里的某个结果一定说了与你所知事实不符的话。
用法:
“它把这个文件当成空的来推理。”
“工具结果返回的是权限拒绝,不是文件内容。模型只看到了错误字符串——它没有别的办法看到那个文件。”