BuddyMe:用基础循环上的动态任务编排取代计划模式(论文全译)
BuddyMe 工程团队 · buddyme.cn · 2026 年 9 月
(本文为团队技术论文的中文全译版)
摘要
「先规划后执行」的智能体在任何一个工具真正运行之前,都要先付出三笔成本:一次规划 LLM 调用、一张僵硬的任务图,以及一整套为补偿弱执行器而搭建的验证机器。本文描述 BuddyMe——一个已上线生产的桌面智能体(v1.0.41)——如何把「计划优先」的主链路替换为基础循环(foundation loop)架构:用户目标直接进入单个工具循环,由运行时系统逐轮编排,全程处于零 LLM 参与的轻量护栏之下。一个基于正则的意图路由器让「规划」成为例外而非常态——只有用户明确发出的并发信号才会路由到由规划器支撑的专家层。收尾环节只问一个问题「交付物是否存在」,并用本地检查作答;在一次 Terminal-Bench 2 配对 A/B 对比显示循环领先 8.3 分之后,这次改革淘汰了机器验收、语义评审与质量门循环。一个经验循环则让整个闭环跨越多次运行:每次运行都归档带出处验证的轨迹,对失败做分类,在 15% 噪声带之下提炼经验教训,并在后续运行前以建议性上下文的形式召回。我们报告这一架构、驱动这次转向的工程证据,以及它产出的可观测性语料:687 条经验记录,覆盖 30 多个基准测试族,以及 17,680 条已记录的结果事件。
1 引言
工具型 LLM 智能体的主流配方是「先规划后执行」:一个规划 LLM 把目标分解成带依赖边的任务图;工作者智能体逐个执行;一个求解器汇总结果。ReWOO(reasoning without observation,无观察推理)把这种分离形式化以节省冗余 token,Plan-and-Solve 则直接以提示工程实现了同样的形态。这套配方并行性良好、运行时可做预算控制,正因如此,我们自己的系统——BuddyMe 桌面智能体——2026 年上线时也把它作为主链路。
在生产环境运行这条主链路暴露了三个结构性成本。第一,规划调用是纯粹的延迟:我们的规划器在 min(780 秒,运行预算的 45%) 的时限内运行,一次典型分解在任何工具执行之前就要耗掉约 60 秒。第二,计划是脆弱的:运行中途的发现与用户的补充会使任务图失效,而修补它需要调度器里的三条修订通道,每条都有自己的失败模式。第三,弱执行器曾经需要补偿机器——机器验收复检、语义评审、质量门循环——它们的成本随每次运行线性增长,而其收益随基座模型的增强不断缩水。
本文记录一次生产转向。2026-09-27,在 Terminal-Bench 2(TB2)上完成一次配对 A/B 评估之后,BuddyMe 把规划器降级为专家层,并把一个基础循环提升为默认主链路。用户目标现在直接进入单个 LoopAgent 运行,不经过任何规划调用。一个零 LLM 的意图路由器决定规划何时仍然值得它的成本:只有显式的用户并发信号才会路由到规划器。循环层只回答一个问题——交付物是否存在——一串停止规则约束着它的行为。一个经验循环把每一次运行(包括崩溃)都变成带已验证出处的、可召回的教训。
这次转向是证据驱动而非审美驱动。TB2 配对对比中,同一批任务上直接循环比计划优先的 ReWOO 配置高出 8.3 分。在计划优先模式下,循环调用本来就占了全部 LLM 调用的约 96%,也就是说规划与汇总调用买到的协调能力,一个有纪律的循环可以在本地自行提供。「word+excel+ppt」办公三件套——最典型的多交付物负载——作为单个顺序循环会话运行,比分解成任务图更快也更稳。
本文有四点贡献。(1)给出基础循环架构的完整规格:路由、护栏、停止规则、收尾全部零 LLM、全部本地化,所有阈值都以系统常数形式公开。(2)定义让「规划例外化」的意图路由规则:显式并发测试,并对示例与模板类内容设指令区豁免。(3)描述「验证瘦身」——机器验收机制的退役——及驱动它的 A/B 证据。(4)详述带出处验证轨迹、分数隔离(自评分永不参与经验晋升)与 15% 晋升噪声带的经验循环,及其积累的语料。
2 背景与相关工作
2.1 先规划后执行的智能体
思维链提示确立了「分解」作为默认的推理骨架 [1],Plan-and-Solve 把「先规划后执行」的形态显式化 [4]。ReWOO 把规划与观察解耦,使工作者永远不必重读规划器的长篇理由,降低了每步的 token 消耗 [3]。这些设计都在优化计划本身;我们的转向则把计划从默认路径上整个移走,只在用户要求并发时保留规划器。
2.2 反应式循环
ReAct 在单个循环里交替进行思考、行动与观察 [2],早期自主产品如 AutoGPT 在任务规模上运行同样的形态 [15]。当前的工程指南也给出同样的处方:从可组合的循环起步,只在有实测需求的地方加结构 [14]。基础循环承自这条脉络,并加上生产环境逼出来的两样东西:一个带本地验证的收尾信号,以及只约束空转、不约束进展的护栏。
2.3 搜索与有界的自我修正
Tree-of-Thoughts 把推理视为对分解方式的搜索 [5],Algorithm of Thoughts 把分解与回溯搜索融合 [8],Reflexion 把失败转化为下一次尝试的语言调整 [6]。我们的停止规则阶梯是这些思想的「预算有界」近亲:它不往宽处搜,而是检测循环何时停止改进——用跨轮不变的不可变状态——然后或补救弱任务,或提前停止。
2.4 经验复用
ExpeL 证明智能体可以通过从历史轨迹中蒸馏洞见来变强 [7]。BuddyMe 的经验循着这个方向,但加了三条生产约束:经验教训必须携带从归档轨迹里机械验证过的引文;自报分数永远不能作为经验晋升的门;召回内容是建议块,不得扩张目标本身。
2.5 智能体工作的基准
AgentBench [10]、GAIA [11]、SWE-bench [12] 分别在交互、通用助理、仓库修复领域衡量智能体能力。Terminal-Bench 面向真实的命令行任务,其第二版 TB2 正是本文路由与验证决策背后的测量仪器;我们报告触发架构变更的那次配对 A/B 结果。
3 系统总览
图 1 展示 2026-09-27 改革后的技术栈——这次改革把动态任务编排从「规划期」搬到了「运行期」。一个由正则与阈值构成的意图路由器,把每个目标送往三个去处之一,全程零 LLM 调用:对话轮次进聊天智能体;默认进循环主链路;用户显式要求并发时进 ReWOO 专家层。循环主链路通过零 LLM 装配把目标包进一个直接的单任务计划,然后作为 LoopAgent(系统的工具循环执行器)的一次运行,跑在共享的基础循环上。收尾只做存在性检查。经验循环记录剧集、归档轨迹、蒸馏教训,并在后续运行前把它们注入为建议性上下文。
图 1:BuddyMe 总体架构。 退役的计划优先主链路(顶部,已划掉)被零 LLM 门控路由的默认循环主链路取代;规划只在专家层存活。所有收尾检查与停止规则均为本地;经验循环跨运行回流教训。
LLM 调用的账本说明了钱去了哪里。计划优先的 ReWOO 花一次规划调用,再为每个任务的每一轮花循环调用,最后花一次汇总调用;循环轮次占了约 96% 的调用总量。循环主链路零规划调用、零汇总调用——因为工作者自己的收尾文本就是答案。两种模式下执行器本身没有变;变的是「谁来决定任务形态」:前置的 LLM 任务图,还是运行时的循环控制。
这次改革也从终局撤走了补偿机器。它从收尾路径删除了机器验收复检、语义评审、格式轮询与质量门循环——那些是执行器模型还弱时团队建的东西。TB2 A/B 已经证明它们恢复不了可测量的分数,却对每次运行课税。留下的是存在层:交付物对账、过期指纹扫描、产物清单。
4 路由:让规划成为例外
图 2 展示决策流。路由器先给目标「洗白」:剥掉此前运行前置的项目记忆与既往结果包装,使路由只评判当前查询本身,并把输入截断到 1000 字符。用户显式喊出的层名可越过一切。口述创作类请求——诗歌、故事、起名——转进聊天。随后一道硬性「产物门」测试产物动词与交付物名词的共现,或定时器与单动作意图。
关键规则是并发测试。当且仅当一个显式并行词与至少两个对象共现时,路由器才把目标送往规划器支撑的专家层。并行词包括「同时」「并行」「批量」「逐个」;对象计数来自枚举符号、文件路径、数量词、复数代词或交付物类别。并行词必须位于「指令区」:「例如」「模板」这类场景标记之后的文本是被处理的内容而非命令,除非其从句携带显式请求开头的词。这条豁免来自团队现场记录的一次路由事故:一份待改写文档内部的并行叙述被误读成了并发请求。
在 TB2 证据之前,路由器按交付物类别计数——目标里提到 word、excel、ppt 就进规划器。配对 A/B 显示这三件套作为单个顺序循环会话跑得更快、得分更高,于是类别计数退役,交付物类别信号现在只用来佐证显式并行词。分类瀑布(分类器→关键词→BM25→嵌入)无法裁决的每个目标,默认落到循环主链路——团队把这个策略记作 default_loop。路由层端到端零 LLM 调用;随改革一起退役的还有兜底 LLM 分类器。
图 2:零 LLM 意图路由。 产物门与显式并发测试在循环主链路和专家层之间做决定;word+excel+ppt 三件套在 TB2 配对 A/B 证据之后改路由到循环。
5 基础循环
5.1 轮次解剖
图 3a 展示一轮。循环调用 LLM 并提取工具请求。没有工具请求的一轮触发强制收尾帧,逼迫产生完成信号。带工具的一轮在三个工位下串行执行。第一个是死循环保险丝——有界窗口内同一工具同一参数的重复是终端违规。第二个是完成信号 verify_delivery,其检查全部本地运行。第三个是普通执行,带超时、结果截断,以及按工具名+参数索引的结果缓存。只读批次可以并发。护栏负责注入提醒与复述:同工具连击提示、轮次预算在半程与剩三轮时的播报、墙钟截止在预算 70% 与 85% 处的警告、超过 900 秒轮次的挂起检测。
完成信号是循环唯一「体面的出口」,其检查刻意保持客观:摘要非空、承诺为产物的文件存在且不是零字节空壳、主交付物通过语法/占位符/坏换行的本地质量审计。内容质量按显式设计裁定不在此层职责内。十四种结束原因覆盖所有出口——从 verify_passed 到 dead_loop、max_turns、task_timeout、ctx_churn——每种都携带归因,供经验循环分类。
5.2 预算与重试
运行时按任务复杂度分配轮次预算:基础 12 轮,高复杂度产物工作 16 轮,低复杂度或无交付物任务 9 轮,补充最多加 4 轮、产物证据最多再加 8 轮。运行级预算把整个会话框在 3300 秒,单任务超时 1500 秒;当留给新工作的预算不足 150 秒时,一道保险丝跳过所有待办任务——用最后一个未完成任务,换取对已交付内容的干净收尾。改革前在 3600 秒硬墙下跑过一次基准,让这条规则付了学费:51% 的任务撞墙,击杀毁掉了一切。
重试区分失败类型。策略失败获得一次重试,上下文按失败类型裁剪;传输失败获得三次,指数退避加抖动;内存失败获得两次,强制垃圾回收。零方差止损在至少 max(3, 0.4N) 个任务以同一结束原因全部失败且一事无成时取消剩余调度——比烧光每个槽位提前五到十五分钟结束无望的运行。
5.3 停止规则取代重规划
图 3b 展示计划级停止阶梯,闭环在每轮验证之后评估。六个条件从严到宽,决定停止、升级或继续。一:全部检查通过。二:能力受限类失败(如上下文丢失),升级给人而不是浪费轮次。三:回归——一次重做破坏了此前已通过的检查。四:同一失败集连续两轮出现——说明构建者在瞎猜。五:两轮无进展。六:循环数达上限三次。否则,循环从失败检查构建补救上下文,只重做弱任务。喂给这些决策的状态跨轮不可变,这让整个阶梯可审计、可复现。
图 3:(a) 基础循环的轮次解剖。(b) 每轮验证之后评估的停止规则阶梯;首个命中生效。
这个阶梯就是默认路径上「重规划」的替代品。规划器的工作——随着世界变化决定下一步做什么——从前置的 LLM 任务图,移交给跑在已记录事实上的本地规则集。规划器曾经产出的马尔可夫式任务卡 [9] 仍作为信号钩子保留,模型可以在循环内按需调用,专家层也仍在使用。每张卡携带横跨场景、决策、守卫条件、预期输出、后置条件的十五个字段;默认路径只是不再强制要求它们。
6 收尾:存在,而非评判
收尾层用零 LLM 调用对账三样东西:交付物清扫(把承诺的文件对着工作区核对)、过期指纹扫描、以及列出本次运行产物的产物清单。循环主链路里,清扫报告缺口但不修补。当承诺的 office 类别在磁盘上缺席时,答案会得到一条点名缺失交付物的机械警告——只存在于提示里的清单不可能悄悄蒙混过关。专家层里,清扫可以生成恰好一个修复任务,前提是剩余预算至少 120 秒且预留 240 秒汇总。
更重的一切都退役了。同一次改革从收尾路径删除了机器验收复检、语义评审、格式轮询循环、覆盖度自修链,依据同一条 TB2 证据:它们恢复不了可测量的分数,还拖慢每一次运行。系统自己的工程记录直说了结论——验收机器没有救回分数,而是拖累了每一次运行。评分词表相应从五档坍缩为三档:task_fail、task_ok、degraded。
7 经验循环
图 4 展示跨运行周期。每次运行在规划或执行开始之前,先在 SQLite 存储里开一个剧集。一条亲缘规则把 24 小时内同目标哈希的剧集串起来:失败后重跑标记为 debug 模式,成功后重跑标记为 improve 模式——这改变了召回的侧重。收尾时,证据摘要归档进以 SHA-256 为键的内容寻址存储,每条收据引文都对照归档源做机械验证——经验教训引用的文字,必然真实存在过于轨迹之中。
失败流过两级分类器:先是对传输与内存故障的机械预分类器,然后是一次快模型的归纳调用,落入四类分类法——环境故障、实现缺陷、意图漂移、验收标准问题——每类携带一个路由动作。复发门要求同一失败签名至少出现在两个不同任务上,归纳结果才准晋升。成功只在严格的门槛下晋升:七项效率指标中至少一项改善 ≥15%,且无任何指标回退。指标覆盖计划任务数、循环任务数、执行数、提示与补全 token、耗时秒数、工具调用数;团队测得基准噪声地板约为两个百分点,把门槛设在了它之上。
召回是确定性的、建议性的。混合检索最多取八个候选,每月 0.9 的时间衰减因子让陈旧条目降权。0.55 的分数下限与六个的选择上限约束注入,渲染块封顶 600 字符(重试时分片供给的为 400 字符)。召回块前置到目标之前但不修改目标,并携带一条显式禁令:历史不得添加任务、输入、领域或交付物。分数完整性由构造保证——自报完成分数落进一个晋升永不读取的指标字段,只有外部官方分数才能作为经验晋升的门。评分者永远不是被评分者。
图 4:经验循环。 剧集与带出处验证的轨迹喂给失败分类法与经验编译器;确定性的、带衰减的召回在后续运行前注入建议性上下文。
8 评估
8.1 触发转向的配对 A/B
图 5a 汇总 TB2 配对对比。同一批 Terminal-Bench 2 任务分别跑在计划优先 ReWOO 配置与直接循环之下;配对评分中循环高出 8.3 分。绝对分数与逐任务表是内部工程记录而非公开产物,因此我们报告配对差值与它驱动的决策。这些决策在代码里都看得见,全部以 2026-09-27 落在工程日志:路由修订、验收机器退役、循环升为默认主链路。
8.2 可观测性语料
经验循环跨 30 多个基准族积累了语料,包括 Terminal-Bench 2、OfficeBench、GAIA、WebShop,以及面向界面与仓库工作的智能体族。图 5b 展示按族分布的失败与经验条目,图 5c 展示 687 条记录的构成:387 条记忆条目与 300 条错误条目,其中 202 条来自对基准套件的一次专门错误蒸馏。结果台账记录了 17,680 条结果事件,其中 7,916 条注入了召回的经验——这给召回通路留下了一个可供未来效果研究测量的基底。
8.3 效率核算
相对计划优先模式,循环主链路每次运行省去一次规划调用与一次汇总调用。按团队实测每次被绕过的规划调用约 60 秒延迟、循环轮次本已占 96% LLM 调用来算,对交互式办公负载这笔节省相当可观。前缀缓存进一步放大它:一个稳定的 23k token 运行前缀,在团队测量的端点上冷启 110 秒、缓存命中 8 秒——因此主链路把 system 段内容钉死,把逐任务差异挪进 user 段,让缓存保持热态。
8.4 证据没有展示什么
三条边界框住这些结论。A/B 差值是内部单代码库对比,原始逐任务数据未保留;语料计数描述的是遥测,不是对经验循环的受控试验;若干可选机制(漂移驱动的计划修订、增量重规划)以环境门控发布且默认关闭。因此我们把数字定位为设计决策的工程证据——全部可追溯到仓库里带日期的记录——而非外部验证的基准。
图 5:评估证据。(a) TB2 配对 A/B 差值。(b) 经验语料覆盖的基准族。(c) 687 条经验记录的构成。
9 讨论
取消计划不等于规划智能消失了。执行器——基础循环——在两种模式下是同一个组件,规划器也以带完整规格驱动与马尔可夫任务卡的专家层身份存活。转向从默认路径上移走的,是前置的 LLM 任务图与监管它的机器。精确陈述的主张是:在轻量本地护栏下的运行时循环控制,除显式并发外,在每个 token 上买到的协调能力优于规划期分解——并发场景下分解仍然划算。
补偿机器的退役是一次「弱到强」的迁移。机器验收、语义评审、质量门是为弱执行器交的税;基座模型变强之后,税照收而收益消失。默认保留这类机器的系统,将对着同样的证据交同样的税。这里给出的机制——一次直接测量「恢复的分数」对「运行时成本」的配对 A/B——是审计任何此类组件的模板。
泛化边界是诚实的工作。路由规则是针对本产品流量调校的中英双文正则;150 秒新任务保险丝、三轮循环上限、15% 晋升带这些阈值,是对本部署的硬件与模型校准的系统常数。可迁移的部分是架构本身——默认走循环的路由、只查存在的收尾、跑在不可变状态上的停止阶梯、带出处验证的经验召回——所有常数都已公开,便于他人重新校准。
10 结论
BuddyMe 把计划模式从默认执行路径上换成了动态编排下的基础循环。零 LLM 路由器让规划成为例外。循环的轮次解剖、预算与停止阶梯从已记录的事实决定下一步。收尾验证存在而非评判质量,带已验证出处的经验循环把每次运行变成可召回的教训。这次转向立在两项证据上:Terminal-Bench 2 上循环领先计划优先配置 8.3 分的配对 A/B,以及跨 30 多个基准族 687 条记录的可观测语料。规划器仍在用户要求并发的地方存活——这是这个主张的诚实形态。主张不是「规划无用」,而是:在这个负载上、在这个模型强度下,循环默认获胜,计划必须逐请求地证明自己。
参考文献
[1] J. Wei 等. Chain-of-thought prompting elicits reasoning in large language models. NeurIPS 2022. arXiv:2201.11901.
[2] S. Yao 等. ReAct: Synergizing reasoning and acting in language models. ICLR 2023. arXiv:2210.03629.
[3] B. Xu 等. ReWOO: Decoupling reasoning from observations for efficient augmented language models. arXiv:2305.18323, 2023.
[4] L. Wang 等. Plan-and-solve prompting: Improving zero-shot chain-of-thought reasoning by large language models. ACL 2023. arXiv:2305.04091.
[5] S. Yao 等. Tree of thoughts: Deliberate problem solving with large language models. NeurIPS 2023. arXiv:2305.10601.
[6] N. Shinn 等. Reflexion: Language agents with verbal reinforcement learning. NeurIPS 2023. arXiv:2303.11366.
[7] A. Zhao 等. ExpeL: LLM agents are experiential learners. AAAI 2024. arXiv:2308.10144.
[8] B. Sel 等. Algorithm of thoughts: Enhancing exploration of ideas in large language models. arXiv:2308.10379, 2023.
[9] W. Yang 等. Markov chain of thought for efficient mathematical reasoning. arXiv:2410.17635, 2024.
[10] X. Liu 等. AgentBench: Evaluating LLMs as agents. ICLR 2024. arXiv:2308.03688.
[11] G. Mialon 等. GAIA: A benchmark for general AI assistants. ICLR 2024. arXiv:2311.12983.
[12] C. E. Jimenez 等. SWE-bench: Can language models resolve real-world GitHub issues? ICLR 2024. arXiv:2310.06770.
[13] M. A. Merrill 等. Terminal-Bench: Benchmarking agents on hard, realistic tasks in command-line interfaces. arXiv:2601.11868, 2026.
[14] Anthropic. Building effective agents. 工程博客, 2024-12. https://www.anthropic.com/engineering/building-effective-agents
[15] Significant Gravitas. AutoGPT: An autonomous GPT-4 experiment. 开源项目, 2023. https://github.com/Significant-Gravitas/AutoGPT
🎁 BuddyMe 每日免费 4500 万 Token