Claude Code 长任务为什么不容易跑偏
一句话概括
系统性总结 Claude Code 执行长任务时保持可靠性的六大核心机制——任务编排元数据文件化、代码库即真相来源、接力赛式子代理执行、三步循环任务文件化、上下文管理防退化、防护措施与风险控制——并给出从 50% 到 95% 成功率的实践演化路径。
实践内容
三步循环与成功率演化
一位开发者通过三个阶段将任务成功率从 50% 提升到 95%:
- Stage 1: 添加 README 和 CLAUDE.md —— 50% 成功率
- Stage 2: 为每个功能编写独立的 task-plan.md 文件 —— 75% 成功率
- Stage 3: 构建自动化 CLI 工具生成任务文件 —— 95%+ 成功率
三步循环:生成任务 → 生成计划 → 实现代码。“用自己的话写任务,迫使模型证明它理解了我。“
TODO 驱动开发范式
将 TODO 直接插入代码文件,而非保存报告和计划到 .md 文件:
- 代码库本身成为唯一的真相来源
- 缺失的工作直接定位在相关文件中
- 脚本可以列出所有 TODO 进行批量实现
- 消除了”记住还剩什么”的需要
上下文管理措施
- 使用
/compact压缩对话历史同时保留上下文摘要 - 保持 CLAUDE.md 简洁
- 将复杂任务拆分为小步骤——“一步一步最安全”
- 安装 Hooks 防止死锁
接力赛式子代理调度
避免并行处理导致的灾难(两个子代理同时修改同一文件产生冲突),采用”接力赛”方式:每次只派出一个 Sub-Agent 专注一个阶段,完成后再交接。“CEO 的工作是将大任务分解为无数小阶段”,确保阶段之间无冲突。
摘录
最关键的机制是将任务编排元数据”显式文件化”,当任务编排元数据被写入文件后,Claude Code 可以在重启后”基于文件行动”,这是长时运行项目能够持续可靠的关键。有开发者报告在单日连续操作中消耗了约 9 亿 token。
一位 Reddit 开发者在 9 周的实践中发现,将报告和计划保存到 .md 文件会导致文档累积,反而增加了认知负荷。相反,将 TODO 直接插入代码文件创造了一种范式:代码库本身成为唯一的真相来源,缺失的工作直接定位在相关文件中,脚本可以列出所有 TODO 进行批量实现。
长对话导致 token 过载,占退化原因的 85%。根本洞察是:“不要求它’一次完成’,而是要求它’不断尝试直到真正完成’。“所有方法共享同一个本质:给 Claude 一个任务,让它运行,检查完成是否真实,如果没有,继续下一轮。
涉及实体
- Claude-Code —— 本文的核心讨论对象,分析其长任务执行可靠性机制
涉及主题
- AI-Agent-长任务执行 —— Agent 执行长任务时的编排、防退化与成功率优化
- 上下文管理与防退化 —— 上下文累积导致退化的原因(85%)与对策
- 任务编排与文件化 —— 将任务元数据显式文件化、TODO 驱动开发等实践范式
我的评注
- “显式文件化”这个洞察非常本质——它把 Agent 的”记忆”从脆弱的对话上下文迁移到持久的文件系统,本质上是一种外部化记忆策略,与 OpenClaw 的双源记忆系统异曲同工
- 从 50% 到 95% 的三阶段演化路径具有很高的实操参考价值,尤其是 Stage 3 的”自动化 CLI 工具生成任务文件”,说明手工编写任务描述的瓶颈在于人的精力而非模型能力
- “接力赛式子代理”与并行子代理的取舍值得关注——很多框架默认推崇并行,但本文指出在文件修改场景下串行反而更可靠
- 约 25% 的 overnight 输出被丢弃这个数据点很诚实,说明即使有了完善的机制,长任务仍然不是”放手不管”的