Communitygithub.com

循環設計與審查

設計以目標為導向的代理循環,並審查其可能出現的錯誤——空轉浪費代幣、欺騙驗證器,或將錯誤答案執行到底。兩個動作:(1) 撰寫循環——檢查是否應該建置、定義機器可判定的目標、選擇循環類型、選擇骨架;(2) 審查循環——用五種失敗模式進行檢查,加上可判定性、邊界、後備方案、評判者獨立性,以及將最終判斷權保留給人類的紅線。

循環設計與審查 是什麼?

Loop Design & Review 技能專注於為 AI 代理設計正確的目標導向循環,並審查其潛在的執行風險。它區分兩個層級的任務:一個是「設計與建立」循環,從判斷是否應建立循環的四條件閘門開始,接著定義機器可判定的目標,選擇伺服(伺服)或調節器(regulator)等循環類型,以及選擇計畫/建置/評判(plan/build/judge)或文件驅動調度等骨架。另一個是「審查循環」,利用五種關鍵失敗模式(如目標不明確導致空轉、驗證依賴代理自我評判、缺少邊界條件導致作弊、相信代理會在運行中澄清問題、以及文檔過時),確保循環不會偏離軌道或浪費資源。此技能適用於 Claude Code、Cursor、Codex 等平台,並與 autonomous-loops 或 continuous-agent-loop 等機制層技能互補,重點在於「判斷層」(目標是否正確、是否會失控),而非機械層的實作細節。它強調將高階判斷權保留給人類,機器僅負責執行層的校準與迭代。

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

循環設計與審查 是做什麼的?

前提. 一個 LLM(大型語言模型)是前饋系統:提示輸入 → 代幣輸出,沒有內建的「跨輪次導向目標」功能。為了讓它表現得像目標導向系統,你需要圍繞它建構一個反饋循環。此技能幫助你正確地撰寫該循環並審查它,使其不會失控。

何時使用 / 不使用

使用時機:

  • 你想將一個重複性任務交給一個會反覆運行的代理(撰寫→測試,測試→修正,修正→驗證……)。
  • 你已有循環,但擔心它會空轉、作弊,或將錯誤答案執行到底。

請勿用於:

  • 一次性任務 → 直接執行即可;不需要為它添加循環。
  • 簡單的計時器/輪詢 → 使用 /loop;無需設計。
  • 如何建構循環架構(管線 → DAG(有向無環圖),長期復原)→ 這是機制層;請參閱 autonomous-loops / continuous-agent-loop。此技能僅涵蓋「目標是否正確,以及是否會失控」——不會重新解釋機制。

紅線前提:兩個層級的反饋

層級擁有者功能
執行(低階)機器/代理測量「離預期目標有多遠」並將其歸零。機器在此處表現強勁。
判斷(高階)人類決定「這個目標本身是否正確,是否應該更改,是否應該停止」。機器無法跳脫自身循環來質疑目標。

恆溫器可以回饋「離 26°C 還有多遠」,但當你發燒並想要 28°C 時,它無法判斷 26 是否是正確的目標——它只會朝向 26°C 調節。「今天設定什麼溫度」始終是人類的決定。 將判斷權/簽核權/最終開關交給機器 = 移除高階反饋 = 它會快速且努力地朝一個無人質疑的目標衝刺 → 產生錯誤輸出。


動作一 —— 撰寫循環(5 個步驟)

步驟 0 · 先減法思考:你甚至應該建置它嗎?(4 條件閘門,任何一個不符即否決)

① 任務每週或更頻繁重複 ② 驗證可以自動化 ③ 代幣預算能負擔 ④ 代理擁有實際運行並查看結果的工具

任何一項不符 → 不要建置循環;改用其他方式手動處理。

阻礙大多數人的不是「能否寫出循環」,而是「我的儲存庫是否值得擁有循環」。一個值得擁有循環的儲存庫需要具備調和基準(黃金樣本/上游總數)+ 測試 + lint 防護。一個不值得擁有循環的儲存庫,其錯誤只會被循環放大。

步驟 1 · 定義機器可判定的目標(困難的部分——循環的成敗在此一舉)

