核心摘要
Loop Engineering 是把“人持续提示 Agent”升级为“系统持续驱动 Agent”的工程方法。 它关注的不是某一句 Prompt 怎么写,而是如何设计一个能自动发现任务、分配动作、验证结果、记录状态并进入下一轮的闭环。对 QubitTool 这样的内容与工具型站点来说,Loop Engineering 最现实的价值,是把 SEO 增长、内容质量审计、新工具上线、索引提交和技术债发现做成稳定的自动化系统。
目录
- 核心要点
- Loop Engineering 是什么
- 从 Prompt 到 Loop:范式变化
- 一个可运行 Loop 的 6 个部件
- QubitTool 的实践经验
- 四类最值得先做的 Loop
- 如何设计一个可靠的 Agent Loop
- 常见失败模式
- FAQ
- 总结
核心要点
- Loop Engineering 的核心不是 Prompt,而是系统设计:触发、执行、验证、记忆和审批必须一起设计。
- Agent 不能自己证明自己正确:执行 Agent 与验证 Agent、脚本校验、CI/CD 需要分离。
- 状态记忆是闭环的脊柱:Markdown、JSON 日志、Issue、Linear 或数据库都可以,关键是存在于单次对话之外。
- QubitTool 已经有闭环雏形:例如
npm run publish的内容校验,以及 IndexNow 发布后提交链路。 - 先做检测型 Loop,再做修改型 Loop:自动发现问题比自动改代码更低风险,也更容易形成稳定收益。
快捷工具:AI 工具导航 可用于发现 Agent、代码助手和自动化工作流工具;Agent 工具导航 适合对比不同 Agent 平台的任务执行能力。
Loop Engineering 是什么
Addy Osmani 在 Loop Engineering 中给出的关键判断是:开发者不应该只是在不断提示 coding agent,而应该设计会提示 Agent 的循环系统。
换成工程语言,Loop Engineering 是:
围绕一个可验证目标,设计能自动触发、调用工具、执行动作、检查结果、记录状态并进入下一轮的 Agent 工作系统。
它和 AI Agent 的关系很直接:Agent 负责一次任务里的感知、推理和行动;Loop Engineering 负责把很多次 Agent 运行组织成持续工作流。
一个最小 loop 可以长这样:
触发器
→ 读取状态
→ 发现任务
→ 分配给 Agent 或脚本
→ 执行修改或生成报告
→ 运行验证
→ 写入结果
→ 决定停止、重试或进入下一轮
这和 Agentic Workflow 很接近,但 Loop Engineering 更强调“持续运行”和“跨会话记忆”。它不是一次性的工作流编排,而是一个会重复执行、逐步积累状态的系统。
从 Prompt 到 Loop:范式变化
过去两年,AI 开发协作大致经历了三层升级。
| 阶段 | 核心问题 | 人的工作 | Agent 的工作 | 典型产物 |
|---|---|---|---|---|
| Prompt Engineering | 这一轮怎么问得更好? | 写高质量 Prompt | 输出回答或代码片段 | 单次回答、单个 diff |
| Context Engineering | Agent 需要知道什么? | 准备规则、文档、代码上下文 | 在更准的上下文里执行 | 更稳定的多文件修改 |
| Loop Engineering | 系统如何持续驱动 Agent? | 设计触发器、验证器、状态和审批 | 按循环处理任务 | 持续更新的报告、PR、任务队列 |
Prompt Engineering 仍然重要,但它已经不再是全部。Prompt 是 loop 里的一个组件,而不是系统本身。
真正的变化在于控制权的移动:
第一条链路里,人是循环的发动机。第二条链路里,人设计发动机,并在关键节点做判断。
这也是为什么 Loop Engineering 更像软件工程,而不是提示词技巧。它需要边界、预算、失败处理、可观测性、回滚策略和人工审批。
一个可运行 Loop 的 6 个部件
结合 Addy 的框架和实际工程经验,一个可靠 loop 至少包含 6 个部件。
1. Automations:触发器
触发器决定 loop 什么时候运行。常见触发方式包括:
- 定时任务:每天检查 SEO 问题、依赖更新、失败测试。
- GitHub Actions:PR 创建、部署完成、构建失败后触发。
- 内容事件:新增 blog、glossary 或 tool 后触发校验。
- 手动命令:例如执行一次“检查最近 7 天变更”的任务。
触发器的价值是让系统主动发现工作,而不是等人想起来。
2. Worktrees:并行隔离
一旦多个 Agent 同时写代码,文件冲突会迅速变成主要风险。git worktree 的价值是给每个 Agent 一个独立工作区,避免它们踩同一份文件。
对内容站来说,worktree 同样有用。一个 Agent 可以优化英文博客,另一个 Agent 可以检查中文 glossary,第三个 Agent 跑 sitemap 和链接验证。它们最后通过 PR 或 patch 汇总。
3. Skills:项目知识
Skill 是把项目约定写在外部文件里,让 Agent 每次运行都能复用。
QubitTool 已经有很多适合 loop 的 skill,例如:
qubittool-ai-blog:约束博客结构、SEO、FAQ、内链和 frontmatter。qubittool-seo:处理索引、结构化数据、标题描述和内链。qubittool-new-tool:规范新工具上线流程。qubittool-content-audit:做内容质量与 SEO 审计。
这类 skill 的本质是降低“意图债”:项目规则不再靠人每次口头解释,而是沉淀成 Agent 可读取的执行规范。
4. Connectors:真实工具连接
如果 loop 只能读写本地文件,它的价值会受限。MCP 和其他 connector 让 Agent 能连接真实系统:
- GitHub:读 issue、开 PR、评论 CI 结果。
- Search Console / Bing Webmaster:读取搜索表现。
- 数据库或日志系统:检查真实运行数据。
- Slack / 飞书:推送待人工审批的结果。
- 浏览器自动化:打开页面验证 UI 和 SEO 标签。
Connector 的设计原则是最小权限。能读就不要给写权限;能写草稿就不要直接发布;高风险动作必须走 Approval Gate。
5. Sub-agents:执行与验证分离
Loop 最容易失败的地方,是让同一个 Agent 写代码、解释代码、再判断自己是否正确。
更可靠的设计是:
- Explorer Agent:只读分析代码、数据和历史。
- Builder Agent:执行修改。
- Reviewer Agent:按规范审查 diff。
- Verifier Agent 或脚本:运行测试、构建、链接校验。
这和 Agent Harness 的思路一致:Agent 周围需要一层运行时控制,包括权限、日志、评估和失败恢复。
6. State:跨会话记忆
Loop 必须把状态写到对话之外。原因很简单:模型上下文会丢,聊天记录不是可靠数据库。
状态可以很朴素:
{
"lastRunAt": "2026-06-27T10:00:00Z",
"checkedUrls": 184,
"failedUrls": 3,
"actions": [
{
"type": "indexnow-submit",
"url": "https://qubittool.com/zh/blog/loop-engineering-agent-automation-guide",
"status": "submitted"
}
]
}
QubitTool 的 seo_data/indexnow/ 就是这类状态记忆的雏形。它让我们知道哪些 URL 已提交、何时提交、是否需要重试。
QubitTool 的实践经验
QubitTool 不是纯代码库,它同时是工具站、内容站和 SEO 增长系统。因此它的 loop engineering 不应该只围绕“自动写代码”,更应该围绕“持续增长和质量控制”。
经验 1:发布链路已经是一个质量 Loop
本站的发布流程里,npm run publish 会执行内容链接构建、sitemap 生成、blog 校验、glossary 校验、工具链接校验和最终 build。
这本质上是一个质量闭环:
内容变更
→ 生成关联关系
→ 更新 sitemap
→ 校验 blog 内链、语言前缀、description
→ 校验 glossary 和 tool links
→ build
→ 失败则阻断发布
这个 loop 的关键价值是:Agent 可以写内容,但不能绕过规则。
经验 2:IndexNow 是发布后索引 Loop
本站已经集成 scripts/submit-indexnow.js,并通过 GitHub workflow 在部署后提交最近修改的 URL。
这个闭环非常典型:
部署完成
→ 识别最近变更
→ 映射双语 URL
→ 提交 IndexNow
→ 写入 seo_data/indexnow 日志
→ 下次运行时可追踪
这说明 Loop Engineering 不一定要复杂。只要它具备触发、执行、状态和结果反馈,就是 loop。
经验 3:性能约束必须进入 Loop
QubitTool 的一个重要经验是:next-i18next 的 namespace 会影响静态页面体积。如果把大量工具描述塞进 common.json,单页体积可能突破 128kB 阈值。
所以新工具和新内容的 loop 必须检查:
- 是否把大体积数据拆到独立 namespace。
- 常规页面是否只加载必要翻译。
- 新增工具是否影响 sitemap 和索引。
- 新增内容是否引入重复关键词竞争。
没有性能检查的内容增长 loop,最后会变成页面体积债。
四类最值得先做的 Loop
1. SEO 巡检 Loop
目标:持续发现可优化页面,而不是等流量下降后再排查。
每天定时
→ 读取 sitemap、GSC、Bing 或日志
→ 找出曝光高但 CTR 低的页面
→ 找出排名下降或未收录页面
→ Agent 生成优化建议
→ 脚本验证 title、description、hreflang、内链
→ 写入待处理报告
适合输出到 docs/loops/seo-report-YYYYMMDD.md 或结构化 JSON。
这里可以和 Agent 可观测性工程 结合,把每次分析的输入、判断和建议都记录下来。
2. 内容质量 Loop
目标:防止 AI 内容变薄、重复、不可索引。
新增或修改 Markdown
→ 检查 frontmatter
→ 检查首屏 Answer Block
→ 检查内链是否为绝对路径
→ 检查语言前缀
→ 检查是否链接到 2 个工具、2 篇博客、2 个术语
→ 输出修复建议
这类 loop 应该优先“给报告”,再逐步允许 Agent 自动修复低风险问题,例如补 FAQ、修正内部链接、扩展 description。
3. 新工具上线 Loop
目标:把工具开发从“记忆清单”变成“自动执行清单”。
输入工具需求
→ 生成 spec
→ 创建 src/tools/xxx.jsx
→ 补充 i18n
→ 更新工具索引
→ 检查 sitemap
→ 检查页面体积
→ build
→ IndexNow 提交
这个 loop 需要严格的状态文件,记录每个工具是否完成双语 URL、关联工具、博客入口和 glossary 入口。
4. 代码库维护 Loop
目标:让代码库能持续自我整理,但不要越权发布。
适合交给 Agent 的任务包括:
- 依赖更新后的兼容性修复。
- 测试覆盖率缺口分析。
- 死链、404、重定向链检查。
- 重复组件或重复工具配置发现。
- 小范围 refactor 建议。
这类 loop 和 自驱动代码库 的区别在于:QubitTool 应该先做“自驱动发现”,再逐步扩展到“自驱动修复”。
如何设计一个可靠的 Agent Loop
第一步:把目标写成可验证条件
不要写:
优化 SEO。
要写:
检查最近 7 天新增和修改的 blog,确保每篇 description 不少于 70 个字符,所有内部链接都存在于 sitemap,中文内部链接必须包含 /zh/ 前缀。
好的 loop 目标应该满足 4 个条件:
- 有明确输入范围。
- 有机器可检查的输出。
- 有停止条件。
- 有失败处理方式。
第二步:优先使用脚本做裁判
Agent 很适合分析和修复,但不适合自己给自己打分。QubitTool 已有的 validate-blog.js、generate-sitemap.js、build-content-links.cjs 都应该成为 loop 的裁判。
推荐结构是:
Agent 提出修改
→ 脚本验证
→ Agent 根据错误修复
→ 再验证
→ 仍失败则交给人
第三步:限制动作权限
Loop 的动作权限应该分级:
| 风险级别 | 允许动作 | 是否需要人工审批 |
|---|---|---|
| 低 | 生成报告、读取文件、运行校验 | 否 |
| 中 | 修改 Markdown、补充 FAQ、修复链接 | 视范围而定 |
| 高 | 修改发布流程、删除文件、批量改代码 | 是 |
| 极高 | 部署、提交外部 API、改生产数据 | 必须审批 |
Human-in-the-loop 不是低效,而是防止自动化错误扩散的工程保险。
第四步:写入状态和决策
每次 loop 都应该回答 5 个问题:
- 本轮检查了什么?
- 发现了什么?
- 自动修了什么?
- 哪些失败了?
- 下一轮应该从哪里继续?
状态可以写成 Markdown 给人读,也可以写成 JSON 给 Agent 和脚本读。两者并不冲突。
第五步:控制成本和循环次数
Loop Engineering 很容易带来 token 成本失控。尤其是让 Agent 反复读取大仓库、反复跑同一类检查时。
实用做法:
- 每轮限制输入范围,例如“最近 3 天变更”。
- 优先用
rg、AST、JSON 解析器等确定范围,再让 Agent 阅读。 - 失败超过 2 次就停止,写报告交给人。
- 对高频任务使用轻量模型,对审查任务使用强模型。
常见失败模式
失败模式 1:没有停止条件
“持续优化内容”不是停止条件。更好的写法是“直到所有新增文章通过 npm run validate:blog,或者连续两次失败后停止并输出报告”。
失败模式 2:验证器太弱
如果验证只检查“文件存在”,Agent 很容易产出看似完成但质量很差的内容。验证器应该包含格式、链接、SEO、构建和关键业务规则。
失败模式 3:状态不可追踪
没有状态文件,第二天的 Agent 不知道昨天做了什么,会重复提交同样的 URL、重复分析同一批页面,甚至覆盖已有决策。
失败模式 4:把策略交给 Agent
Agent 可以建议关键词,但不应该独自决定网站定位。Agent 可以生成修复方案,但不应该绕过人类直接发布关键页面。策略权仍然应该在人这里。
失败模式 5:越自动越不理解
Loop 跑得越顺,理解债越容易堆积。团队必须定期阅读 loop 产物、抽查 PR 和报告,否则会出现“系统一直在动,但没人真正知道它为什么这么动”的问题。
FAQ
Loop Engineering 会取代 Prompt Engineering 吗?
不会。Prompt Engineering 仍然是单次 Agent 调用的基础能力。Loop Engineering 是更高一层的系统设计,把 Prompt 放进触发器、工具、状态和验证器组成的闭环里。
什么任务最适合先做 Loop?
优先选择高频、低风险、可验证的任务。例如 SEO 巡检、内链校验、sitemap 检查、IndexNow 提交、description 长度检查、依赖更新报告和测试失败归因。
Loop Engineering 是否必须使用多 Agent?
不是。一个脚本加一个 Agent 也可以形成 loop。但当任务涉及“执行”和“审查”时,使用 sub-agent 或至少使用独立脚本验证,会明显提高可靠性。
QubitTool 应该从哪个 Loop 开始?
最务实的起点是 SEO 内容质量 Loop:读取最近变更的 blog、glossary 和 tools,运行现有校验脚本,生成结构化报告,只让 Agent 自动修复低风险问题。这个方向收益明确,风险可控。
Loop Engineering 最大的工程投入是什么?
不是写 Agent,而是写验证器、状态格式和失败处理。没有这些,loop 只是自动重复 Prompt;有了这些,loop 才能成为工程系统。
总结
Loop Engineering 的价值不在于让 AI “自己想做什么”,而在于让工程师把重复、可验证、可迭代的工作设计成稳定闭环。
对 QubitTool 来说,最有价值的 loop 不是炫技式的全自动写站点,而是更务实的四件事:持续发现 SEO 问题、持续守住内容质量、标准化新工具上线、自动记录索引与发布结果。
一句话总结:
Prompt Engineering 让 Agent 回答得更好;Loop Engineering 让 Agent 在系统约束下持续做对的事。