tool result budget

Tool Result Budget 是上下文管理的第一层防线,限制单个工具结果的大小。

设计目标

防止单个工具结果消耗过多 token:

  • 文件读取可能返回数万行代码

  • 搜索结果可能包含数百个匹配

  • Shell 命令输出可能非常冗长

实现机制

大小限制

const MAX_TOOL_RESULT_SIZE = 50000; // 字符

function enforceToolResultBudget(result: string): string {
  if (result.length <= MAX_TOOL_RESULT_SIZE) {
    return result;
  }
  
  return truncateToolResult(result);
}

截断策略

智能裁剪

基于 explanation 的裁剪

结构化裁剪

对于代码文件,保留结构:

工具特定策略

ReadFile

GrepSearch

BashTool

用户控制

skipPruning 参数

用户可以禁用裁剪:

分段读取

对于超大文件,支持分段读取:

性能影响

Token 节省

典型场景的 token 节省:

场景
原始大小
裁剪后
节省

读取大文件

100K

30K

70%

搜索结果

50K

10K

80%

Shell 输出

80K

20K

75%

响应速度

  • 减少 token 数量 → 更快的 API 响应

  • 更少的内容 → 更快的解析和处理

  • 更小的上下文 → 更好的 AI 理解

下一步

  • 了解 Microcompact 的压缩算法

  • 探索 Context Collapse 的折叠策略

  • 查看 Auto Compact 的自动触发