跳转到内容
Guide

你的 AI 代理燃烧 21,000 个代币来修复拼写错误:6 种成本模式

| 9 min read

一个记录在案的 Claude Code 会话使用了 21,000 个输入标记来修复单个字符。 六种模式可将代币账单削减 60% 至 80%,包含代码和实数。

Financial charts and pricing data on a screen representing AI token cost tracking
Photo by Austin Distel on Unsplash

Morph 的开发人员记录了一次 Claude Code 会话,该会话消耗了超过 21,000 个输入令牌 修复单字符拼写错误。 这相当于读一本短篇小说来改变一个人 信。 会话会烧毁令牌,每次都会重新发送完整的对话历史记录, 重试失败的工具调用,并重新读取代理已加载的相同三个文件 两次。

那次会议没有什么不寻常的。 编码代理每次都会重新发送历史记录、工具调用 转弯中间倍增,5分钟提示缓存窗口很容易错过。 一个团队 在相同的工作负载上运行 Claude Code 或 Cursor 可以生成相差 10 倍的代币账单 取决于这六种模式是否到位。

它们在这里,每个都带有解锁保存的代码更改以及实际的数字 它削减了。

模式 1:限制迭代并强制执行代币预算

销毁代币最快的方法是没有退出条件的代理循环。 经纪人打了400 错误,使用相同的错误输入重试,使用略有不同的错误输入重试,再次重试, 等等。 到第 40 次迭代时,您已经花费了 80,000 个代币,但什么也没产生。

每个教程附带的无限制版本:

凌晨 2 点不会叫醒你的版本:

两个帽子; 一项关于迭代,一项关于总代币。 迭代上限会引发重试风暴。 的 代币预算捕获仍在收敛但超出美元点的长期运行任务 感觉。 如果代理无法在 20 次工具调用中解决问题,则修复方法是更好的提示或 更好的工具,而不是更多的迭代。

日志 stats.iterations 旁边 stats.inputTokens 在你的指标中 管道。 在 3 到 5 次迭代中完成的任务是健康的。 任务固定在 18 至 20 迭代是重试风暴,需要立即重写,而不是增加上限。

模式 2:将长静态上下文标记为可缓存

Anthropic 的提示缓存按输入速率的 10% 计算缓存命中,按 125% 计算缓存写入。 对于 包含 10,000 个令牌的样式指南,可在 5 分钟 TTL(缓存运行)内的 100 次调用中重用 成本约为未缓存运行的 12%。

添加 cache_control 内容块是一行。 错过是最常见的 生产代理代码中的成本错误:

缓存的有效期为 5 分钟。 如果您的客服人员每 20 分钟拨打一次电话,则您需要支付缓存费用 写入溢价而不摊销它,并且缓存会花费你的钱。 如果你的经纪人爆发了 5 分钟内接到 10 到 50 个电话,结果对您有利。

具体数字:一次 40 次通话审阅,附带 8K 风格指南,无缓存,费用约为 40 * 仅样式指南就有 8,000 = 320,000 个输入标记。 带缓存:10,000(以 125% 写入)+ 39 * 800(以 10% 读取)= 41,200 个可计费代币。 这相当于可重用块减少了 87%。

模式3:总结长会话的尾部

在会话的第 30 回合,客服人员会在每次呼叫时重读第 1 回合到第 29 回合。 早期的转折 包含早已不再可操作的设置上下文。 压缩它们。

总结一下俳句,不是同样昂贵的模型驱动主循环。 总结可能会丢失 细节; 保留足够的空间来保存代理已经做出的文件路径、函数名称和决策 做了。 最后 6 轮逐字保留,因此模型仍然具有最近的工具调用结果和工作 上下文。

对于每回合即将达到 120K 输入令牌的会话,压缩第 1 回合到第 24 回合 变成 400 个令牌的摘要,将每轮输入减少到大约 8K。 复合储蓄:未来 10 年 反过来,那是你没有发送的一百万代币。

