怎么做 Long-running Agents,Cursor、Anthropic 给了两种截然不同的思路
Founder Park·2026-01-20 23:00

文章核心观点 当前AI Agent在独立、短时任务上表现良好,但执行复杂、长时任务仍面临挑战。Cursor和Anthropic分别提出了不同的工程实践方案:Cursor通过大规模并行运行多个具有角色分工的Agent来扩展项目规模;Anthropic则专注于解决单个Agent在跨越多个工作周期时的记忆连续性问题,通过双Agent方案和严格的工作流程来推进长时任务[3][4][27][29]。 Cursor的“多Agent并行协作”方案 - 目标与挑战:旨在通过大规模并行运行成百上千个Agent来处理复杂、长时任务,如从零构建软件。核心挑战在于如何有效协调这些Agent,处理超过一百万行代码和数以万亿计的Token[8]。 - 协调机制的演进: - 第一次尝试(扁平化协作与锁定机制):构建了完全扁平化的系统,Agent通过共享文件协调。但该方案失败,因锁机制导致吞吐量骤降(20个Agent仅相当于两三个的效率),系统脆弱,易因Agent崩溃或协调文件冲突而瘫痪[9][10][11]。 - 第二次尝试(乐观并发控制):采用乐观并发控制机制,Agent自由读取、认领任务并短暂锁定。此方案更稳健,但暴露了群体性“风险规避”问题,Agent倾向于执行细小任务,导致项目核心进展停滞[12][13][14]。 - 最终方案:引入角色分工的流水线体系:摒弃扁平化结构,设立三个核心角色: - 规划者:类似架构师,持续探索代码库、理解需求并派生任务,规划过程可并行化[21]。 - 工作者:主力工程师,纯粹执行从任务池领取的单一任务,无需全局协调[21]。 - 裁判:类似项目经理,定期评估进展并决定是否进入下一轮迭代[21]。 该体系解决了协调难题,能将项目规模扩展到前所未有的程度[15]。 - 实验验证与成果: - 从零构建网页浏览器:Agent团队运行近一周,在1,000个独立文件中编写了超过100万行代码,成功构建出基础浏览器。数百个工作者可同时向同一分支提交代码且冲突率极低[16][17]。 - 大型代码库原地迁移:将大型项目前端框架从Solid迁移到React,耗时三周多,产生+266,000行新增和-193,000行删除的代码变更,并通过了持续集成系统检查[19][22]。 - 产品性能与功能优化:Agent用Rust重写视频渲染模块,将渲染速度提升25倍,并增加了平滑缩放等新功能。该代码已被合并至主干即将上线[23]。 - 经验与教训: - 模型选择至关重要:GPT-5.2在长时间自主工作中表现更佳,能更好遵循指令、保持专注。不同模型擅长不同角色,例如GPT-5.2是比专门优化的GPT-5.1-Codex更优秀的规划者[24]。 - 简化系统设计:许多改进源于“做减法”,例如移除了制造瓶颈的“集成者”角色。最好的系统往往比想象的更简单[24][25]。 - 结构需恰到好处:结构太松散会导致冲突与偏离,太严密则系统脆弱。系统的绝大部分行为取决于prompt的精心编写[26]。 - 仍需进一步探索:多Agent协调仍是难题,系统未达最优。例如,规划者应能自动唤醒,Agent存在运行时间过长问题,仍需定期重启以对抗目标偏离[26]。 Anthropic的“解决单个Agent记忆连续性”方案 - 核心思路:专注于解决单个Agent在跨越多个有限上下文窗口工作时的“记忆连续性”问题,通过引入类似人类团队的分工协作机制,将复杂任务拆解并确保清晰交接[27][29][31]。 - Agent在长任务中的主要问题: - 一口气干太多:试图一次性完成整个应用(如克隆claude.ai),导致代码混乱,给后续会话留下难以接手的半成品[33]。 - 过早宣布胜利:项目仅完成一部分便停止工作[33]。 - 测试敷衍:仅运行基础测试,未进行真实的端到端流程验证[33]。 这些问题的共同点是Agent缺乏全局目标认知和清晰的交接机制[30]。 - 双Agent方案设计: - 第一步:初始化Agent:仅在项目启动时运行,负责搭建完整的初始环境。其关键任务是将用户提示扩展为结构化的功能需求清单(JSON格式),例如在克隆claude.ai的示例中生成了超过200个功能描述。所有功能初始标记为“failing”,为后续工作提供清晰路线图[34][35][36][37][38]。 - 第二步:编码Agent:在后续会话中接手工作,严格遵循“渐进式推进”原则,每次只完成一个功能并确保环境处于“干净状态”。其标准工作流程为:1) 理解现状(阅读进度文件和Git日志);2) 选择单一任务;3) 专注实现;4) 留下痕迹(提交代码并更新进度文件)[34][39][40][41]。 - 测试环节的改进:为解决测试敷衍问题,为Agent配备浏览器自动化工具(如Puppeteer MCP),要求其像真实用户一样操作页面进行端到端验证。该方法大幅提升了功能验证的准确率,使Agent能自行定位和修复许多仅看代码无法发现的Bug[42][43][44][45][46]。 - Agent“开工”标准流程:每个编码Agent会话开始时,会按固定流程熟悉环境:运行pwd确认目录、阅读Git日志和进度文件、阅读功能清单、运行init.sh脚本启动服务器并运行基础测试,确保环境正常后再开始新工作[47][48][49][50]。 - 开放性问题:未来是发展全能Agent还是由测试、质检等专家Agent组成的多Agent团队?当前为Web开发优化的方法能否推广到科学研究、金融建模等其他领域[53]。