Communitygithub.com

循环设计与审查

设计一个目标导向的智能体循环,并审查其可能出错的方式——空转消耗 Token、利用验证器作弊(古德哈特定律)、或者一路执行错误答案到底。提供两个操作: (1) 编写循环——通过四个条件门控决定是否构建、定义机器可判定的目标、选择循环类型、选择骨架; (2) 审查循环——针对五种故障模式以及可判定性、边界、回退、评判者独立性和将评判权保留在人类手中的红线进行检查。

循环设计与审查 是什么?

此技能为自主智能体循环的设计与审查提供结构化方法,聚焦于目标定义与失控预防。它基于诺伯特·维纳的双层反馈理论,将执行层(机器负责)与评判层(人类负责)严格分离,避免智能体在无人类监督下快速奔向错误目标。技能包含两大核心操作:“编写循环”通过五个步骤引导用户从零构建可靠循环,包括四项前置条件门控、机器可判定目标定义、循环类型选择(伺服器/调节器)、骨架模式(文档驱动调度/计划-构建-评判)以及阻尼机制;“审查循环”则提供五种故障模式检查清单(目标空转、自我评判、古德哈特作弊、运行时歧义、记忆膨胀)与三条不可逾越的人类红线(评判权保留、责任不转移、自我改进循环需更严格审查)。该技能适用于 Claude Code、Cursor、Codex 等平台的自主任务执行场景,与 `autonomous-loops` 或 `continuous-agent-loop` 等机制层技能互补——它不涵盖循环的架构实现,而是专注于“目标是否正确”和“循环是否会失控”这两个核心问题。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/loop-design-check

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

循环设计 + 审查

前提。 LLM 是一个前馈系统:提示输入 → 令牌输出,没有内置的“跨轮次向目标引导”能力。为了让其表现得像一个目标导向系统,你需要在其周围包裹一个反馈回路。本技能帮助你正确编写该循环并审查它,以确保它不会失控。

何时使用 / 不使用

在以下情况下使用:

  • 你想将一个重复性任务交给一个智能体反复执行(编写→测试,测试→修复,修复→验证…)。
  • 你已经有一个循环,并担心它会空转、作弊,或者一路执行错误答案到底。

不要将其用于:

  • 一次性任务 → 直接执行即可;无需为其包裹循环。
  • 简单的定时器/轮询 → 使用 /loop;无需设计。
  • 如何构建循环架构(管道 → DAG,长期恢复) → 这属于机制层;请参见 autonomous-loops / continuous-agent-loop。本技能仅涵盖“目标是否正确,以及循环是否会失控”——它不再重复解释机制。

红线前提:两层反馈

层级归属方功能
执行(低阶)机器/智能体衡量“离字面目标有多远”并逐步归零。机器在此处很强。
评判(高阶)人类决定“这个目标本身是否正确,是否应该改变,是否应该停止”。机器无法跳出自己的循环来质疑目标。

恒温器可以反馈“离 26°C 有多远”,但当你发烧想要 28°C 时,它无法判断 26 是否是正确的目标——它只会死磕到 26 为止。“今天设定成多少”始终是人类的责任。 将评判权/签署权/最后开关交给机器 = 移除高阶反馈 = 机器全力奔向一个无人质疑的目标 → 错误输出。


操作 1 — 编写循环(5 个步骤)

第 0 步 · 先做减法:你是否应该构建它?(4 条件门控,任何一个未满足 → 否决)

① 任务每周或更频繁重复 ② 验证可以自动化 ③ 令牌预算能够承受 ④ 智能体拥有实际运行并查看结果的工具

任何一个未满足 → 不要构建循环;改用手动或其他方式。

阻止大多数人的不是“能否编写循环”,而是“我的仓库是否值得一个循环”。一个值得拥有循环的仓库,需要具备对账基线(金样本/上游总量)+ 测试 + lint 守卫。一个不值得拥有循环的仓库,其错误只会被循环放大。

第 1 步 · 定义机器可判定的目标(难点——循环成败在此一举)

