第 36 章:Tool Result 预算与外溢

文件系统只有在 Prompt 中保留可信、可取回的指针时,才真正扩展了工作上下文。

公开源码快照:实现细节取自 Kocoro 公开仓库 origin/main4ec6772 提交,复核日期为 2026-07-27。章节讲的是不变量;具体常量应以当前源码为准。

36.1 问题是什么

一次大型文件读取就可能占满下一次 Prompt;多个中型并行结果累加也会产生同样问题。直接截断会让后续无法追查,而全部保留又会让文件工具意外变成“上下文拒绝服务”。

36.2 设计原则

把完整内容写入 Runtime 管理的文件,再用“预览 + 指针”替换 Prompt 内结果,并让替换跨 Turn 持续生效。限制单结果大小,并把单 Turn 总量当作尽力而为的目标:并行批次结束后,从最大的可外溢结果开始处理,直到总量落回目标之下。当某个工具豁免外溢、或外溢本身失败时,这一轮仍然可能停在目标之上——所以超出目标应当被当作需要排查的信号,而不是一个不可能出现的状态。

36.3 快照证据

源码快照观察
4ec6772单结果快照阈值:50,000 字符
4ec6772上下文内预览:2,000 Rune
4ec6772每 Turn Tool Result 总量目标:200,000 字符——不是硬上限:豁免外溢或标记为无限大小的工具、以及一次失败的外溢,都可能让总量停在这个数之上

以上数值描述的是一个有日期的实现快照,不是普遍契约。

36.4 实现检查表

  • 多语言预览必须按 Rune 安全截取。
  • 外溢文件应绑定 Session 并受权限控制。
  • 用多个中型结果测试总量超限。

36.5 本章结论

文件系统只有在 Prompt 中保留可信、可取回的指针时,才真正扩展了工作上下文。

这些章节应作为一个系统阅读:上下文、工具 Schema、持久化、操控、时间纪律、循环检测和并发会彼此影响。

引用本文 / Cite
Zhang, Wayland (2026). 第 36 章:Tool Result 预算与外溢. In AI Agent 架构:从单体到企业级多智能体. https://waylandz.com/ai-agent-book/%E7%AC%AC36%E7%AB%A0-Tool-Result%E9%A2%84%E7%AE%97%E4%B8%8E%E5%A4%96%E6%BA%A2/
@incollection{zhang2026aiagent_36_-Tool-Result,
  author = {Zhang, Wayland},
  title = {第 36 章:Tool Result 预算与外溢},
  booktitle = {AI Agent 架构:从单体到企业级多智能体},
  year = {2026},
  url = {https://waylandz.com/ai-agent-book/%E7%AC%AC36%E7%AB%A0-Tool-Result%E9%A2%84%E7%AE%97%E4%B8%8E%E5%A4%96%E6%BA%A2/}
}