Skip to content
预计 1 分钟右侧目录可快速定位

Tool 如何撑爆 Context:Definition Cost 与 Result Management ​

前置:Context 如何选:Selection Signals、Progressive Disclosure 与 JIT

Tool 会从两个方向挤占 Context:调用前要携带能力定义,调用后又会产生 Observation。两者应该先在各自边界收敛,而不是一上来就依赖通用 Compaction;只有跨 Turn 的 working set 仍持续增长时,才进入下一篇的 Context Compaction。

Tool Definition Context Cost ​

工具 description/schema 本身占 context。catalog 扩展到百/千级后应通过 namespace、tool search、deferred loading 暴露小候选集。

Catalog 规模大时,工具定义本身会成为主要 token 消耗。

🔍 源码对照:Tool Definition 本身就是模型 Context ​

完整源码与通用分析见 06-03 Tool Metadata / Dynamic Discovery。这里不重复代码;这里关注 context cost:模型看到的是投影后的 Tool Definition;catalog 越大,name / description / schema 本身越会消耗 Context Budget。

源码说明

仓库把“大输出处理”“conversation outline”“prompt assembly”拆成不同入口,本身就是一个有用信号:执行结果的完整载荷、给模型看的摘要/引用、长期保存的 artifact 不必是同一种表示。阅读时应追数据什么时候仍是 raw payload,什么时候被转成 model-visible context,而不是只找某个固定 token 阈值。

工程边界

文件拆分只能证明这个 reconstruction 采用了分层处理,不能证明它的 spill threshold 或 outline 语义适用于其他 Harness。阈值必须由模型窗口、任务和成本目标决定。

Shadow Harness 对照

  • ToolResult 保留完整事实;ContextItem 只保存模型当前需要的 projection。
  • 大输出进入 ArtifactStore,并在 Context 中使用稳定 handle + 摘要,而不是无条件截断后丢失原文。

验证

构造 5 MB shell 输出:比较 raw-inline、tail-only、artifact+summary 三种策略的 token、任务成功率和后续可追溯性。

Tool Result Management ​

原始结果先做 projection/filter/pagination,再必要时 summary,并保存 artifact reference。能用确定性代码压缩的数据不要先交给 LLM。

🔍 源码对照:Tool Result 先归一化,再决定如何进入下一轮 ​

完整源码与通用分析见 06-04 Tool Search / Execution Pipeline。这里不重复代码;这里关注 result projection:raw Tool Result 应先 normalize / filter,再决定哪些部分进入下一轮 Model Context;Context 层不直接吞协议原始结果。

Tool Definition 和 Result 要在不同边界减负 ​

Tool Definition 和 Tool Result 都会吃 Context,但治理方式不同。

text
Tool Definition 太多
→ discovery / dynamic exposure / deferred loading

Tool Result 太大
→ projection / pagination / artifact / compaction

例如 500 个 Tool schema 不应该靠“把 description 摘短一点”解决,真正应该减少本轮暴露数量;而一次 SQL Tool 返回 10 万行,也不能靠隐藏 Tool schema 解决,应把原始结果放 Artifact,只向模型注入聚合后的必要字段和引用。

先分清是哪一种 Context 成本,才能选对优化手段。

结果压缩必须保留可追溯性 ​

确定性过滤优先于语义摘要,因为它更容易验证。推荐顺序是:

text
raw result
→ validate/normalize
→ field projection / filter / pagination
→ persist large artifact if needed
→ compact observation
→ optional semantic summary

如果做 semantic summary,应保留 source/artifact reference 和原始结果版本,避免摘要遗漏后彻底无法回看。跨 Turn 的 working set 仍然过大时,再交给下一篇定义的 Compaction policy 处理。

关联源码 ​

自测 ​

  1. 一个 grep Tool 返回 5 万行结果。为什么“截前 200 行塞回 Context”通常不是可靠的 result management?
  2. Tool definition 很长与 Tool result 很大是两种不同 token 成本。分别可以用什么机制控制?

Sources ​

AI Engineering · Agent · Harness · Backend Systems