Appearance
ADR-010: ToolResultBudget Contract for v0.7.1 to v0.8
- Status: Accepted
- Date: 2026-04-23
- Deciders: Kairo Core Runtime Maintainers
Context
工具输出可能远大于模型剩余上下文预算,导致:
- 后续推理轮次在高压上下文下抖动;
- 压缩策略被动触发,降低关键信息保留率;
- replay/排障难以判断结果被裁剪与否;
v0.8执行事件模型无法稳定消费v0.7.1的工具结果行为。
Decision
在 v0.7.1 引入 ToolResultBudget 契约,并作为 v0.8 的兼容基础:
- 工具结果进入 history 前统一经过预算治理。
- 对单条结果执行裁剪时,保留尾注说明与原始/保留 token 统计。
- 在 TOOL 消息写入预算元数据,作为执行回放和审计输入。
- 对工具执行路径补充结构化错误分类字段。
Contract
Tool message metadata (required)
tool_result_budget_appliedtool_result_budget_truncated_counttool_result_budget_original_tokenstool_result_budget_kept_tokenstool_result_budget_remaining_tokenstool_result_budget_per_result_tokens
ToolResult metadata (required)
tool_result_budget_appliedtool_result_original_tokenstool_result_kept_tokenstool_result_truncatedtool_result_budget_reason
Error/result classification (required)
error_code=tool_execution_failederror_code=tool_blocked_by_hookerror_code=tool_cancelled_by_hookresult_code=tool_skipped_by_hook
Consequences
Positive
- 大结果不再无上限占用上下文。
- 可观测性字段可直接进入 replay 与审计流水。
v0.8可以直接复用v0.7.1输出结构。
Trade-offs
- 极端场景下,工具结果会被截断,完整输出需依赖工具侧持久化或外部日志。
- 裁剪阈值为启发式策略,后续可能按模型/工具类型细分。
Follow-up
- 在
v0.8执行事件流中把预算字段提升为一级事件属性。 - 在 dashboard 中新增“tool result truncated rate”指标。