Claude Code 搭 Agent Loop:从“一次对话”到“自主循环”的完整实践

2026 年,AI 编程的重心已经从“写好 Prompt”转向“设计好 Loop”。Claude Code 的创造者 Boris Cherny 有一句广为流传的话:“我已经不再自己 Prompt Claude 了。我写的是 Loop,Loop 在 Prompt Claude,并决定下一步该做什么。我的工作就是写 Loop。”

这句话道出了当前 Agent 工程的核心转变。真正的 Agent 不是一次回答就结束的对话,而是一个不断重复工作周期,直到满足停止条件的循环系统。Claude Code 把这种循环做得非常干净:它本身就是一个 Agent Loop 的精致实现,再加上工具、Skills、Hooks、Subagent 等原语,让开发者能轻松搭出从简单到高度自主的循环。

一、什么是 Agent Loop?

Claude Code 团队给出的官方定义非常工程化:

Loop 是 Agent 重复执行工作周期,直到满足某个预设停止条件的过程。

它和传统的“一次 Prompt 一次回答”有本质区别。一次 Prompt 里,模型会自己进入内部的 agentic loop(收集上下文 → 调用工具 → 观察结果 → 再决策),直到它认为任务完成。而更高层的 Loop,则是把这个过程本身自动化、可调度、可验证、可停止。

核心循环永远是这四步:

  1. 感知当前状态(读文件、跑测试、查 CI)

  2. 决策下一步行动

  3. 执行行动(编辑代码、运行命令)

  4. 验证结果,决定继续还是停止

关键在于停止条件必须可被程序判定,而不是模糊的“做得更好”。

二、Claude Code 里的四种 Loop 类型

利用Claude Code 搭 Agent Loop,你需要先弄懂Claude Code 团队把 Loop 按“你把什么交给 Agent”分成四类,形成清晰的自主性阶梯。

1. Turn-based Loop(回合制循环)

触发:用户输入 Prompt

停止条件:Claude 自己判断任务完成,或需要更多上下文

适用:探索性、一次性、还需要人类判断的任务

这是我们最常用的日常模式。你说一句“帮我做一个点赞按钮”,Claude 就会自己读代码、改文件、跑测试、再改,直到它认为可以交卷。你仍然掌握检查权。提升效率的关键是写好 Skills 和验证逻辑,减少无效回合。

2. Goal-based Loop(目标循环)

触发:你设定一个可验证的目标

停止条件:目标达成,或达到最大轮次

适用:有明确验收标准的复杂任务

最典型的命令是 /goal。例如:

/goal 让所有单元测试通过,且 Lighthouse 分数达到 90 以上,最多尝试 5 次

Claude 会持续工作,每轮结束后由另一个更轻量的评估模型检查条件是否真正满足。不满足就把失败原因喂回去继续迭代。这是“把停止条件交给系统”的关键一步。

3. Time-based Loop(时间循环)

触发:固定时间间隔或自定节奏

停止条件:你手动取消,或外部工作完成(PR 合并、队列清空等)

适用:周期性维护、监控、等待外部变化的工作

命令是 /loop 和 /schedule。例如:

/loop 5m 检查我的 PR,处理 review 意见,并修复失败的 CI

/loop 跑在你的本地会话里,电脑关机就停;/schedule 可以把任务放到云端,真正无人值守。

4. Proactive Loop(主动循环)

触发:事件或日程,全程无人实时参与

停止条件:每个子任务的目标达成,整体例程一直运行直到你关闭

适用:高度重复、定义清晰的流水线工作(bug 修复、issue 分拣、依赖升级、文档同步等)

这是最高自主度,通常把前面几种手段组合起来,再配合动态工作流、Subagent 和 Hooks。

三、搭一个真正能跑的 Agent Loop 需要什么?

无论用哪种类型,一个靠谱的 Loop 都离不开这几个核心零件:

  • 可判定的 Goal:必须是程序能验证的。“代码更优雅”不行,“npm test 全绿 + tsc 无报错 + 覆盖率 > 80%”才行。

  • 验证闭环:这是质量的关键。没有自动验证,Loop 只会越跑越偏。测试、linter、自定义检查命令都要写进 CLAUDE.md 或 Skills。

  • 状态持久化:用 markdown 文件、progress 记录、AGENTS.md 等记录进度,让循环在重启后还能接着干。

  • 工具与权限边界:Bash、读写文件、Git、浏览器、MCP 等。权限给得太松会危险,太紧又跑不动。

  • 停止与熔断机制:最大轮次、Token 预算、Hooks 里的强制中断,防止无限烧钱。

  • Skills 与 Hooks:把重复验证逻辑固化成 Skill,用 PostToolUse、Stop 等钩子注入评估和停止逻辑。