Update avaliable. Click RELOAD to update.
📱 安装应用到主屏幕,获得更好体验
目录

Claude Code循环实战:从零搭建自动化工作流

从手动到自动

大多数人用Claude Code的方式还是手动的:写一个提示→等它回答→检查结果→决定下一轮问什么。单次任务没问题,但一旦工作变成重复的、有状态的、需要多轮校验的,更好的抽象不是更好的提示词,而是一个循环(Loop)。

A Claude loop is a repeatable workflow around the model. It defines:

模型仍然负责推理和工具调用,但循环提供了操作框架。

Loop Readiness Check:什么时候值得搭循环?

不是所有事情都值得搭Loop。在开始之前,先问自己几个问题:

任务是否涉及多步决策? 如果只需要三步以内就能搞定,手动更快。

是否涉及外部工具调用? 读文件、写文件、执行命令——这些是Loop的典型场景。

输出需要验证吗? 如果输出错了不会立刻发现,说明需要内置验证。

有一个明确的完成标准吗? 没有完成标准的Loop会无限运行。

三步以上且有明确完成标准,才值得搭Loop。

最小可行Claude Loop

一个最小的Loop由四个文件构成,放在项目的 .claude/loops/你的循环名/ 目录下。

文件结构

.claude/loops/your-loop/
├── TASK.md              # 做什么
├── LOOP_INSTRUCTIONS.md # 怎么做(含验证规则和停止条件)
├── PROGRESS.md          # 持久化状态
└── outputs/             # 每次执行的产出物

TASK.md — 任务定义

描述要完成的目标和验收标准:

# 任务:定期检查依赖更新

## 目标
每周一检查项目依赖是否有安全更新,自动更新并跑测试。

## 验收标准
- 发现过期的依赖并列出
- 更新到最新兼容版本
- 跑完整测试套件确认无回归

LOOP_INSTRUCTIONS.md — 操作指令

核心文件。定义worker和checker的职责分工:

# Loop 指令

## Worker 职责
1. 读取 TASK.md,了解本次目标
2. 读取 PROGRESS.md,了解当前进度
3. 执行一轮任务操作
4. 更新 PROGRESS.md,记录做了什么
5. 把所有产出物写入 outputs/ 目录

## Checker 职责
1. 读取 TASK.md 的验收标准
2. 检查 worker 的输出是否达标
3. 如果达标:在 PROGRESS.md 标记完成,停止循环
4. 如果不达标:在 PROGRESS.md 记录问题,触发下一轮

## 停止条件
- 任务完成(checker 确认达标)
- 重试超过 5 次
- 遇到无法自动修复的错误 → 输出人工介入指令

PROGRESS.md — 持久状态

这是Loop区别于普通prompt的关键。状态文件让每次执行都能看到前一次干了什么:

# 进度追踪

## 当前轮次:0

## 完成项
(空)

## 发现
(空)

## 待办
- [ ] 初始运行

## 决策记录
(空)

每次循环执行后,模型更新这个文件,写入当前轮次、完成了什么、发现了什么、待办项和决策记录。即使模型上下文窗口有限,也能通过读写文件延续跨轮次的工作。

Verification by Separation:校验分离

这是最核心的模式:把「执行者」和「检查者」分开。

这种角色分离的好处是:执行者不需要同时判断自己的输出是否正确——这是人类开发者也遵循的模式(写代码的人和Code Review的人分开)。

在单个文件里就能实现这种分离:LOOP_INSTRUCTIONS.md 中分别定义worker和checker的指令块。

定时调度:/loop 命令

Claude Code 的 /loop 命令可以设置定时执行频率:

/loop every 24h    # 每天跑一次
/loop every 7d     # 每周跑一次
/loop at 9:00     # 每天早上9点

这对于以下场景特别有用:

Permission Boundaries:安全边界

Loop自动化不等于让机器无限制操作。需要在 LOOP_INSTRUCTIONS.md 中定义明确的权限边界:

## 权限
- ✅ 读取:src/、tests/、package.json、requirements.txt
- ✅ 写入:outputs/ 目录、PROGRESS.md
- ❌ 写入:.env、config/production.json、.git/
- ❌ 执行:git push、npm publish、rm -rf

这些边界确保Loop在失控时不会造成破坏。

实战要点

从最小版本开始

不要一开始就想做全自动。从「一个文件 + 一个校验」的极简版开始:

  1. 建目录和 TASK.md
  2. 写 LOOP_INSTRUCTIONS.md(含worker和checker)
  3. 跑一次看看
  4. 再加 PROGRESS.md 做状态持久化
  5. 再加定时调度

Checker的能力上限

Checker的能力上限就是Claude本身的能力上限。如果worker搞不定的复杂任务,换同一个模型做checker也很难发现问题。真正需要强校验的场景,应该引入:

PROGRESS.md 的读写竞争

如果Loop同时有多个实例在跑(定时任务和手动触发重叠),PROGRESS.md的状态可能被覆盖。生产级用法应该加时间戳分隔或单向状态机。

总结

Claude Loop的核心价值不在于让模型全自动运行,而在于为重复性工作搭建一个可控的自动化框架。按照”手动测试→搭最小Loop→加校验→加状态→加调度”的顺序逐步建设,不要一步到位。

你每天用Claude Code处理重复性任务超过30分钟吗?如果是,花两小时搭第一套Loop,成本一两天就能回收。

版权所有,本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。转载请注明出处:https://www.wangjun.dev//2026/07/claude-code-loops-practical-guide/
📝 此页面已自动翻译为英文 · 查看原文
EN | 中文