模式 4:通过 RAG 读取参考资料的全文件

每回合发送三个完整文件,因为代理可能需要它们,这是最明显的形式 的废物。 返回 5 个最相关的 180 个令牌块的向量存储查找会剪切引用 上下文信息提高 60% 至 80%,同时保持目标问题的准确性。

经验法则:3K token以下的文件直接进去; 超过 10K 令牌的文件会被分块并且 检索到; 之间的文件取决于代理是否会扫描整个内容或查找 具体功能。 对于 API 规范、文档站点和配置模式,RAG 是严格的 更好。 对于代理正在编辑的文件,请将其保持内联。

模式 5:将确定性工作卸载给类型化工具调用

最昂贵的令牌是通过模型应该解决的问题进行推理所花费的输出令牌 从来没有被要求解决。 确定性、结构化任务属于工具:

  • 电子邮件语法加 MX 加一次性检查
  • 通过国家/地区检测将电话解析为 E.164
  • SSL 证书过期和链验证
  • JSON 模式验证、JSON 到 TypeScript 转换
  • 哈希、UUID 生成、base64 编码、时间戳转换
  • SPF、DMARC、DKIM 检查; DNS 记录查找

之前的版本每次调用花费约 2,400 个令牌,有时会产生幻觉 MX 记录。 之后的 版本花费约 230 个令牌,调用类型化端点,并返回经过模式验证的答案。 的 代理以 10% 的成本和零推理错误获得相同的信息。

这是外部 API 完全适合代理堆栈的地方。 终止于 a 的工具调用 对类型化端点的单个 HTTP 请求消除了输出令牌成本和一类 幻觉。 任何 Botoi 端点都可以用几行包装为 Claude 或 OpenAI 工具,或者 直接通过 Botoi MCP 服务器调用,该服务器将其中的 49 个公开为 MCP 工具。

模式 6:按任务类型路由到最便宜的可接受模型

每个输入代币的 Opus 成本为 5 倍十四行诗和 15 倍俳句。 代理循环中的大多数任务不需要 Opus。 分类、提取、短工具调用路由和摘要压缩都运行良好 俳句。 保留 Opus 进行架构决策和硬调试。

在 Opus 上运行每一步的典型混合工作负载代理的月度下降了 62% 通过仅将“计划”任务路由到 Opus 并将分类/提取推送到 Haiku 来计费。 准确度 这些任务的回归为零,因为它们一开始就是确定性的。

Claude Advisor Tool 模式更进一步:Sonnet 驱动主循环并调用 Opus 中期一代就特定决策寻求第二意见。 一次通话,两种模型,近乎 Opus 以十四行诗成本计算的质量。

优化前的仪器

你无法切割你看不到的东西。 将代理发送到后立即记录每次运行的令牌统计信息 生产:

管道 runs.jsonl 到您已经用于指标的任何内容中。 第一周数据 将显示一些消耗 3 倍中位数的运行。 这些是您的重试循环。 下周 将显示第二层昂贵的运行,这些运行是由于缓存窗口失效而导致缓存未命中。 按成本顺序修复这些问题,而不是按频率顺序。

放在一起:按模式的预期节省

图案 典型节省 努力出货
迭代+代币上限 40-90% 病理运行 低(一小时)
在可重用上下文上提示缓存 60-90% 在缓存块上 低(每个块一行)
尾部总结 长时间训练时 30-70% 中(压缩逻辑)
RAG作为参考材料 检索内容的 60-80% 中(矢量存储设置)
用于确定性工作的工具卸载 卸载任务的 70-95% 低(工具定义+HTTP调用)
按任务类型对路由进行建模 50-80% 混合 低(路由器功能)

将六个全部堆叠起来。 团队从“Opus 上的一切、无缓存、完整文件、40 次迭代上限”转向 “俳句十四行诗路由、缓存系统提示、RAG、键入工具、20 次迭代上限”定期削减 每月支出减少 70% 至 85%,任务完成率相同或更高。

