# Loop Engineering 实战

> 从五个构建块到实战案例,展示如何将 Loop Engineering 落地——让 AI 自主发现、分发、检查工作并持续运行

- 原文链接: https://laojin.blog/blog/20260612_loop_engineering_practice
- 作者: 老金
- 发布日期: 2026-06-12
- 标签: Loop Engineering, AI, Claude Code, Automation, Agent

---

![Loop Engineering 实战](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260612/00_cover.png)

> 我不再 prompt Claude 了。我有一套 loops 在运行，它们会 prompt Claude，并决定接下来做什么。我的工作是写 loops。

在上一篇文章中，我们了解到什么是 Loop Engineering，今天，我们来看下如何将 Loop Engineering 应用到实际工作中。

---

## 从 Harness 到 Loop：差在哪里

我之前写过 Harness Engineering（构建让 AI 可靠工作的运行环境）。如果你没看过，一句话补课：

> Harness 是为单个 Agent 搭舞台；Loop 是让整出戏自己演下去。

Harness 解决"一次做对"，Loop 解决"持续做对"。

Harness 是静态的——规则、文档、检查项在那儿等 Agent 来用。

Loop 是动态的——**它自己发现工作、分发工作、检查工作、记录进度，然后决定下一步做什么。**

![Harness vs Loop](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260612/01_harness_vs_loop.png)

| | Harness | Loop |
|---|---|---|
| 触发方式 | 你手动启动 | 按时间 / 事件自动触发 |
| 运行周期 | 单次会话 | 持续运行，跨会话 |
| 状态管理 | 在 context 里 | 在磁盘上（文件/看板） |
| 你的角色 | 操作者 | 设计者 |

---

一个真正能跑起来的 Loop，需要五样东西 + 一个记忆层：

| 构建块 | 一句话 | 核心机制 |
|--------|--------|----------|
| **Automations** | 让它自己动起来 | `/loop`、`cron`、`hooks`、GitHub Actions——给 Loop 一个节奏 |
| **Worktrees** | 让并行 Agent 不打架 | 每个 Agent 独立分支 + 目录，共享 repo 历史，互不干扰 |
| **Skills** | 让 Agent 不靠猜 | 写一次项目约定（`CLAUDE.md`、`me.md`），每次运行都复利 |
| **Connectors (MCP)** | 让 Loop 连接真实世界 | 读 issue、查 DB、调 API、发 Slack——Agent 自己开 PR 而不是只给建议 |
| **Sub-agents** | 让"写的人"和"查的人"分开 | Maker ≠ Checker；独立 verifier 是你能放心走开的唯一原因 |
| **Memory** | Loop 的脊柱 | markdown / Linear board / state file——跨会话记住"做了什么、还剩什么" |

---

## 实战案例：知识编译 Loop

我有一个个人知识库，它的核心就是一条 Loop：

![知识编译 Loop 流程](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260612/02_knowledge_loop.png)

```
inbox/ → /triage 过滤 → raw/ → /compile 编译 → wiki/ → /briefing 推送洞见 → 我
  ↑                                                                              |
  └──── RSS/Twitter 自动抓取 ←←←← 我的行动产生新素材 ←←←←←←←←←←←←←←←←←←←←←←←←←←┘
```

拆开看五个构建块怎么落地的：

| 构建块 | 我的实现 |
|--------|----------|
| Automation | 每天 6:03 自动触发 briefing；RSS 和 Twitter 定时抓取进 inbox |
| Worktree | 编译时用独立 worktree，避免和我正在编辑的文件冲突 |
| Skills | `/triage`、`/compile`、`/briefing` 各是一个 Skill，包含完整执行逻辑 |
| Connectors | Twitter fetch、RSS fetch 通过 MCP/脚本接入外部数据源 |
| Sub-agents | compile 时用独立 agent 做"涟漪更新"检查，避免主 agent 自己判断是否需要更新 |
| Memory | `wiki/_changelog.md` + `raw/_registry.md` 作为跨会话状态 |

两个月跑下来的数据：

- 自动过滤了 **200+ 篇** inbox 素材，真正进入 raw/ 的不到 30%
- wiki 从 0 编译到 **50+ 概念条目**，全部由 AI 写和维护
- 每天早上收到 briefing，**平均唤醒 2-3 个我已经忘了的知识连接**

关键体感：我没有"管理"这个系统。我只是每天早上花 3 分钟看 briefing，偶尔手动扔一篇文章进 inbox。Loop 自己在转。

---

## 三个设计 Loop 的实操原则

### 先跑最小 Loop，再加层

不要一上来就搭五层全家桶。

我的第一版 Loop 只有：一个 cron + 一个 skill + 一个 markdown 文件当 memory。

跑了一周确认基本逻辑对了，再加 sub-agent 做质量检查，再加 connector 接数据源。

**Loop 是迭代长出来的，不是一次设计出来的。**

### Maker 和 Checker 必须分开

这是最反直觉但最重要的一条。

我早期让 `/compile` 自己判断"这次编译是否需要更新已有条目"——结果它总是说"不用"。

后来拆成两步：一个 agent 编译，另一个 agent 拿着新素材去对比所有已有条目。更新率从 5% 跳到 30%。

**自检是无效检测。**

### Silent failure 是 Loop 最大的敌人

Loop 在你不看的时候运行。如果它悄悄失败了，你可能一周后才发现。

我的做法：
- 每次运行写 `_changelog.md`，格式可 grep
- briefing 里有一个"异常"模块，专门报告 Loop 运行中的问题
- 关键步骤失败时发通知，而不是静默跳过

---

## 谁该用 Loop，谁不该

先泼盆冷水：**Loop 不是所有人都需要的东西。**

| 适合 | 不适合 |
|------|--------|
| 有重复性工作需要持续执行 | 偶尔用 AI 写个代码 |
| 你的判断力已经足够好，想放大它 | 你还没想清楚要 AI 做什么 |
| 愿意投入时间设计系统 | 只想快速拿到一个结果 |

还有一个更深层的警告：

> 两个人可以构建完全一样的 Loop，却得到截然相反的结果。一个人用它在自己深刻理解的工作上跑得更快。另一个人用它来避免理解工作本身。

**Loop 不知道这两者的区别。但你知道。**

如果你对自己领域的判断力不够，Loop 只会帮你更快地犯错。

---

## 从今天开始的最小行动

如果你想试试 Loop Engineering，不需要搭一个完整系统。从这三步开始：

**第一步：找一个你每天/每周重复做的 AI 任务。**

比如：review PR、整理笔记、扫描新闻、检查代码质量。

**第二步：把它写成一个 Skill 文件。**

不是 prompt，是 Skill——包含执行逻辑、输入输出规范、项目上下文。写一次，永久复用。

**第三步：给它加一个触发器。**

哪怕只是一个 cron job，让它每天自己跑一次。

恭喜，你有了第一个 Loop。

剩下的——sub-agent 验证、worktree 隔离、memory 持久化——等你觉得 Loop 不够可靠的时候再加。

---

## 最后

从 Prompt Engineering 到 Context Engineering 到 Harness Engineering，再到 Loop Engineering——每一次演化，人的角色都在后退一步。

但"后退"不是"消失"。

你从"写 prompt 的操作者"变成"设计系统的架构师"。

你的判断力、品味、对质量的要求——这些东西不是被替代了，而是被**放大**了。

Loop 是放大器。放大好的判断，也放大坏的判断。

所以这件事比 prompt engineering 更难，而不是更简单。

**杠杆点移动了。构建你的 Loop——但要像一个仍然打算做 engineer 的人那样去构建它。**
