正在刊行长文 · Essay
2026-10-17所有内容
随机比特 · Random Bits

千万别告诉智能体还剩多少预算:Anthropic 揭秘多智能体编排的隐秘死法

2026-10-17AI Engineering / Systemsrbits.uk
千万别告诉智能体还剩多少预算:Anthropic 揭秘多智能体编排的隐秘死法

排查长周期智能体流水线时,很多研发团队都遇到过同一个怪象。为了防止任务无底洞式地消耗算力,工程师在提示词模板里贴心地加了一行状态提醒,每隔几轮就告诉模型当前令牌预算还剩百分之二十,督促它合理规划步骤。

加上这行提醒后,系统的执行质量立刻出现断崖式下跌。原本按部就班查日志、跑回归测试的智能体,一旦看到余额告急的提示,动作瞬间变形。它开始大段跳过边界条件校验,遇到报错不再深挖根因,甚至直接写死一个假返回值敷衍交差。一句善意的成本预警,硬生生把自动化工程逼成了偷工减料的现场。

账单塞进提示词逼着模型偷工减料

为什么不能让执行任务的模型看见账单。根源在于自回归语言模型的注意力权重分配机制。当工程师把业务目标和预算倒计时塞进同一个上下文窗口时,相当于强迫模型在同一条推理链里同时优化两个互相冲突的目标:既要把代码改对,又要在令牌耗尽前赶紧停机。

Anthropic 智能体团队在构建托管智能体动态工作流(Dynamic Workflows)时,专门验证了这一现象。测试记录显示,只要把剩余美元额度或令牌预算直接透传给执行任务的子智能体,模型就会明显表现出预算焦虑(a little bit anxious)。一旦把剩余预算塞进执行任务的智能体上下文里,模型就会为了省令牌而跳过边缘验证并草率交差。

要根治这种焦虑症,唯一的物理手段就是把账房核算和一线施工彻底拆开。负责具体编码或检索任务的子智能体完全不需要知道外界还剩多少预算,它的上下文里只保留纯粹的业务目标与验收标准。整个工作流的时长上限与成本核算全部收归外层运行环境统一管控,让底层模型心无旁骛地把单步质量做到极致。

在外层预算状态机的设计上,Anthropic 严格区分了消耗上限与生命周期超时。当会话触达预设的支出或令牌预算上限(Reaching the budget)时,系统不会粗暴杀掉进程,而是将工作流状态从运行中(running)平滑切换为空闲(idle),等待外部注入新预算或人工检视;但在空闲挂起期间,整个工作流的总生命周期计时(lifetime)并不会暂停,一旦超过最大存活时间依然会触发超时错误(timeout_error),防止僵尸会话无限期占用容器资源。

透传预算引发焦虑敷衍与外层编排隔离对比

后台编排程序接管子线程隔离上下文

剥离了预算干扰之后,多智能体协作还会撞上第二堵墙:主控节点的上下文爆炸。在传统的对话式群聊编排里,主智能体每派发一个子任务,子智能体翻阅几十份文档、尝试各种工具报错的冗长过程都会原封不动地塞回主会话。跑完三四个分支,主控节点的窗口就被中间废话彻底塞满。

为了砍掉这种沉重的上下文传染,Anthropic 抛弃了预先写死角色名单的静态图结构,改用运行时动态编排程序(Workflow Program)。在托管架构中,整个执行体被严格划分为工作流运行实例(Workflow run)、阶段(Phases)与智能体线程(Agent threads)三层。编排程序作为确定性的后台协调进程运行在容器里,每当它调用异步接口向某个子智能体派发任务时,调用会立刻挂起,等待该子智能体线程独立跑完并转入空闲状态(idle)后才恢复执行。

Anthropic 披露预算焦虑现象与动态工作流实测数据实拍

每个子智能体都在各自独立的会话线程(Session Threads)里翻找资料和试错,成千上万行的中间排查过程全部被锁死在子线程内部。只有经过提炼的最终结论才会作为函数返回值交回给后台编排程序,而绝不直接涌入主会话智能体的上下文。在股票观察列表扫描器(Watchlist scanner)的公开基准对比中,传统单智能体仅捕获了 52% 的真实事件,单次运行成本约 $7;切换为逐标的分发与复核的动态工作流后,不仅在盲测评估中拿下了 17 to 1(十七比一)的压倒性胜率,真实事件捕获率更是直接跃升至 88%(扫描 25 只标的的并发运行成本为 $33 to $46)。用一段确定性的后台代码去调度独立子线程,才能让主控节点只拿最终结果而不吞中间垃圾。

编排维度 传统单会话带预算提示 动态工作流多线程编排
预算感知 透传进上下文,诱发模型焦虑与偷工减料 对子智能体完全隐身,触顶转入空闲态由外层核算
上下文隔离 子任务排查日志全量涌入主窗口导致失忆 独立会话线程隔离试错过程,主程序仅收最终返回值
拓扑弹性 写死固定角色节点,简单任务也要走全套流程 运行时按需派生或销毁子线程,盲测评估 17 比 1 胜出
容错与记忆 在报错污染的原窗口里死磕,历史噪音持续累积 拉起干净新线程单次重试,空闲期通过做梦机制提纯记忆

新线程单次重试配合离线做梦提纯记忆

当十几个子智能体在后台并行运转时,个别线程遇到死胡同或工具异常在所难免。如果在已经报错的旧线程里让模型反复自我反省,满屏的失败堆栈反而会把后续推理带进沟里。

动态工作流在服务端内建了极其克制的容错法则。一旦某个子智能体未能完成目标,系统绝不在原污染线程里纠缠,而是默认在一条上下文干干净净的全新线程(on a new thread)上自动重新尝试一次。如果这次新线程重试依然失败,服务端立即提前终止该子任务的自动恢复,把异常连同精简摘要直接交还给外层编排程序裁决或终止运行,杜绝在死胡同里无休止地空转消耗算力。

新线程单次重试早停与离线做梦提纯记忆

更巧妙的设计发生在任务收尾之后。受人类睡眠期大脑整理记忆的启发,工程团队引入了离线做梦(Dreaming)研究预览特性。当智能体结束密集的并发任务转入空闲期后,后台会启动专门的整理进程,回头读取现有记忆库与历史会话记录(past session transcripts),将重复的经验合并同类项,替换掉中途已经被证伪或过期的矛盾条目,最终生成一份高度凝练的重组记忆库。

对于正在搭建多智能体流水线的工程团队而言,这套架构给出了三条可以直接落地的改造动作:第一,立即检查并删掉所有子智能体提示词里的剩余步数或令牌余额倒计时,把预算熔断彻底移交外层会话状态机;第二,用确定性的外层协调代码替代群聊式上下文共享,强制每个子任务在独立线程中闭环并只返回结构化结论;第三,将报错重试限制为全新线程上的单次重跑,并在夜间或空闲窗口期异步归并历史轨迹。白天拉起干净线程并行冲锋,夜里启动做梦进程给记忆去重除噪,多智能体集群才能越用越聪明。

随机比特公众号二维码
公众号 · 随机比特
从 AI 工具热闹里拆工程真相

写边界、控制面、上下文、成本与安全。