代理循环成本高昂,因为每次调用都要为之前的所有步骤付费
摘要
本文解释了代理循环成本高昂的原因(每一步都会重新发送累积的上下文),并主张在网关而非提示词中设置成本上限,以防止无限制支出。
关于代理成本的讨论通常集中在每token的价格上。哪个模型更便宜,这周谁降价了,便宜的模型是否足以应付那些枯燥的步骤。真正决定一次运行成本的因素在于别处:你为相同的token支付了多少次。循环中的每次调用通常都会重新发送整个累积的上下文。原始任务。代理已经执行的每一步。返回的每个工具结果。模型不会免费记住上一次调用,所以你必须再次发送所有内容。第一步很便宜。到了第二十步,它携带了之前十九步的历史,却只为了执行同等微小的工作。用整数来勾勒大致轮廓:一次运行需要20步,平均每步大约6000个token(包括重新发送的历史和新输出),那么一个任务大约消耗12万个token。这些数字是编造用来示意大致情况的;你的实际平均值取决于你的模型以及你向前拖拽了多少历史。每步成本随运行过程攀升,而你还要用这个不断上升的数字乘以一个未被限制的步数。两个实际后果。必须在调用之前检查上限,而不是之后。将下一次调用可能消耗的token加到运行总计数中,如果总数会超过你的上限,则停止调用而不是执行。事后检查的话,你已经花费了本想节省的,一次昂贵的调用接着一次。而且,上限不能放在提示词中。'一旦花费了十美元就停止'只是一个建议,一个专注于完成任务的代理会想办法绕过它。它必须放在代理无法控制的地方:你的循环代码,或者每次调用都必须经过的网关。我们把上限放在网关,主要是为了避免在每个新循环中重复编写同样的检查。它可以为每个API密钥或每个模型设置美元限额,因此新代理从一开始就带有上限。早期发现问题的是每次成功任务的成本,而不是每token成本。如果循环用了40个混乱的步骤来完成本应5步完成的事情,便宜的token也救不了你,而循环变得越来越迂回会在账单出来之前很久就表现为每任务成本上升。这更多是一个追踪问题,而非计费问题。对于你的代理,停止条件是有人有意选择的上限,还是循环只是运行直到它碰巧完成?好奇是否有人既限制每步又限制每次运行,因为两者捕捉的问题不同。
相似文章
智能体循环很棒,直到它们从你最糟糕的代码中学习
本文讨论了AI编码智能体循环如何在不经意间从现有代码库中学习并传播已弃用的代码模式,导致技术债务,尽管表面看起来很成功。
你的智能体不贵,贵的是上下文窗口。算笔账
解释了为什么智能体 API 费用会随上下文长度呈二次方增长——因为每一轮都会重新读取完整历史,并分享了一些实用技巧,比如让工具结果过期、缩小工具 schema、压缩上下文来降低成本。
如果你运行多模型智能体循环,你在哪里划分廉价节点/昂贵节点的界限?
作者分享了一种降低多模型智能体循环成本的策略:使用廉价快速的执行器处理重复节点,并使用强大的规划器进行高层推理,同时分享了在OpenRouter上使用Ling-3.0-flash的经验。
你的“自主代理”不断循环的隐秘原因(对代理底层记忆的深度剖析)
对 CrewAI 和 AutoGen 等多代理框架底层信息路由方式的技术剖析,揭示它们本质上是自动化的提示链式循环。本文解释了代理因上下文窗口膨胀和缺少确定性停止条件而陷入无限循环的原因,并为开发者提供了实用建议:将代理视为函数式编程函数,而非人类协作者。
子代理在长代理运行中占据大部分Token成本:实际可将使用量降低70%至90%的修复方法
本文分析了 Bai 等人 2026 年的论文,该论文表明,子代理和上下文膨胀导致长代理运行中的Token成本比普通聊天高出约1000倍,并提出了三种实用的修复方法(PLAN.md、读取预算、带外备注),可将Token使用量减少70-90%。