要点

  • 限制迭代和令牌,而不是挂钟。 20 次迭代/15 万个代币上限 在风暴花费您金钱之前停止重试。
  • 将可重用上下文标记为可缓存。cache_control 线转弯 将 40 个呼叫会话从 320K 可计费代币变为 41K。
  • 用俳句总结尾部,逐字保留头部。 旧的转弯不再存在 行动速度比大多数代理商注意到的要快。
  • 检索而不是发送参考材料。 RAG 削减 60-80% 的输入代币 用于代理扫描而不是编辑的文档、规范和架构。
  • 工具调用确定性工作。 电子邮件验证、DNS 查找、散列、 JSON 转换; 它们都不值得推理。
  • 按任务类型划分的路线。 俳句用于分类/提取,十四行诗用于推理,作品用于 计划。 混合账单下降了 50% 到 80%,结构化任务的准确性损失为零。

Botoi 为您提供 150 多个类型端点和一个包含 49 个工具的 MCP 服务器,可随时连接到任何代理循环。 使用 HTTP 调用替换推理令牌每个确定性任务大约需要 230 个令牌 而不是 2,000+。 尝试一下 交互式 API 文档 或者将 Claude Code、Cursor 或 VS Code 连接到 MCP服务器 合而为一 配置块,然后观察成本仪表板上的代币行变平。

FAQ

为什么人工智能编码代理会为了一个小小的改变而使用如此多的代币?
编码代理每次都会重新发送完整的对话历史记录。 以三个大文件读取开始的 30 轮会话每轮都会发送这些读取,并乘以代理在轮次之间进行的工具调用次数。 对人类来说看似微不足道的拼写错误修复可能会变成 20 到 30 次往返,每次都携带模型已经看到的 1,000 到 1,500 个上下文标记。 算术复合得很快。
提示缓存在 Anthropic 调用上可以节省多少?
Anthropic 的提示缓存对缓存命中收取 10% 的输入令牌费率,对缓存写入收取 125% 的输入令牌费率。 对于在 5 分钟 TTL 内重复使用 100 次调用的 10,000 令牌系统提示,缓存运行的成本约为未缓存运行的 12%; 1 次写入为 125%,99 次读取为 10%。 可重用上下文越大,节省的成本就越大。
我应该在代理循环上设置什么迭代上限?
对于单个逻辑任务,从 15 到 25 次迭代开始。 如果您的代理在 15 次工具调用中无法得出正确答案,那么在 50 次工具调用中可能也无法得出正确答案; 它更有可能陷入重试循环或幻觉工具参数中。 添加预算检查,当会话超过令牌阈值(而不是挂钟限制)时,该检查会终止循环。 代币支出映射到美元成本; 挂钟没有。
什么时候从代理调用外部 HTTP API 而不是要求模型计算答案才有意义?
任何时候任务都是确定性和结构化的:电子邮件验证、电话解析、SSL 检查、base64 解码、UUID 生成、哈希计算、JSON 模式验证。 该模型不应花费 500 个输出令牌来推理 support@acme.com 是否具有有效的 MX 记录。 对键入端点的单个工具调用会以 30 个标记返回答案,并消除一类幻觉。
RAG 是否总是优于将整个文件推入上下文?
对于主要阅读的参考材料(文档、配置模式、API 规范),是的; 与发送完整文件相比,转向 5K 令牌 RAG 检索的团队通常会减少 60% 到 80% 的输入令牌。 对于完全适合上下文的 3K 令牌以下的小文件,RAG 增加了复杂性,但没有节省任何费用。 规则:如果相关内容在3K token以下,则内联; 如果超过 10K 个令牌并且代理只需要一个切片,则检索它。

开始使用 botoi 构建

150+ 个 API 端点,涵盖查询、文本处理、图片生成和开发者工具。免费套餐,无需信用卡。