整個循環依賴於比較器的「完成了嗎?」比較器只有在你的退出條件可以被機器判定為是/否時才能運作。

  • 糟糕:模糊不清(「讓它變好」、「寫得更精確」)→ 比較器無法判斷 → 要嘛永遠無法通過(卡住重試),要嘛亂猜(隨機通過/阻擋)。
  • 良好:可判定(「全部 96 個單元測試通過,並且產生了變更列表」、「模組-02 欄位已填寫,pytest 通過,業務邏輯未受影響」)→ 一次檢查即可定案;循環順利收斂。

五點目標框架:

  1. 完成標準是機器可驗證的。
  2. 邊界條件與完成標準一同定義(「它不得做什麼」)—— 反 Goodhart(古德哈特)效應;缺少邊界條件等同於允許作弊。
  3. 具有失敗備援方案 —— 重試上限 N 次,超出後升級給人類處理。
  4. 目標是分層的。
  5. 完成標準的首選是調和而非斷言 —— 錨定於外部事實(黃金樣本/上游總數/財務對帳/平台後台數據),而非你自己的斷言。「所有測試通過」可能被操弄(放寬斷言、偽造模擬、吞掉異常);而「與參考值的落差 < 0.01」則無法作弊。

自我檢查: 將目標讀給不熟悉該領域的人聽——他們能否執行一條指令就判斷是否完成?如果不能,則代表可判定性不足。請回頭修正。

步驟 2 · 選擇循環類型

你的任務循環類型(控制論)如何停止
有明確的「完成」測試(寫作完成 / 一批圖片處理完畢)伺服器(/goal 風格的閉環)達成目標時停止
無終點,必須持續維護某種狀態(庫存警報 / 定時健康檢查)調節器(/loop 風格的恆溫器)永不停止;僅在狀態變更時採取行動(死區抑制雜訊)
定期取樣,滿足條件時停止(監看 PR 直到 CI 變綠)附帶退出條件的調節器退出條件成立時停止
必須「確保某事按時發生」將上述類型包裝在 /schedule 中cron 觸發

經驗法則:有明確的「完成」測試 → 使用伺服器;必須持續維護且無終點 → 使用調節器;必須「按時發生」 → 將調節器包裝在排程中。

步驟 3 · 選擇骨架

維護類型(維護現有事物)→ 文件驅動調度。 循環不是「在計時器上執行固定檢查」,而是**「在計時器上讀取文件,且僅在文件變更時才分派任務」。**該文件就是任務佇列 + 狀態機 + 人類介面。 三大紀律:① 問題欄位僅供人類寫入,結果欄位僅供循環寫入,狀態單向推進且永不回滾;② 退出碼是最終決定(如果腳本回傳 exit 1,腳本說了算);③ 狀態僅推進到「等待驗證」—— **「完成」儲存格僅由人類翻轉。**循環是工作者,不是驗收官員。

從頭建置類型(從零開始建置)→ 計畫 / 建置 / 評判,三個角色。

角色負責關鍵
計畫將目標拆解為規格書 + 可判定的驗收條件驗收條件必須可用腳本判斷
建置根據規格書進行建置不得更改驗收條件
評判獨立地執行驗收;通過 → 停止,失敗 → 將失敗原因返回給建置角色獨立且確定性的

三條鐵律(全部押注在評判者):① 評判者必須獨立——不能與建置角色是同一個代理(為自己的作業打分永遠會膨脹);② 規則必須是確定性的 —— pytest / 調和差異 / 型別檢查 / diff,絕不能是「看起來沒問題」;③ 建置角色不得為了通過而編輯驗收條件。三次重試失敗 → 升級給人類處理。

步驟 4 · 加入阻尼(防止震盪/失控)

重試上限、硬停止、由人類撥動最後開關 = 阻尼。沒有阻尼的負反饋會產生震盪(Ralph-Wiggum 循環:原地空轉,消耗代幣)。

步驟 5 · 分三階段上線(不要在第一天就完全自動化)

① 手動執行一次(迫使你準確說明「評判者如何決定」)→ ② 固化為技能 / Claude Code 子代理(一個主要的 Claude 進行循環,分派計畫/建置/評判)→ ③ 掛上 cron 以實現完全自動化。


