§09今天就动手:搭你的第一个Loop
Build Your First Loop Today
从一行/loop 起步,一层层加上分诊、状态文件、评判器、worktree和云端调度,最后给一张检查清单。
别想着一步到位
很多人一听loop engineering,脑子里立刻浮现Stripe那种每周1,300多个PR的流水线,然后觉得离自己太远,放弃了。
Stripe那套是终点。第一个loop小到几乎不像个系统就行,一个会定时帮你看一眼的小东西。
我的建议是,从一个/loop 定时任务开始。它是Claude Code自带的命令,门槛最低,跑起来就知道是怎么回事。
第一步:跑一个/loop
/loop 是2026年3月的2.1.71版加进Claude Code的,作用就一个:按时间间隔,把同一件事重跑一遍。它有三种形态,你按需要挑。
三种形态:
/loop 5m check the deploy:固定5分钟一次
/loop check the deploy:Claude自己决定节奏(1分钟到1小时之间),每轮结束会告诉你下一轮隔多久、为什么/loop:裸跑,执行项目里.claude/loop.md的内容;没有的话找~/.claude/loop.md;都没有就跑内置的维护任务时间单位是s/m/h/d,最小1分钟。它是会话级的,跑在你本机,会话关了它就停。
我10月在一个练手的小仓库里跑了一遍。仓库里有一个TODO.md ,写着一条待办「给clamp补一个下界测试」。
我输入:
/loop 1m 读 TODO.md:如果有没打勾的待办,挑第一条做掉、跑一遍测试、在 TODO.md 里打勾;如果全部打勾了,只回复一句「没有待办」
它先当场跑了一轮,把那条待办做掉、打了勾,然后每分钟醒一次。待办清空之后,每一轮就只回一句「没有待办」,三四秒结束:
Claude Code 2.1.287。每一轮开头那行Monitor event: AGENT_LOOP_TICK_todo就是闹钟,后面跟着它重读TODO.md、回复「没有待办」。
然后我在另一个终端里往TODO.md 追加了一条「给is_even补一个负数测试」,什么也没跟它说。下一分钟,它自己读到了这条,补了两条断言,跑测试,打勾:
我没在对话里说一个字,新待办是从文件里进来的。
我这一次看到的实现是Monitor起的后台脚本,30分钟到期,跟文档写的7天cron不一样(§06有截图),到期了想续就再起一次。停掉它,跟它说「把这个循环停掉」就行;固定间隔的cron任务也可以问「what scheduled tasks do I have?」看列表再取消。空转的那些轮次,每轮只花几秒钟。
第二步:让它读CI和issue,先做triage
光重跑一句话不算loop,得让它读点东西、做点判断。最朴素的起点是一个triage(分诊)任务。
你给它一个prompt,让它每天早上去看三样东西:昨天的CI有没有失败、有哪些新开的issue、最近的commit改了什么。看完,挑出值得处理的,列个清单。
到这一步,你已经有了loop最核心的两个零件:一个定时触发的发现机制,加一个会替你过一遍信息的分诊脑子。Addy把定时触发这一块叫automation(§04零件一)。
第三步:加一个状态文件,让它有记忆
分诊跑完,结果存哪?别让它留在对话窗口里,关掉就没了。开一个markdown文件,把每次的发现、处理到哪一步都写进去。
这个文件就是loop的记忆,它得落在磁盘上,不能只活在上下文里,提不提交进git都行(§03)。有了它,今天没处理完的事,明天这个loop醒来还能接着干。
不想用裸markdown的话,换成Linear看板、issue列表也行,道理一样:状态要活在单次对话之外。
第四步:加一个evaluator
Claude Code里现成的工具是/goal (2.1.139起):它跑到某个条件满足为止,判断条件成立的,是另一个没参与干活的模型。写条件记三条(实跑的命令和截图见§05):
写成对话里能被证明的样子。测试全部通过可以,代码质量好不行。
把你不想让它碰的东西写进去。我写了不改测试文件,它就主动跑了git status证明自己没碰测试。
带一个停止条款。结尾加上or stop after 6 turns ,跑不出来也会停。
Codex也有/goal ,命令名一样,还多了edit、pause、resume。
第五步:加worktree,让它并行
前面四步搭完,你已经有一个能自己跑的单线loop了。下一步,是让它能同时干好几件事。
办法是git worktree,同一个仓库开出几份互相独立的工作目录。Claude Code里有三个入口,别混了:
| 入口 | 给谁开 | 开在哪 |
|---|---|---|
| claude --worktree 名字(或-w) | 你自己新开的这 | .claude/worktrees/名字/,分支 |
| 个会话 | worktree-名字 | |
| claude --bg "任务",或在claude | 后台会话 | 改文件之前自动进自己的worktree |
| agents里派任务 | ||
| 子agent定义里写isolation: worktree | 子agent | 每个子agent一个临时worktree,没改动就自 |
| 动删 |
claude agents 是一屏看所有后台会话的视图,哪个在跑、哪个等你、哪个做完了,目前还是研究预览。记得把.claude/worktrees/ 加进.gitignore 。
隔离开,它们才能并行而不打架(§04零件二)。
第六步:离开电脑也跑
到这儿你的loop还绑在本机上。要关机也跑,现在有三条路:
| 路 | 要什么 | 注意 |
|---|---|---|
| Cloud Routines(/schedule或 | claude.ai订阅登 | 研究预览;最小间隔1小时;每次是干净的 |
| 录、GitHub仓库 | clone;除了定时,还能用API调用或GitHub事 | claude.ai/code/routines) |
| 件触发 | ||
| Desktop定时任务 | 桌面版开着、电脑 | 能读本地文件;可以勾选每次在独立worktree |
| 开着 | 里跑 | |
| GitHub Actions的schedule | 仓库和Actions额度 | 跟Claude Code无关的老办法,最稳 |
Routines的官方文档里列了几个现成的用例:夜里整理backlog、告警进来自动开修复PR、按GitHub事件做代码审查、部署后校验、查文档和代码有没有对不上。不知道第一个云端loop做什么,就从这里挑一个。
Routines会在你的账号里建云端对象,这块我没建,表里的信息来自文档。
工具速查
上面用的命令都是Claude Code的。Codex能做同样的事,入口和叫法有的一样、有的不一样。这张表按官方文档和我本机的版本(Claude Code 2.1.287、Codex CLI 0.163.0)整理:
| 能力 | Claude Code | Codex |
|---|---|---|
| 按时间 | /loop(本机、会话内) | ChatGPT桌面app里的 |
| 重跑 | Scheduled tasks,自定义周期 | |
| 用RRULE | ||
| 跑到条 | /goal | /goal(0.128.0起),带edit、 |
| 件满足 | pause、resume | |
| --worktree、后台会话自动worktree、子agent的isolation: | 并行隔 | 桌面app内置worktree,任务可 |
| 离 | 选本地项目或新worktree | worktree |
| 子 | .claude/agents/;Agent Teams是实验功能,默认关,要设 | .codex/agents/里的TOML定 |
| agent | 义 | CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 |
| 外部连 | MCP、Plugins | MCP、Plugins |
| 接 | ||
| 调用 | SKILL.md,/skill-name | SKILL.md,$skill-name |
| skill | ||
| 关机也 | Cloud Routines(研究预览) | ChatGPT网页和手机端的定时任 |
| 跑 | 务、事件触发任务、Codex | |
| Cloud |
Cursor也有对应的东西:Cloud agents、Automations,9月10日还出了Projects(测试版),一个只做规划、不写代码的协调agent,把活派给云端agent去跑。这块我只看了它的changelog,没实测。
第一个loop检查清单
动手之前,对着这七条过一遍。缺哪条,你的loop就在那条上有风险。
| 要素 | 问自己 |
|---|---|
| 发现源 | 它定时去读什么?(CI、issue、commit、收件箱) |
| 状态文件 | 跨轮的记忆落在哪个磁盘文件上? |
| evaluator | 有没有一个独立的、不是干活那个agent的检查? |
| 隔离 | 并行的agent是不是各自一个worktree? |
| 停止条款 | 跑不出来时,它几轮、多久之后会自己停?(/goal里的or stop after N turns、循环的到期时 |
| 间) | |
| token上限 | 设没设花费的天花板?跑飞了谁拦得住?会不会用/usage看账? |
| 人工复核 | 哪一步停下来等你看一眼,而不是一路自动到底? |
| 点 |
Loop Engineering
别再问我什么是循环工程
花叔 · AI Native Coder我一行代码都不会写,却用AI做出了AppStore付费榜Top 1的小猫补光灯,写了多本技术书。所有产品全部AI写的,我只负责想清楚要做什么。我始终相信:AI生成内容不稀缺,稀缺的是判断力。B站:花叔v公众号:花叔X:花叔YouTube GitHub官网Created by 花叔 · 2026年6月初版 · 10月更新所有橙皮书免费下载:huasheng.ai/orange-books