并行运行多个编码代理时出现了我未曾预料的故障。实际让我措手不及的三个问题
摘要
文章讨论了并行运行多个编码代理时出现的三个意外问题:共享工作树的冲突、运行时冲突(数据库、端口)以及难以检测卡住的代理。解决方案包括使用每个代理的 Git 工作树、隔离运行环境以及监测剩余差距指标。
我开始同时运行两三个编码代理,以为唯一的问题会是成本。真正的问题全都出在共享状态上,而且直到出错了它们才显现。第一个:它们会争夺同一个工作树。两个代理在同一个仓库里编辑文件,结果产生了一些并非它们真正做出的 diff,部分更改被覆盖掉了。最终有效的修复是为每个代理创建一个 Git 工作树,这样每个会话的 diff 又变得有意义了,而且它们物理上无法触碰彼此的文件。第二个:工作树解决了 Git 侧的问题,但运行时没解决。每个代理有自己的分支,但它们仍然共享一个开发数据库、一个端口范围、一个 node_modules。有次我让两个代理先后跑了一次迁移,第二个直接覆盖了第一个的 schema 变更,而这一切在 diff 里根本看不出,因为代码是干净的。为每个代理隔离运行时——自己的数据库和端口——这部分我跳过了,结果付出了代价。第三个,也是最隐蔽的:判断一个代理是卡住了还是只是慢。退出码只能说明它跑了还是没跑,所以崩溃和真正的反对在下游看起来一模一样。而一个循环运行的代理每一步都会保持非零的状态差异,所以即使它在原地打转也不会触发任何警报。有效的做法是对剩余差距进行指纹识别——哪些测试仍然失败,哪些字段仍然为空——而不是关注动作本身,并且在几步后相同的差距指纹再次出现时发出标记。这些都不是模型太笨。是管道的问题。好奇大家是如何处理隔离的,每个代理一个容器,还是更轻量级的方式?
相似文章
我测了一下为什么在 Claude Code 里并行跑超过 3 个 agent 就会卡住
分析了为什么在 Claude Code 中运行超过三个并行 agent 会遇到瓶颈,揭示了 duty-cycle 问题——开发者成为主要延迟来源,而“合并”并行输出的过程是最大的时间成本。
在2台以上机器上运行编码智能体让我明白,难点不在于智能体本身,而在于控制平面
跨多台机器运行编码智能体表明,管理控制平面比管理智能体本身更具挑战性,为分布式智能体编排提供了洞见。
@alex_prompter:多智能体 AI 系统会在四个环节出问题。路由误触发,并行永不发生,交接丢失上下文,以及覆盖…
多智能体AI系统通常会在路由、并行、交接和覆盖方面出问题。本文推荐使用分派矩阵、并行执行、结构化交接和带日志的兜底后备方案来修复这些问题。
@PrajwalTomar_:停一下。在你添加另一个AI代理之前,请先阅读。人们现在并行运行20个编码代理。二十个。而且工具…
该推文认为,并行运行过多AI编码代理会降低代码库质量,并提倡使用少数几个专门代理的结构化设置。它还提到了Jcode的发布,这是一个开源代理,声称内存效率提高20倍。
在同一个仓库中运行混合编码代理数月之久的经验教训
本文分享了在多个代码仓库中使用多种AI编码代理数月的经验教训,涵盖了对其有效性和挑战的见解。