AI Agent 工具结果太长怎么办?截断、摘要与续读策略
工具结果必须假设会超长:默认全量塞回对话是 Agent 不稳定的常见原因。 正确做法是「先短后长」——摘要进上下文,细节按指针再取。
问题从哪来
- 网页抓取返回整页。
- 数据库查询忘记
LIMIT。 - 日志接口一次吐出数万行。
- 模型在摘要后仍声称「已逐行分析」。
策略一:硬截断 + 元数据
返回头保留:总长度、是否截断、续读游标。正文只留前 N 字符或首尾各一段。Agent 需要中间部分时再调 read_range。
策略二:结构化摘要
对 JSON 数组:返回计数、字段列表、若干样例行。对日志:返回错误级别聚合与最近 K 条 ERROR。
策略三:提示词约束
若工具结果标记 truncated=true,你必须假设未看到全文。
需要细节时调用续读工具,禁止声称已完整阅读。
总结时区分「基于样例」与「基于全文」。
和幂等、重试的关系
续读应是只读且可重复;不要因为超时把「写入工具」连着重试。可与幂等设计一起做可靠性。
测试建议
- 人为返回 1MB 文本,看 Agent 是否爆上下文或胡编。
- 截断后问一个只在尾部出现的字段,应触发续读而非臆造。
落地检查
给最胖的三个工具加截断契约测试:超长输入必须带 truncated 与游标。提示词回归:截断后询问尾部独有字段,Agent 应续读而非臆造。观察失败日志里是否出现「基于完整日志」却 usage 显示不可能读完。与幂等设计一起评审写入类工具的重试策略。
文档里写明各工具的默认 N 与谁有权改大,避免每人私自调参。
写完模板后,建议在真实场景试运行一次,把含糊句子改成你们行话,并删掉任何模型编造的数字、法规条款号或保证措辞。把终版存入共享文档并注明适用日期,避免同事继续使用过期口径。
写完模板后,建议在真实场景试运行一次,把含糊句子改成你们行话,并删掉任何模型编造的数字、法规条款号或保证措辞。把终版存入共享文档并注明适用日期,避免同事继续使用过期口径。
写完模板后,建议在真实场景试运行一次,把含糊句子改成你们行话,并删掉任何模型编造的数字、法规条款号或保证措辞。把终版存入共享文档并注明适用日期,避免同事继续使用过期口径。
写完模板后,建议在真实场景试运行一次,把含糊句子改成你们行话,并删掉任何模型编造的数字、法规条款号或保证措辞。把终版存入共享文档并注明适用日期,避免同事继续使用过期口径。
写完模板后,建议在真实场景试运行一次,把含糊句子改成你们行话,并删掉任何模型编造的数字、法规条款号或保证措辞。把终版存入共享文档并注明适用日期,避免同事继续使用过期口径。