Loop 主要补偿随机 EOS ,而不是证明工程完成。机械续跑没有可靠回答“为什么未完成、下一轮具体完成什么、哪些证据满足后才允许停止”。若判断仍依赖模型自己的自述,系统只是用模型上一轮的话决定是否让同一个模型再说一轮。续跑只增加生成轮次,并不增加工程组织结构。循环一百轮也不会自动得到清晰所有权、稳定接口和完成门禁。Loop 可以让车继续行驶,却没有路线图、交通规则、检查站和竣工验收。“没有停止”不等于“朝正确终点推进”。
更机械的 loop 往往只发送模糊的“继续”或重放上一轮提示。若模型卡在错误假设上,这只会让错误路径延长;若依赖尚未满足,续跑会诱使模型编造接口;若真实验证需要外部环境,loop 可能反复总结静态代码。普通“继续”在每次注入后都可能被模型重新解释,产生重复编辑、重复测试甚至把已完成方案改坏。因此 EOS 重试是一种生成控制技术,不是软件工程治理机制。
任务拆开并不自动获得并行能力。若 B 使用 A 的新接口,C 依赖 B 的数据结构,三个会话同时按各自猜测实现,只会放大返工。两个工单没有业务依赖,却可能都修改公共路由文件;它们逻辑上可并行,文件上却冲突。多个 Coder 直接写同一个工作树,可能被彼此的未完成代码、构建产物、依赖安装和格式化影响;修改同一文件时甚至会无声覆盖。传统流程常在最终 Git 合并时才发现文本冲突,而结构冲突、行为冲突、计划冲突和资源冲突往往更晚、更贵。
单 agent 主要依赖自我修正,实现者倾向维护自己的方案。模型可以声称“已完成”,但缺少构建、测试、真实运行或合并证据时,系统如果仍接受,就会把伪完成固化下来。许多智能体工具表面上提高了自动化程度,实际却创造了新的管理负担:用户要拆任务、重发上下文、监督模型是否偷懒、反复点击继续、协调多个 agent 、检查每个分支是否冲突。用户从写代码的人变成照看 AI 的人。若完成一项工作需要持续盯着 agent ,那么自动化只是把劳动换了形态。
3.5 治理本身也会失效
错误分解会制造更多冲突,缺失依赖会让下游过早启动,过度保守又会损失并行度;隔离工作区占用磁盘、缓存和端口;低质量 Adversary 会制造噪声;过期 Plan 会从外部记忆变成外部垃圾。文本冲突的自动合并成功只证明文本可组合,不证明行为正确。协调若只追求“冲突标记消失”,Git 虽干净,组织状态仍可能分裂。
四、AnyPal 的策略
4.1 总体思路:把完成从自述改成可观察状态
AnyPal 的“计划与敏捷”并不试图替代 loop 、goal 或 graph ,而是将它们放在不同层次。Loop 负责局部行动,Goal 负责会话内工作,Graph 主要承担运行时的派发、并行与汇总,Plan 则负责跨会话的工程状态。推进依据也从模型自述逐渐转向可观察、可检查的工程状态。系统不根据模型主观叙述判断是否继续,而根据待办是否收敛、依赖是否满足、验证是否通过、评审 block 是否关闭、隔离变更是否合并等机器可观察事实触发定向提醒。长期目标由 AI 工程经理外化为 Plan 、Issue 、Sprint 、依赖图、角色责任、会话链接、检查项和交付证据。用户只描述大局需求,不维护看板。
这些机制并不需要暴露给普通用户。用户只需要描述目标、查看进展并接收结果,任务拆解、状态监督、依赖调度和验证由系统负责。用户不需要先学习 agent loop 、选择循环次数、在模型随机 EOS 后手工点击“继续”,画拆分点与失败边,掌握上下文窗口、工具调用、压缩策略和验证层级。只需要像平常一样向 AI 工程经理描述目标、补充要求、查看进展和接收结果。技术复杂性应该尽可能由系统吸收,而不是要求用户理解内部运行机制。
因此,计划与敏捷 不跟随“图不用人画了”。Claude 的 dynamic workflows 可以按目标现场生成一张图,但那仍是本次运行的编排脚本。我们要的是:拆分可追溯、依赖可计算、并行有所有权、完成有证据、恢复能从 Plan 重建现场。检查项、会话链接、隔离分支与合并门禁都不在一条边上。Graph 可以说明一次派发如何形成菱形; Plan 说明的是项目为什么还没完成。
4.4 计划外化与逐级分解
用户向 AI 工程经理描述大局需求后,Lead 与系统把核心需求写进工单,把顺序写进依赖图,把风险写进检查项,把证据写进完成记录。Sprint 是工程级拆解:哪些工单进入本轮交付、关键路径如何排布;工单内 Todo 才是任务级拆解:当前会话要实施和验证的步骤。上下文压缩只影响某个执行会话的短期认知,不再决定项目事实是否存在。执行者可以调整局部实现,但不能静默改写验收契约。
好的分解必须纵向可追溯,并由 AI 整理而不是交给用户手写卡片。前端入口、API 、持久化、权限和测试共同组成“发现—操作—系统响应—用户反馈”的闭环。一个 API 工单通过只能证明接口层完成,所有必要子项完成且父级真实场景可运行后,Feature 才能完成。合适的叶子工单边界清晰、依赖有限、验证独立、合并可控。若同时跨越多个子系统、修改大量共享契约,应继续拆分;若两个改变必须原子出现且无法独立验证,则应保留为同一工单内的实施步骤。目标不是卡片最多,而是每个被工程锁产生的会话只装当前叶子所需。父级保存业务结果,叶子任务足够小,相关文件、接口、测试和决策能稳定放入上下文,使该会话尽可能少做有损压缩;即使叶子会话压缩,也不会丢失它在整体中的位置。
Lead 的产物不是某段代码,而是一个可运行的交付组织:边界清楚、顺序合理、责任明确、冲突可升级、完成可证明。Coder 读取项目约定和既有模式,在会话内建立 Todo ,修改代码,补充测试,运行构建或真实场景,并回写证据。若现场事实与工单冲突,它应升级而不是静默扩大或缩小范围。会话关联工单后,状态应自动从待办进入进行中,保证看板与真实执行一致。
文本重叠但业务语义独立时,优先重新划分编辑区域或按顺序落地,不必停止全部并行。共享接口尚未定稿时,应暂停消费者,先由契约工单完成接口和兼容策略。两个工单目标重复时,应由 Lead 合并范围并保留一个权威交付单元。行为假设冲突时,不能靠 Git 选择版本,而要回到验收标准。资源冲突则采用预约、端口分配、独立数据集或串行发布窗口。冲突严重度取决于影响半径、可逆性和发现阶段:治理强度与风险匹配。解决后必须确认两边意图均得到保留或有一边被明确废弃,依赖图已更新,受影响会话已收到新边界,评审检查项已关闭,合并后验证覆盖原始冲突场景。
4.10 端到端闭环与双重收敛
需求首先被写成工程契约,包含背景、范围、非目标、交互闭环和完成定义。大工单逐级分解,Lead 标记关键路径、共享契约、风险和影响面,选择 ready 节点进入 Sprint 。Coder 在叶子工单内使用 Goal 保持局部敏捷,但范围或公共接口变化必须同步回 Plan 。验证优先采用真实运行:Web 用浏览器操作和 DOM 断言,桌面用原生自动化,CLI 与服务用真实命令或 HTTP 。无法真实运行才降级到集成、单元或静态检查,并说明实际阻塞。证据必须匹配层级,不能用“代码看起来正确”替代运行结果。
完成采用双重收敛。会话内 Todo 必须全部完成、取消或因真实用户输入阻塞;组织层 Issue 又必须满足验收、关闭 block 、合并隔离变更并更新看板。助推器 持续检查这两层状态,只要仍有确定性缺口,就给出针对性推进;当所有 fixture 都满足,系统才允许 EOS 成为真正终点。
人擅长表达意图、判断价值和作出高层选择; AI 擅长检索、执行、验证和处理大量工程细节;运行时擅长维护状态、约束顺序、发现冲突和保证收敛。AnyPal 不是先接受“所有 agent 都必须有 loop 、goal 或 graph”这个前提,再围绕它堆功能;而是从用户任务是否真正完成出发,逐步形成 Todo 收敛、助推器、持久 Plan 、依赖调度、会话级隔离、Adversary 和冲突协调。用户只向 AI 工程经理描述大局需求,不编写看板。概念服务于问题,而不是让问题迁就流行概念。
AnyPal 的目标是让责任真正转移。用户提出需求后,系统负责把自然语言意图转化为可执行结构,负责在上下文压缩后恢复细节,负责在随机 EOS 后依据 fixture 判断是否继续,负责在依赖允许时并行,负责隔离写入并协调冲突,负责以构建、测试、真实运行和评审证明完成。只有无法替用户作出的决定才返回用户。
这不是承诺 AI 永远不犯错,而是通过制度让错误可发现、可定位、可阻断、可恢复。单个 agent 可能遗漏,Adversary 可以发现;单个会话可能忘记,Plan 可以恢复;一个分支可能冲突,隔离和 Lead 可以协调;模型可能提前 EOS ,助推器 可以推进。可靠性来自多层防线,而不是来自对单一模型能力的神化。
真正可扩展的智能体工程,不需要假设存在一个永不输出 EOS 、永不遗忘、永不犯错的超级模型。它需要一套即使模型会随机停止、局部上下文会压缩、多个会话会并发修改,整体仍能知道缺什么、为何继续、怎样验证、何时真正完成的系统。助推器 提供确定性推进,计划与敏捷 提供持久组织;两者结合,才使超大规模任务从“多跑几轮”升级为符合工程严谨性的可审计交付。
我们并不打算照着其他 Agent 产品的方式做一遍。Loop 、Goal 这些东西当然有用,也会存在于系统内部,但没必要让用户为了使用 AI 去学习这些概念。
我们更希望把这些事情留在后台。任务怎么拆、哪些任务可以同时做、会不会互相冲突、做完以后怎么验证,这些应该尽量由系统处理。用户还是按照原来的方式提需求,剩下的事情交给 AI 去完成。
所以 AnyPal 真正在意的,也不是有没有 Loop 、Graph 这样的新概念,而是用户把需求交给 AI 之后,AI 能不能少让用户操心一些,把事情真正做完。