在 AI Agent 向长时序任务演进的当下,Anthropic 工程团队针对 Claude Agent SDK 提出 “Effective harnesses for long-running agents” 方案。该方案通过简单文件支架与提示工程,实现跨越多会话的可靠执行,避免上下文窗口限制导致的遗忘与混乱。核心是模拟人类工程师手 off:用结构化进度文件、Git 历史与端到端测试,确保每个新 Agent 实例快速 “接棒”。
问题诊断:长运行 Agent 的两大痛点
长运行任务(如构建 claude.ai 克隆,超 200 功能点)无法单次上下文窗口完成。常见失败模式包括:
- 一次性蛮干:Agent 试图全盘实现,导致中途上下文耗尽,遗留半成品无文档,后续实例需猜测修复,效率低下。
- 过早完工:后期实例见部分功能即误判完成,忽略剩余任务。
Anthropic 测试显示,仅靠上下文压缩无效。解决方案转向外部 “harness”:双 Agent 架构 + 三大支柱(功能列表、增量进展、端到端测试)。
支架核心组件与落地参数
1. 双 Agent 架构
-
Initializer Agent(首次会话专用提示):
- 生成
init.sh:一键启动开发服务器(e.g.,npm run dev)。 - 创建
claude-progress.txt:记录整体摘要、最近变更。 - 构建
feature_list.json:详列所有功能,格式如下(初始passes: false):{ "category": "functional", "description": "New chat button creates a fresh conversation", "steps": [ "Navigate to main interface", "Click the 'New Chat' button", "Verify a new conversation is created", "Check that chat area shows welcome state", "Verify conversation appears in sidebar" ], "passes": false } - 初始化 Git 仓库,第一 commit 展示文件树。
- 提示参数:强调 “禁止编辑测试步骤,仅改 passes 字段”;优先级排序功能列表。
- 生成
-
Coding Agent(后续会话通用提示):
- 标准化启动序列(5 步,必执行):
pwd确认目录。- 读
claude-progress.txt与git log --oneline -20。 - 选
feature_list.json中最高优先未完成项(唯一一項)。 - 运行
init.sh重启服务器。 - 跑基础 E2E 测试确认无回归。
- 实现后:浏览器自动化测试(Puppeteer MCP server,截图验证);通过则改
passes: true,更新进度文件,Git commit(描述性消息,如 “feat: implement new chat button with E2E tests”)。
- 标准化启动序列(5 步,必执行):
2. 自动回滚与并行执行
- Git 作为回滚层:每个变更后强制 commit。若测试失败,Coding Agent 提示中嵌入 “若引入 bug,用
git revert HEAD回滚”。阈值:连续 3 次失败后,手动干预或切换模型。 - 并行执行潜力:虽官方单 Agent,扩展为多轨:用脚本 fork 多个 Coding Agent 实例(不同分支),每轨一功能群。监控脚本每 10min 拉取主分支,merge 通过测试者。参数:分支命名
agent-{id}-{feature};冲突阈值 <5% 代码变更。
3. 评估驱动恢复循环
- JSON 评估:功能列表即 “evals”。提示强制 “仅标记 passes 经截图 + 步骤全过”。恢复循环:启动时若发现 passes=false 但文件存在,优先修复(分类:环境 bug → 读 Git log;逻辑错 → 复现步骤)。
- 监控参数:
指标 阈值 动作 会话 token 消耗 >80% 窗口 强制 commit 中止 功能通过率 <70% 日增 暂停,审阅 progress.txt Git commit 频率 <1 / 会话 提示优化,疑过早完工 测试失败率 >20% 回滚 + 分类日志(env / 逻辑 / 过早)
4. 故障模式分类与处理清单
Anthropic 总结 4 类故障,支架内置应对:
- 环境遗留:读 init.sh + 测试启动。
- 过早完工:功能列表全景,强制选未完成。
- 无文档:进度文件 + Git 强制。
- 测试不足:Puppeteer 强制 E2E,非 curl 单元。
快速部署清单:
- 环境:Node.js + Puppeteer + Claude Agent SDK。
- 提示模板:复制官方(工程博客),加 “严格 JSON,无 Markdown”。
- 脚本化:Bash wrapper 自动化 Agent 循环(while 未全 passes)。
- 扩展:Docker 隔离;Prometheus 监控 commit/tests。
- 回滚策略:每日 snapshot 分支;人工阈值:>5 连续失败。
工程价值与风险限界
此 harness 将 Claude Opus 4.5 在 claude.ai 克隆任务中成功率从 <20% 提至稳定增量(每会话 1-2 功能)。观点:简单文件> 复杂框架;证据如 Git 日志可审计,远胜纯提示。
风险:领域限 Web 开发,泛化科研需调 JSON 步骤;单 Agent vs 多 Agent 未定,建议 A/B 测试。
资料来源:Anthropic 工程博客《Effective harnesses for long-running agents》(2025-11-27),Hacker News 讨论,腾讯新闻总结。实际部署请参考官方 SDK 示例仓库。
(正文约 1050 字)