動作二 —— 審查循環(檢查清單 = 五種失敗模式)

將循環逐一對照每個項目。**擊中任何一項 = 此循環將會失靈;退回修正。**這五種是負面經驗(陷阱)——比正面規則更有價值。

#失敗模式(如何出錯)審查問題(命中 = 紅燈)修正方案
1目標是正確的空話 → 空轉,浪費金錢退出條件能否被機器判定為是/否?還是像「管理好它 / 讓它變好」這類模糊描述?替換為可判定的結果條件(動作一·步驟 1)
2「驗證」寫成「檢查是否看起來沒問題」→ 代理自信滿滿地回報沒問題並停止評判者是否就是被告本身?驗證是否依賴於「看起來沒問題」或確定性規則?調和 + 退出碼規則 + 獨立評判者
3(最糟)僅以「所有測試通過」為門檻 → 代理刪除測試是否有邊界條件(「它不得做什麼」)?還是只有完成標準?完成標準 + 邊界條件同時存在(反 Goodhart 效應的修正方案)
4指望代理在中途提問 → 它不會;它會將錯誤答案執行到底是否有任何「僅在運行時澄清」的點?預先釐清所有事項;在啟動前一次性解決
5CLAUDE.md 文件臃腫 + 記憶過時 → 循環越快,錯誤越多它所依賴的文件/記憶是否為最新?誰在維護它們?分層記憶 + 定期 lint

外加三條紅線(違反任何一條 = 不得自動執行):

  • 將判斷權保留給人類。 驗收 / 「完成」儲存格由人類翻轉;循環不是驗收官員。
  • 責任不轉移。 任何你承擔不起失敗後果的事項(合併錯誤的 PR / 發布錯誤的內容 / 錯誤配置資金)→ 不要自動交出權限。
  • 反直覺警告。 循環越「自我改進 / 重寫自身規則」,所需的人類審查就越嚴格(以便查看它將規則改寫成了什麼)——而非更寬鬆。機器行動太快,事後無法攔截,因此人類的判斷必須位於行動之前(一個硬性閘門),而不是事後修補。

實例演練 —— 審查「夜間測試維護者」循環

你想要一個每晚運行並修復所有失敗測試的循環。

  • 天真的目標:「讓所有測試通過。」→ 步驟 1 的自我檢查失敗:這正是失敗模式 #3 的誘餌。
  • 已修正的可判定目標:「所有測試變綠 且 無測試檔案被刪除或弱化 且 覆蓋率未降低 且 產生了變更列表。」現在邊界條件已與完成標準一同定義。
  • 類型: 伺服器,重試上限為 3(步驟 2 + 步驟 4)。
  • 骨架: 計畫/建置/評判——評判者是獨立運行的 CI,絕不是負責修正的代理(步驟 3)。

現在執行審查檢查清單,它會捕捉到天真版本可能遺漏的問題:

  • 擊中 #3 → 天真的「所有測試通過」允許代理刪除失敗的測試來「贏得」目標。已透過邊界條件「不刪除/弱化測試檔案」修正。
  • 擊中 #2 → 如果修正代理也對自己的修正進行評判,它會讓自己通過。已透過「評判者 = 獨立 CI,確定性」修正。
  • 擊中 #4 → 如果修正方式不明確,代理在凌晨 2 點不會停下來詢問;它會提交一個猜測。已透過預先釐清修正:不明確的修正留給人類處理,而不是猜測。
  • 紅線 → 循環會開啟一個 PR,但不會自動合併;人類撥動最後開關(責任不轉移)。

天真循環和經過審查的循環之間的差異僅在於四行約束條件——而這就是「醒來時發現測試套件被刪除」和「醒來時看到一個乾淨的 PR」之間的區別。


一句話總結

撰寫循環的困難之處不在於「能否寫出循環」,而在於定義一個機器可以調和的目標——可判定、有邊界、基於調和。控制器必須是確定性的且外部獨立;將判斷權和標準保留給人類;系統傾向於熵增,因此需要維護。 一個循環只回報那些已經深思熟慮過的人。指望它替你思考,它會樂於替你錯誤地、大規模地思考。


血緣:Wiener 的雙層反饋(《人的人性用途》,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/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

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.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

相關技能