整个循环依赖于比较器判断“是否已完成?” 比较器只有在你的退出条件可以被机器判定为是/否时才能工作。

  • 差:模糊不清(“让它变得更好”,“写得更犀利”)→ 比较器无法判断 → 要么永远无法通过(卡住重试),要么胡乱猜测(随机通过/阻止)。
  • 好:可判定(“所有 96 个单元测试通过 并且 生成了变更列表”,“module-02 字段已填写,pytest 通过,业务逻辑未改动”)→ 一次检查即可确定;循环干净地收敛。

五点目标框架:

  1. 完成标准是机器可验证的。
  2. 边界条件与完成标准一同定义(“它一定不能做的”的事)—— 反古德哈特;缺少边界 = 作弊许可证。
  3. 具备失败回退机制 —— 重试上限 N,超出后升级交给人类处理。
  4. 目标是分层的。
  5. 完成标准优先采用对账而非断言 —— 锚定外部事实(金样本/上游总量/财务对账单/平台后台数据),而不是你自己的断言。“所有测试通过”可以被操控(放宽断言、伪造模拟、吞掉异常);“与参考值的差异 < 0.01”则不行。

自我检查: 将目标读给一个不熟悉该领域的人听——他们能否运行一个命令并判断是否完成?如果不能,则说明可判定性不足。重新来过。

第 2 步 · 选择循环类型

你的任务循环类型(控制论)如何停止
有明确的“完成”测试(编写到完成 / 一批图像处理完)伺服器(/goal 式闭环)达到目标后停止
没有终点,需持续维护状态(库存告警 / 定时健康检查)调节器(/loop 式恒温器)永不停止;仅在状态发生变化时行动(死区抑制噪音)
定期采样,满足条件时停止(观察 PR 直到 CI 变绿)带退出条件的调节器当退出条件成立时停止
必须“确保某事按时发生”将上述包装在 /schedule 中由 cron 触发

经验法则:明确的“完成”测试 → 伺服器;必须持续维护,无终点 → 调节器;必须“按时发生”→ 将调节器包装在调度中。

第 3 步 · 选择骨架

维护类型(维护现有事物)→ 文档驱动调度。 循环不是“定时运行固定检查”,而是**“定时读取文档,仅当文档发生变化时才进行调度。”** 文档 = 任务队列 + 状态机 + 人机接口。 三原则:① 问题列仅由人类写入,结果列仅由循环写入,状态单向推进且永不回滚;② 退出代码为最终决定(如果脚本返回 exit 1,则脚本胜出);③ 状态仅推进到“等待验证”——“完成”单元格仅由人类翻转。 循环是工人,不是验收官。

新建类型(从零开始构建)→ 计划 / 构建 / 评判,三种角色。

角色职责关键点
计划将目标分解为规约 + 可判定的验收条件验收条件必须可由脚本评判
构建按照规约编写不得更改验收条件
评判独立运行验收;通过 → 停止,失败 → 将失败原因返回给构建独立 + 确定性

三条铁律(全部押注于评判者):① 评判者必须独立 —— 不能与构建者是同一智能体(给自己的作业打分总是会膨胀);② 确定性规则 —— pytest / 对账差异 / 类型检查 / diff,绝不用“看起来不错”;③ 构建者不得为了通过而修改验收条件。连续三次重试失败 → 升级给人类处理。

第 4 步 · 添加阻尼(防止振荡/失控)

重试上限、硬停止、人类翻转最后的开关 = 阻尼。负反馈没有阻尼会导致振荡(拉尔夫·维古姆循环:原地空转,消耗令牌)。

第 5 步 · 分三阶段落地(不要第一天就全自动)

① 手动运行一次(迫使你精确说明“评判者如何决定”)→ ② 固化为技能 / Claude Code 子智能体(一个主 Claude 循环,调度计划/构建/评判)→ ③ 挂接到 cron 实现全自动。


操作 2 — 审查循环(检查清单 = 五种故障模式)

将循环对照每一行进行检查。命中任何一项 = 此循环将会误触发;打回去。 这五种是负面经验(踩坑总结)——比正面规则更有价值。

