Anthropic 的新 beta 请求头为 Claude 3.7 Sonnet 降低了约 14% 的工具调用(tool calls)Token 成本,为 AI Agent 带来了月度账单的适度削减以及微小的延迟优势。
为什么工具使用会消耗大量 Token
Agent 与 Claude 的每一次交互都涉及三个由 Token 驱动的步骤:
- 工具定义 (Tool definitions) —— 作为提示词(prompt)一部分发送的名称和 JSON schema。
- 工具调用 (Tool calls) —— 模型决定调用工具时生成的结构化输出。
- 工具结果 (Tool results) —— 你的代码返回给模型的数据。
第一步和第三步是输入 Token;第二步是输出 Token。由于 Claude 的输出 Token 单价高于输入 Token,因此即使总 Token 数保持不变,减少输出 Token 也能降低成本。
Beta 请求头
Anthropic 宣布了一项名为 token-efficient tool use 的 beta 功能。添加 HTTP 请求头
anthropic-beta: token-efficient-tools-2025-02-19
即可激活该优化,但仅当请求目标为 Claude 3.7 Sonnet 时有效。如果将该请求头发送给任何其他模型,请求将照常进行;该请求头会被忽略且不会报错。
该优化通过压缩模型的工具调用输出,将该步骤的输出 Token 数量削减了约 14%。
你实际能节省多少
输出 Token 比输入 Token 更贵,因此该部分的 14% 削减并不会转化为总账单成比例的下降。在一个典型的四步 Agent 循环中,工具定义往往占据了输入成本的大头,有时甚至超过所用 Token 总数的一半。在这种情况下,输出 Token 节省的 14% 通常只能带来约 3% 的总费用降幅。
因此,标题中提到的节省数字看起来并不显著,但这一变化不需要任何额外成本,并带来了轻微的延迟提升:更少的输出 Token 意味着模型完成生成的速度会稍微快一点。
更大的节省需要不同的策略
如果目标是显著遏制支出,仅靠这个请求头是不够的。以下三个实用的杠杆可以带来更大的收益:
- 提示词缓存 (Prompt caching) —— 将工具定义存储一次,并在后续调用中重用缓存版本。缓存读取的计费率低于新鲜的输入 Token。
- 精简工具集 (Trim the tool set) —— 仅包含对当前任务至关重要的工具。每增加一个工具,都会在每次请求中添加其定义,从而推高输入成本。
- 精简工具结果 (Slim down tool results) —— 仅返回模型实际需要的字段。将庞大的 API 响应反馈到对话中会同时增加输入 Token 和对话历史的负担。
应用这些实践可以显著削减总支出,其效果远超仅使用 beta 功能所带来的 3% 降幅。
值得关注的事项
Anthropic 尚未表明 token-efficient 模式何时(或者是否)会从 beta 阶段转为默认功能。开发者应关注未来的公告,看看是否会扩大对 Claude 3.7 Sonnet 以外模型的支持,或者引入更深层的 Token 压缩技术。随着使用模式的演变,监控每次请求的 Token 细分情况也将有助于量化其实际影响。
总结
这个 beta 请求头是一个免费且低成本的微调方案,它能削减约 14% 的工具调用输出 Token,带来适度的账单下降和微小的速度提升。对于那些已经在为高昂的 Agent 成本而苦恼的人来说,该请求头是一个有用的补充,但真正的节省将来自于提示词缓存、限制工具暴露以及返回更精简的结果。
来源:https://dev.to/multigrid/token-efficient-tool-use-in-the-claude-api-3j0l
