AI Agent 不会恶意浪费,但会在任务已无价值时继续消耗资源;解决方式不是换便宜模型,而是给系统定义「完成」标准。
一个 AI Agent 不需要具备恶意意图,就足以产生高昂成本。
它只需要一个宽泛的目标、几个有用的工具,以及在原始任务已经不再有价值之后仍然继续尝试的执拗。
这是我在开始把 Agent 成本视为一个控制问题而非模型定价问题后学到的教训。Agent 并不是故意浪费资源。它只是在做工作流所允许的事情:探索更多来源、重试失败的操作、生成更多草稿,把每个未解决的细节都当作继续下去的理由。
解决办法不是简单地选择一个更便宜的模型,而是教会系统什么时候"进展"已经变成了"烧钱"。
许多 Agent prompt 描述了目标,却没有描述停止点。
"找到最佳选项。""改进这版草稿。""调查这个问题。""一直工作直到解决。"
这些指令对人类来说听起来合理,因为人通常从上下文推断边界。Agent 可能会字面理解它们。如果结果不是完美的,它可以继续搜索。如果两个来源不一致,它可以收集更多来源。如果工具返回错误,它可以重试,而不会去问这个任务是否还值得成本。
一个有用的 Agent 需要一个可以检验的"完成"定义。
返回三个可行选项并解释权衡。对同一操作失败两次后停止。生成一个满足必填字段的草稿,然后请求审查。搜索直到答案被两个独立来源支持。当剩余的不确定性无法用现有工具解决时升级。具体规则取决于任务。重要的是:完成是一种状态,不是一种感觉。
当失败是暂时性的时候,重试是有用的。
当失败是结构性的时候,重试就是浪费。缺少权限、无效输入、端点不可用或需求模糊,通常不会因为用略微不同的措辞重复同一操作而得到解决。
Agent 需要一个区分可恢复失败和不可恢复失败的重试策略。
在重试之前,问自己:
环境改变了吗?输入改变了吗?工具提供了新的诊断信息了吗?下一次尝试有现实的理由会成功吗?如果答案是否定的,Agent 应该停止或寻求帮助。一份失败报告往往比十次几乎相同的尝试更有价值。
这就是可观测性重要的地方。记录操作、输入、错误和重试的理由。没有这些记录,成本超支看起来就像谜一样,尽管它们通常是一串可以理解的局部决策。
Agent 可以在两种截然不同的模式中花钱。
探索扩展搜索空间。它收集例子、比较方法、测试可能性。执行则是应用选定的方案来产生交付物。
如果这两种模式混在一起,Agent 可能在已经拥有足够信息可以行动之后继续探索。它也可能在确认底层假设之前就执行一个昂贵的计划。
一个更安全的工作流使用阶段:
阶段边界减少了不必要的工具调用。它们也使得更容易看出预算消耗在哪里。
单一的全局预算比没有预算好,但还不够。
Agent 可能会把全部额度花在研究上,而为执行留下什么都没有。或者它可能在一个困难的子任务上用光所有可用调用,而忽略请求的其余部分。
给各个活动分配较小的预算:
这些限制应该在 Agent 状态中可见。当一个子任务达到其限制时,系统应该返回一个有用的部分结果,而不是默默继续。
预算分配也改善了优先级排序。如果 Agent 知道只剩下少数几次调用,它就有理由选择最高价值的行动,而不是把每个可能的行动都视为同等重要。
停止也有成本。
Agent 可能过早停止而错过更好的答案。这是一个真实的权衡,特别是在研究、调试和创造性工作中。但继续的成本往往比边际改进的价值更容易衡量。
一个实用的停止条件比较预期价值与预期成本。
在以下情况下继续:
在以下情况下停止:
这不是一个完美的数学计算。它是一个决策规则,防止 Agent 把活动误认为是进展。
模型只是账单上的一行。
周围的工具可以增加延迟、API 费用、存储成本、审查时间和运营复杂性。一个对每个小转换都使用大模型的工作流,可能比将简单任务路由到更窄工具的工作流效率更低。
同样的原则出现在创意生产中。创作者可能使用专门的 audio to midi converter ai 工作流把音乐想法转换成可编辑的音符数据,而不是让通用助手反复描述录音。专门的步骤创建一个可以检查和修订的具体产物。
工具不会消除人工审查的需要。它改变了工作的形态。一旦输出可见,创作者可以决定转录是否有用、需要修正什么,以及源材料是否可以适当使用。
好的路由不是每次都选择最强大的工具。而是将工具与需要减少的不确定性相匹配。
长上下文感觉像是一个生产力特性。
有时候确实是。收到每条之前的消息、文档、日志和中间草稿的 Agent 可能拥有更多信息。但它也可能花更多时间处理无关材料,变得不那么果断,因为重要的约束被埋在了低价值细节中。
上下文应该被精心筛选。
保留目标、验收标准、当前状态、相关证据和未解决的问题。不要永远携带每一个中间步骤,而是对已完成的工作进行摘要。将详细日志单独存储,在需要诊断时再检索。
这使得 Agent 更便宜,也更容易推理。它也降低了旧指令与新指令竞争的可能性。
持久记忆可以改善连续性,但陈旧的记忆可以造成持久性的错误。
Agent 可能记住一个旧的偏好、一个过时的 schema,或一个不再适用的旧解决方案。如果记忆被注入每个任务,系统可能会花费调用来补偿本应过期的信息。
把记忆当作有生命周期的数据:
不是每个有用的事实都值得永久存储。临时任务状态应该在任务结束时消失。稳定的偏好可以保留更长时间,但仍然需要一个可以修正的方式。
便宜的记忆如果导致昂贵的行动,就不是免费的。
团队有时把升级设计为失败路径。
这会鼓励 Agent 继续尝试以显得自主。更好的设计是把升级视为正常结果,当任务跨越了权限、不确定性或风险的边界时。
当出现以下情况时,Agent 需要它没有的访问权限。两个有效选项需要业务决策。输出可能产生法律、财务或声誉后果。输入在无法安全解决的方式上是模糊的。剩余的工作主要是主观评估。
交接应该包括:Agent 尝试了什么、发现了什么、什么仍不确定、需要什么决策。"我无法完成这个"很弱。"我达到了审查边界,因为这两个选项满足不同的约束"是可操作的。
创意任务很难衡量,因为"更好"往往是情境性的。
Agent 可以无限生成更多的旋律、歌词、图片或编排。没有选择规则,工作流就变成了一台无尽的变体机器。
在生成开始之前设定创意边界:
例如,制作人在探索 Lo-Fi 编曲时,可能使用 ai lofi converter 来创建起始方向,然后关于质感、节奏、结构 和情感契合度做出最终选择。工具支持探索;它不决定曲目何时完成。
边界保护了预算和创意决策。更多的选项不一定更有用。
总成本告诉你问题存在。
每次成功结果的成本有助于解释原因。跟踪与完成任务相关的调用次数、重试次数、token 数、工具调用次数和人工审查次数。
有用的问题包括:
不要把这些指标变成简单追求更少调用的竞赛。便宜的错误答案不是高效的。目标是可靠的结果,以及努力和价值之间清晰的关系。
成本控制不应该在 Agent 构建完成后再添加。
它从一开始就影响架构。如果工作流必须在固定额度内运作,那个约束应该影响模型路由、上下文管理、重试逻辑、存储、日志和人工交接。
把预算写入任务规格:
这使得成本成为成功定义的一部分。一个在消耗不可接受的资源后产生优秀结果的 Agent,并没有成功完成任务。
最危险的 Agent 不是做出明显错误的那个。
而是无法判断任务何时已经超出了其可靠运行范围的那个。信心、执拗和自主只有在配以不确定性检测时才有用。
教 Agent 报告:
这创造了自动化和监督之间更健康的关系。Agent 保持有用,因为它可以取得进展,但它不会隐藏应该停止的那个点。
总是继续的 Agent 不一定更有能力。
它可能只是对边际效益递减缺乏感知。
更好的系统知道如何进行第一次尝试、检查结果、在限制内修订,以及在需要另一种判断时把未解决的部分交接出去。它把预算、权限、上下文和审查当作任务的一部分,而非自主性的障碍。
这就是 Agent 如何变得不那么昂贵,同时也不那么没用的方式。
目标不是让 Agent 做更少的工作。而是让每个行动回答一个清晰的问题:
这个行动会减少什么不确定性?当答案足够好时,我们会怎么做?
为什么 AI Agent 会在任务基本完成后继续花费? 它们通常收到的是没有可衡量完成标准的目标。如果 Agent 无法确定"完成"意味着什么,它可能会继续搜索、修订或重试。
Agent 应该被允许重试多少次? 没有统一的数字。使用一个小的限制,并要求在另一次尝试之前有改变的输入、改变的环境或新的诊断信息。
使用更便宜的模型足以控制 Agent 成本吗? 不能。成本还取决于上下文大小、工具调用、重试、存储、人工审查和工作流设计。更便宜的模型在不受控的循环中仍然可能很昂贵。
AI Agent 什么时候应该向人寻求帮助? 当任务需要缺失的访问权限、主观判断、冲突的优先级,或具有重大法律、财务或声誉后果的决策时,进行升级。