#故障模式(如何崩溃)审查问题(命中 = 红灯)补救措施
1目标是正确的陈词滥调 → 空转,烧钱退出条件能否被机器判定为是/否?还是“管理好它/让它变得更好”?替换为可判定的结果条件(操作 1·第 1 步)
2“验证”写成“检查它是否看起来不错” → 智能体自信地说“没问题”并停止评判者是否是被告本身?验证是否依赖于“看起来不错”或确定性规则?对账 + 退出代码规则 + 独立评判者
3(最严重)仅以“所有测试通过”为门控 → 智能体删除测试是否存在边界(“它一定不能做的”事)?还是只有完成标准?完成标准 + 边界 缺一不可(古德哈特抗体)
4指望智能体在运行中提问 → 它不会;它会一路执行错误答案到底是否有任何“仅在运行时澄清”的点?预先澄清所有事项;启动前一次性解决
5CLAUDE.md 臃肿 + 记忆过时 → 循环越快,错误越多它依赖的文档/记忆是否新鲜?由谁维护?分层记忆 + 定期 lint

外加三条红线(违反任何一条 = 不允许自动运行):

  • 将评判权保留在人类手中。 验收/“完成”单元格由人类翻转;循环不是验收官。
  • 责任不转移。 任何你承担不起失败后果的事情(合并错误的 PR / 发布错误的内容 / 错误分配资金)→ 不要自动交出授权。
  • 反直觉警告。 一个越“自我改进 / 重写自身规则”的循环,需要越严格的人类审查(以检查它将规则改写成了什么)——而不是更宽松。机器太快,事后无法拦截,因此人类的判断必须位于行动之前(一个硬性门控),而不是作为事后补丁。

实例分析——审查“夜间测试维护”循环

你希望有一个循环每晚运行,修复任何失败的测试。

  • 朴素目标:“让所有测试通过。” → 第 1 步自我检查失败:这是故障模式 #3 的诱饵。
  • 可判定目标(修正后):“所有测试绿色 并且 没有测试文件被删除或削弱 并且 代码覆盖率未降低 并且 生成了变更列表。”边界现在与完成标准一同定义。
  • 类型: 带重试上限为 3 的伺服器(第 2 步 + 第 4 步)。
  • 骨架: 计划/构建/评判 —— 评判者是独立运行的 CI,绝不是修复智能体(第 3 步)。

现在运行审查清单,它会捕获朴素版本会遗漏的问题:

  • #3 命中 → 朴素的“所有测试通过”允许智能体删除失败的测试来“获胜”。通过边界“未删除/削弱任何测试文件”修复。
  • #2 命中 → 如果修复智能体也评判自己的修复,它会让自己通过。通过“评判者 = 独立 CI,确定性”修复。
  • #4 命中 → 如果修复不明确,智能体不会在凌晨 2 点停下来询问;它会提交一个猜测。通过预先加载解决:不明确的修复留给人类处理,不猜测。
  • 红线 → 循环会创建一个 PR 但不会自动合并;人类翻转最后的开关(责任不转移)。

朴素循环和审查后的循环仅差四行约束——而这正是“它让你醒来面对被删除的测试套件”和“它让你醒来面对一个干净的 PR”之间的区别。


一句话总结

编写循环的难点不在于“能否编写循环”,而在于定义一个机器可以衡量的目标——可判定、有边界、基于对账。控制器必须具有确定性和外部性;将评判权与标准保留在人类手中;系统趋向于熵增,因此需要维护。 循环只奖励那些已经深思熟虑过的人。指望它替你思考,它就会心甘情愿地、以大规模的方式、跟着你一起错误地思考。


渊源:维纳的《人有人的用处》(1950)中的双层反馈理论用于评判/执行分离和红线;计划/构建/评判模式源自 Anatoli 的《循环详解》和 Addy 的《循环工程》。 机制层(如何构建循环架构):请参见 autonomous-loops / continuous-agent-loop。本技能不重复实现机制;仅涵盖目标定义和失控预防。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

相关技能