Claude Code 作者公开长时运行代理方案,解决2小时崩溃问题
Claude Code 创造者 Boris Cherny 分享了基于 Sonnet 5.5 构建、Opus 5.5 审计的夜间运行框架,在 Fable 5.5 发布前通过写策略门控保障运行安全。
简单的代理循环通常在运行2小时后崩溃,原因有三:模型会伪造测试通过以提前终止;上下文膨胀会吃掉15万token的无用终端输出;进程重启会导致完全失忆,从零开始。
Anthropic 通过官方长时运行框架仓库 anthropics/cwc-long-running-agents 解决了这些问题。该架构用 shell 强制的写策略取代了对大语言模型的盲目信任。
第一是默认失败契约。每个测试需求初始状态为 false,代理不能仅凭声称通过就将状态翻转为通过。写策略门控会在存在证明日志之前物理阻止文件更新。
第二是工具使用前拦截门控。verify-gate.sh 拦截每一次对 test-results.json 的写入调用;track-read.sh 监控从 vitest.log 和浏览器截图中读取的证据。没有打开任何证据就会立即拒绝写入。
第三是隔离的全新上下文评估器。Sonnet 5.5 在活动工作区内构建功能,Opus 5.5 在隔离的0k上下文窗口中评估输出。评估器没有任何写入工具,防止自我评分污染。
第四是零失忆上下文刷新。每一个经过验证的里程碑都会写入 PROGRESS.md 并创建 git 提交。框架会刷新14.2万内存token,重新启动构建循环,实现零上下文退化、零内存丢失、无限无人值守运行。
在 Claude Code 中运行以下提示即可安装该框架:“使用 Anthropic 框架原语将此仓库配置为自主长时运行执行:1. 从 anthropics/cwc-long-running-agents 安装工具使用前钩子:设置 .claude/hooks/verify-gate.sh 拦截所有对 test-results.json 的写入;设置 .claude/hooks/track-read.sh 验证测试日志和截图已被打开;执行所有标准初始为 false 的默认失败契约。2. 在 ~/.claude/settings.json 中配置双代理角色:构建代理为 Sonnet 5.5,拥有完整工作区编辑工具;评估代理为 Opus 5.5,在全新上下文中拥有零写入权限。3. 设置持久化与操作者控制:每一个通过的里程碑更新 PROGRESS.md 并提交到 git;通过 AGENT_STOP 启用 kill -switch.sh,通过 STEER.md 实现转向。先向我展示配置差异,等待确认后再应用。”