ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Anthropic循环设计指南解读:用Claude Code搭建可复现的Agent loop配置骨架

Anthropic循环设计指南解读:用Claude Code搭建可复现的Agent loop配置骨架 1. 为什么你的 Agent 循环总是跑偏很多人第一次接触 Anthropic 的循环设计指南会以为它讲的是某种新框架或者新 SDK。其实不是。它讲的是把「你手动一轮一轮喂提示词」这件事拆成可配置、可停止、可复现的循环结构。换句话说Agent loop 不是让模型变聪明而是让「什么时候开始、什么时候停、谁来验证」这三件事从你的脑子里搬到配置文件里。我见过太多项目卡在同一个地方Agent 跑起来了但每次结果都不一样Token 烧得飞快出了问题只能靠翻聊天记录猜。根因往往不是模型不行而是循环没有边界。Anthropic 把循环分成轮次、目标、时间、主动四类本质上是在回答一个问题——你把哪一部分控制权交出去剩下的部分就必须用配置锁死。这篇面向的是已经在用 Claude Code 写 Agent、但循环还停留在「手动敲提示词」阶段的开发者。我会给出settings.json和config.toml里 loop 相关的可复制骨架然后完整走一遍触发和验证。你不需要先读完官方文档跟着配置改就能跑。核心检索词先摆清楚Anthropic loop 是一套让 Agent 重复执行工作周期直到满足停止条件的设计方法Claude Code 是它的落地工具Agent 循环配置骨架是你要拿到手的东西。适合谁适合那些已经能跑通单次 Agent 调用、但想让它在无人值守下稳定迭代的人。2. 先把 TaoToken 的接入前置做掉Claude Code 本身不绑定某一家模型服务它通过 API 端点调用模型。你要做的是把端点和密钥配好让 Claude Code 能稳定发请求。这里用 TaoToken 作为接入层官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。先拿 Key。打开 https://taotoken.net/api-keys 创建一个新密钥复制出来。注意这个 Key 只在创建时完整显示一次丢了就重建。拿到之后不要写进代码仓库用环境变量。export TAOTOKEN_API_KEYsk-你的密钥 export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEY$TAOTOKEN_API_KEY这三行的作用ANTHROPIC_BASE_URL告诉 Claude Code 请求发到哪里ANTHROPIC_API_KEY是鉴权凭证。Claude Code 读的是 Anthropic 风格的环境变量名所以即使你用的是 TaoToken 的端点变量名也不要改。注意不要把 Key 硬编码进settings.json提交到 Git。环境变量 本地.env是底线。如果你还没装 Claude Code先装npm install -g anthropic-ai/claude-code claude --version装完先做一次最小连通测试确认 Key 和端点没问题再往下配循环。这一步别跳过否则后面循环报错你分不清是配置问题还是网络问题。curl -s https://taotoken.net/api/v1/messages \ -H x-api-key: $TAOTOKEN_API_KEY \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 64, messages: [{role:user,content:回复 OK 两个字母}] }返回里有content字段且文本是 OK说明链路通了。这一步通了循环配置才有意义。3. settings.json 与 config.toml 的 loop 配置骨架Claude Code 的配置分两层settings.json管权限、工具、环境config.toml管循环、计划任务、模型路由。下面给的是骨架字段名按你本地版本为准但结构可以直接抄。先看settings.json放在项目根目录的.claude/settings.json{ permissions: { allow: [ Read, Edit, Bash(npm run test:*), Bash(npm run lint:*), Bash(git diff:*) ], deny: [ Bash(rm -rf:*), Bash(git push:*) ] }, env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: ${TAOTOKEN_API_KEY} }, loop: { maxTurns: 8, stopOnTestPass: true, verifySkill: verify-frontend-change } }这里三个 loop 字段对应轮次循环和目标循环的边界maxTurns是硬上限防止无限迭代stopOnTestPass让测试通过成为确定性停止条件verifySkill指向你的验证技能文件。permissions.allow里只放循环需要的工具deny里挡住破坏性命令这是循环能无人值守的前提。再看config.toml放在~/.claude/config.toml或项目级.claude/config.toml[loop] default_interval 5m max_rounds 5 goal_stop_on_pass true [loop.goal] criteria 所有单元测试通过且 lint 无 error max_attempts 5 [loop.schedule] enabled true interval 1h prompt 检查 project-feedback 频道的新 Bug 报告并分类 [models] routine claude-haiku-4-20250514 judgement claude-sonnet-4-20250514[loop.goal]对应目标循环criteria就是你的可验证退出标准max_attempts是轮次上限。[loop.schedule]对应时间循环和主动循环interval决定多久跑一次。[models]是 Token 管理的关键例行检查用便宜快的模型需要判断时切到强模型。提示criteria一定要写成可判定的句子。「代码质量好」不行「lint 无 error 且测试全绿」才行。评估模型靠这个字符串判断是否放行。把这两份配置放好后用claude config validate检查语法。有报错先修别带着错配置跑循环。4. 触发一次完整循环并验证结果配置就绪后先跑目标循环因为它最容易观察。假设你有个前端项目想让 Agent 把首页 Lighthouse 分数提到 90。第一步写验证技能文件.claude/skills/verify-frontend-change/SKILL.md--- name: verify-frontend-change description: 在声明完成前端到端验证任何 UI 更改 --- 验证前端更改 1. 启动开发服务器并打开已编辑页面 2. 与新控件交互确认状态变化并截图 3. 检查浏览器控制台无新错误 4. 运行性能追踪审计核心网页指标 任何步骤失败修复后从第 1 步重跑不要提交部分验证的工作。第二步触发目标循环claude /goal 将首页 Lighthouse 分数提升到 90 分或以上尝试 5 次后停止Claude 会读取代码、修改、运行验证技能、检查结果。每次它想停评估模型会拿criteria对照没达标就退回继续。你会在终端看到轮次计数和 Token 消耗。第三步验证结果。循环结束后跑 /goal不带参数的/goal显示本次循环的轮次和 Token 使用。再跑 /usage它会按技能、子智能体、MCP 细分近期用量。如果轮次停在 5 且没达标说明criteria太严或任务本身需要拆小。如果 2 轮就过了说明标准设得刚好。时间循环的触发类似 /loop 5m 检查我的 PR处理评审意见并修复失败的 CI/loop跑在你本机关掉终端就停。要长期跑就转/schedule它把例行程序放到云端按config.toml里的interval执行。5. 循环跑不起来时的常见错排查报错一ANTHROPIC_API_KEY not set。环境变量没导出或者settings.json里用了${TAOTOKEN_API_KEY}但 shell 里没这个变量。检查echo $TAOTOKEN_API_KEY有没有值。注意settings.json的env块不会自动读.env文件得靠 shell 先 source。报错二循环无限跑不停止。九成是criteria不可判定评估模型每次都觉得没达标。把标准改成确定性条件比如「测试通过数 ≥ 12」而不是「测试基本通过」。同时确认max_attempts有值它是最后一道闸。报错三/loop触发后没反应。/loop依赖本机进程如果你在 SSH 会话里跑且断开了循环就没了。长期任务改用/schedule。另外确认config.toml的[loop.schedule] enabled true。报错四Token 消耗远超预期。看/usage的细分。常见原因是例行任务用了强模型或者interval设得太短。把[models] routine换成 haiku 级别把interval调到和外部变化频率匹配。动态工作流会生成大量子智能体大规模跑之前先在小批量上试点。报错五验证技能不生效。SKILL.md的 frontmatter 里name必须和settings.json里verifySkill的值完全一致大小写敏感。路径也要对默认在.claude/skills/name/SKILL.md。报错六权限被拒导致循环中断。循环需要的工具没在permissions.allow里。看终端提示缺哪个工具加进去。但别图省事全放开deny里的破坏性命令要留着。6. 把循环接进你的日常开发流配置骨架跑通之后真正决定效果的是循环周围的系统。代码库越干净Claude 越能遵循已有模式验证技能写得越具体循环越少空转文档越新Agent 越不容易用过时写法。我自己的做法是每个循环任务配一个独立的验证技能criteria只写机器能判定的条件例行检查一律走便宜模型需要判断时才切强模型。大规模跑之前先拿一小部分工作试点看/usage的数字再决定要不要放大。如果你还没配好接入层先去 https://taotoken.net/api-keys 拿 Key接入文档在 https://taotoken.net/doc 。想先验证模型行为再写循环用模型对话页 https://taotoken.net/models 试几轮。长期跑编码和 Agent 任务Coding Plan 在 https://taotoken.net/coding-plan 控制台在 https://taotoken.net/console 。Claude Code 相关的接入细节看 https://taotoken.net/doc/claudecode 。循环的价值不在于让 Agent 自己跑而在于你终于能把「什么时候停」写进配置而不是靠盯屏幕。
返回列表