跳到正文
汉松札记
返回

你的 Agent 正在浪费 Token,而你还不知道高亮

AI Highlight

来源

Agent Token 成本控制高亮

这篇短讲来自 AWS 的 Eric Hanchett,价值不在于提出复杂新架构,而是把 agent token 成本拆成五个可操作的控制点:prompt 缓存、模型路由、工具结果外置、循环上限和历史裁剪。它适合作为任何 agent 产品上线前的成本检查清单。

一、缓存不是优化细节,而是 agent 成本基线

背景

Agent 往往会在每次 loop 中重复发送系统提示、工具说明和历史消息。演讲先从 system prompt 缓存讲起,因为这是最稳定、最不影响质量的节省方式。

第一种方法是缓存你的 system prompt。agent 第一次调用时会发送完整的 system prompt,之后每一次调用都会发送大幅缩减后的 system prompt。

你也可以缓存 tool prompt 和 messages。这听起来可能很显然,但你需要认真考虑根据任务难度来路由不同的消息。

兴趣匹配判断:这对长期运行的 Hermes / OpenClaw 式 agent 很关键。系统提示、工具说明和工作记忆如果每轮全量进入上下文,成本会随调用次数线性放大;缓存应被视为默认基础设施,而不是事后省钱技巧。

二、不要把最贵模型当默认执行器

背景

第二个策略是模型路由。演讲的反常识点是:并不是每个 agent 步骤都值得交给 frontier model,甚至可以用一个便宜模型先做路由判断。

如果任务更简单,就应该使用更便宜的模型。在这个例子里,也许我们用 Claude Haiku 来处理便宜一些、简单一些的任务,再用 Claude Sonnet 来处理更难一点的任务。

你甚至可以让另一个非常便宜的模型来决定该使用哪个模型。这里有很多可以尝试的空间,但我强烈建议,不要把最贵的模型用于你做的每一件事。

兴趣匹配判断:这正好对应多模型 agent 的调度问题。真正的 agent 产品不会只有一个“聪明大脑”,而是要把分类、改写、摘要、执行、审查等子任务拆开,用不同价格和能力的模型承接。

三、大型工具结果应该离开上下文窗口

背景

Agent 调工具后,工具结果常常被直接塞回对话。演讲提醒:如果结果很大,又在循环中反复携带,就会变成隐形 token 黑洞。

如果你拿到的是一个很大的 tool result,可以把它存到本地或云端,然后使用某种 summarization 来节省 token。

这样,tool result 就不会在每一次 tool loop 或每一次 agent loop 时都被加入 context。如果你能找到任何办法,让这个 tool result 不必在每一次调用时都发回给 large language model,那就能节省大量 token。

兴趣匹配判断:这条尤其适合“文件系统式记忆”和“引用式上下文”。工具返回全文、日志、检索结果时,应该保存到可寻址存储,只把摘要、句柄和必要片段放回上下文。

四、工具循环必须有上限,也必须可观测

背景

Agent 成本失控不只来自上下文太长,也来自 tool loop 自我重复。演讲把最大迭代次数和 observability 放在一起讲,是很实用的工程提醒。

当你处理 agent loop,而 agent 决定发起 tool call 时,我经常遇到这种情况:它会一遍又一遍地调用同一个工具。

如果你不限制这个 tool call,它可能会跑 10 次、20 次,甚至进入无限循环。对 token 使用量来说,这会非常糟糕。所以一定要设置 max iterations。

在部署 agent 之前,一个好的做法是运行一些 observability tools,查看每一个工具的 tool call 使用情况,看看每个调用运行了多长时间,以及循环了多少次。

兴趣匹配判断:这不是单纯成本问题,也是可靠性问题。任何生产 agent 都应能回答:哪些工具最常被调用、哪些调用最慢、哪里出现重复循环、哪些任务被 max iterations 截断。

五、多轮历史要裁剪,但要保留早期语义

背景

最后一个策略是历史裁剪。演讲没有简单主张“只留最近消息”,而是明确指出 sliding window 会丢失早期上下文,需要摘要来弥补。

多轮 agent 每次调用模型时会带上对话历史,长对话会消耗大量 token。可以使用 sliding window conversation manager 只保留最近若干条消息。

这种方式的 trade-off,是你会丢失开头部分的 message history。处理这个问题的方法是,你可以对历史记录做某种 summarization,然后把摘要放进 context window。

当触发 sliding window 之后,你发送的不是全部历史,而是一小部分摘要。

兴趣匹配判断:这对长会话协作非常贴近。核心不是“少放历史”,而是把历史压缩成可恢复的工作状态:当前目标、已做决定、关键约束、未解决问题和引用位置。

整体判断

这篇是小而实用的 agent 成本治理清单。它的价值在于把 token 优化从“少说一点”转成系统设计:缓存稳定提示、按难度路由模型、外置大型工具结果、限制并观测工具循环、用滑动窗口加摘要管理历史。对任何要长期运行、频繁调用工具、需要控制成本的 agent 系统,都值得直接转成上线检查项。


订阅 AI Highlight

分享这篇文章:


上一篇
你的 Agent 在生产环境失败了。祝你好运复现它高亮
下一篇
别再写语气指令了。要分层组织它们高亮