Communitygithub.com

m1nga/loop-system-architect

代理人迴圈建構器,將重複性工作轉化為具備持久狀態、故障恢復與獨立驗證的自動化工作流程。

loop-system-architect 是什麼?

Loop System Architect 是一個專門用於設計、建構與演化自主代理人迴圈的技能。它能將重複性的手動工作轉變為一個具有閉環控制系統特徵的可觀測工作流程,包含持久狀態、故障恢復與獨立驗證機制。此技能支援完整的迴圈生命週期:從審計現有工作流程、設計合約與狀態結構、實現控制器與配接器,到根據執行結果進行知識蒸餾與技能進化。它適用於 Claude Code、Cursor、Codex 等現代代理人平台,並強制要求閉合控制迴圈所需的 20 個關鍵要素,如目標與擁有者、觸發器與前置檢查、感測器與致動器、持久狀態、獨立驗證器以及可觀測性。對於簡單的定期任務,它提供一個包含 8 個必要元素的精簡設定檔,並要求明確宣告省略的進階功能。技能不僅產出人類可讀的合約與機器可解析的 JSON 設定檔,還會實際建構一個能夠自動獲取鎖定、執行前置檢查、調用能力、在隔離工作區執行、進行獨立驗證、原子化提升結果並記錄不可變事件的控制器。其核心設計哲學是:使用確定性程式碼處理觸發器、狀態轉換與驗證,而將判斷、規劃與診斷留給大型語言模型,並透過開放式能力發現與受控執行來避免靜態許可清單的限制。

相容平台✓Claude Code~Codex CLI✓Cursor
npx skills add m1nga/loop-system-architect

在你喜歡的 AI 中提問

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

說明文件

迴圈系統架構師 (Loop System Architect)

將重複性任務轉變為一個可觀測的控制系統,使其能夠執行、證明結果、在中斷後恢復,並在無需重寫自身目標的前提下持續改進。

選擇模式

  • 審計 (Audit):檢查現有工作流程,並報告遺漏或開環的部分。除非被要求,否則不要編輯。
  • 設計 (Design):產出合約、狀態結構、角色圖、評估指標與執行時期設計。
  • 操作化 (Operationalize):實作控制器、配接器、持久化、證據與一鍵執行路徑。
  • 進化 (Evolve):分析已完成的執行,驗證提議的迴圈/知識/技能改進,並決定提升或拒絕。

當使用者要求「建構」或「讓它運作起來」時,請包含操作化。僅有 Markdown 計劃並非可運作的迴圈。

從實際現狀出發

  1. 讀取儲存庫說明與使用者置於範圍內的成品。
  2. 檢查實際的工具、進入點、狀態檔案、測試、排程器、代理人 CLI 與髒工作目錄。
  3. 將當前權威輸入與參考資料分離。請勿使用模型記憶來填補空白。
  4. 分類迴圈:
    • 終端型 (Terminal):一個具有可展示終點線的目標。
    • 重複型 (Recurring):每次執行都會終止,而監控/服務則持續運作直到退役。
  5. 在更改任何內容之前,說明哪些存在、哪些遺失,以及哪些僅是宣稱。

若要進行完整審計,請閱讀 audit-rubric.md。

要求閉合控制迴圈

識別並連接以下所有元素:

  1. 目標與擁有者;
  2. 完成條件或每次執行的成功條件;
  3. 權威來源邊界與來源;
  4. 觸發器與低成本前置檢查;
  5. 感測器與收集到的訊號;
  6. 比較器、視窗與閾值/規則;
  7. 控制器與有限的決策空間;
  8. 致動器與將新結果回傳至感測器的路徑;
  9. 持久狀態、指標、事件日誌與證據儲存;
  10. 協調器、執行器與獨立驗證者的職責;
  11. 開放式能力/技能發現與候選技能建立;
  12. 權限邊界與受保護的欄位;
  13. 驗收評估與必要的證據;
  14. 重試、超時、退避、失敗分類與回滾;
  15. 冪等性、重複資料刪除、並發鎖定與副作用扼流點;
  16. Token、成本、輪次與牆上時間預算;
  17. 可觀測性、警報與無操作的成功狀態;
  18. 直接取代已被取代的有效真相;
  19. 經驗蒸餾與受控提升;
  20. 停止、暫停、終止與退役條件。

感測器到致動器的回饋缺失意味著開環。持久狀態缺失意味著重複的提示。驗證者證據缺失意味著自我宣稱的完成。控制器/觸發器缺失意味著需要人類操作的程序。

精簡設定檔

並非每個迴圈都需要所有二十個元素。對於單一操作者、cron 等級的迴圈——一個使用者、一台機器、低爆炸半徑、無共享副作用——一份包含八個元素的合約就已足夠:

  1. 目標與擁有者;
  2. 成功條件(完成或每次執行);
  3. 觸發器與低成本前置檢查;
  4. 致動器及其副作用路徑;
  5. 持久狀態與指標;
  6. 副作用路徑上的冪等性/重複資料刪除;
  7. 可觀測性:在哪裡查看最後結果與下一個動作;
  8. 退役條件。

明確宣告省略的內容,而不是留白:設定 learning.enabled: false,並將 capabilities.discovery: "none" 加上 reason 欄位。Linter 接受這兩種設定。請參閱 loop.contract.minimal-example.json 以了解一個可通過的精簡合約範例。當迴圈獲得共享副作用、第二位操作者、外部租戶或任何形式的自我修改時,請升級為完整合約。

產出迴圈套件

根據儲存庫調整名稱,但保留一個機器可讀的規範合約與一個狀態記錄。迴圈套件、狀態與證據存在於使用者的專案中,永遠不在這個技能的套件內部。預設套件為:

loop/
├── LOOP-CONTRACT.md          人類可讀的操作合約
├── loop.contract.json        機器可讀的規範合約
├── RUN-STATE.json            當前執行、指標、嘗試次數、下一個機器動作
├── events/                   僅附加的執行事件或等效的事件儲存
├── evidence/                 驗證者可讀的收據
├── evals/                    確定性與語義驗收檢查
├── knowledge/                型別化的已提升知識,非原始日誌
├── candidates/               未提升的教訓與技能變更
└── scripts/run-loop          單一指令控制器或專案原生等效程式

使用 loop-contract.md 作為欄位合約。複製 loop.contract.template.json,填入所有佔位符,然後執行:

python3 scripts/loop_lint.py /path/to/loop.contract.json

當專案尚未納入 linter 時,使用此技能內部的副本。如果無法寫入磁碟,請將合約與控制器輸出為可複製的文字,並說明在迴圈可操作之前,仍需要將哪些內容放置於磁碟上。

建構控制器,而非僅有說明

控制器必須使一次呼叫就能推進迴圈,而無需使用者在不同代理人之間複製貼上:

  1. 獲取並發鎖定並推導出冪等鍵;
  2. 載入並檢查合約與狀態;
  3. 驗證凍結來源的雜湊值或當前來源權威;
  4. 執行低成本觸發器/前置檢查,並在無工作時記錄無操作成功;
  5. 解析所需能力;
  6. 為協調器/執行器建立最小上下文資訊包;
  7. 在可能進行變更時,於隔離工作區中執行;
  8. 擷取輸出、成本、工具呼叫、差異與證據;
  9. 執行一個無法認證自己寫入的獨立驗證者;
  10. 失敗時,分類並導向有限修的復、重試、回滾或停止;
  11. 通過時,原子化提升結果並更新當前狀態;
  12. 附加一個不可變的事件/收據;
  13. 僅在其觸發條件滿足時才調用蒸餾;
  14. 釋放鎖定並暴露下一個機器可執行的動作。

各種引擎的最小化驗證者獨立性:

  • Claude Code(或任何具有子代理人的執行時期):將驗證者作為全新上下文的子代理人執行,該子代理人僅接收合約、驗收檢查與證據路徑——而非執行者的對話。
  • 無子代理人機制:將驗證者作為一個獨立的程序或獨立調用執行,從磁碟重新讀取證據,並根據驗收檢查回傳裁決。
  • 兩者皆不可用:相同上下文檢查自己的作品是自我審查——是表現,而非驗證。請在審計報告中如此說明,而非將其標記為驗證者。

對於觸發器、狀態轉換、結構檢查、權限、重試、雜湊值與提升,優先使用確定性程式碼。將判斷、規劃、診斷以及無法機械式決定的內容留給大型語言模型。

無需靜態許可清單即可發現或建立技能

使用開放式發現搭配受控執行:

  1. 從任務推導出能力合約:輸入、輸出、副作用、證據、風險。
  2. 根據中繼資料與合約契合度,搜尋已安裝的技能與專案能力。
  3. 檢查來源與依賴項;不要將嵌入的專案身份視為真相。
  4. 在沙盒中測試候選技能,並執行特定能力的評估。
  5. 如果沒有合適的,在隔離環境中建立一個候選技能,並附上自己的範例與評估。
  6. 僅在通過安全性、隱私、功能與回歸檢查後,才提升某個版本。
  7. 預設情況下僅在本地註冊。外部發佈遵循所屬環境的單獨政策。

開放式發現並不授予開放式權限。強制要求、資料範圍、副作用政策與執行時期權限仍然約束每個技能。

將經驗蒸餾為可用的知識

永遠不要將不斷增長的日誌提供給每個代理人。將原始證據、情節摘要、候選教訓、規範知識、程序性技能與評估分開存放。

執行提升路徑:

追蹤 + 結果
→ 標準化情節
→ 候選教訓
→ 重複資料刪除與衝突檢查
→ 對先前執行與反例進行重播
→ 影子或金絲雀測試
→ 提升某個版本
→ 監控接下來的執行
→ 保留或回滾

觸發蒸餾的條件是:重複失敗、重複手動工作、漂移、成本退化、有意義的結果證據,或配置的樣本大小——而不僅僅是因為時間過去。在設計或變更學習層之前,請閱讀 distillation.md。如果已安裝專用的蒸餾技能(例如 experience-pack),請讓它負責蒸餾工作流程本身;此技能僅設計調用它的迴圈。

進化過程可以改進標準作業程序、觸發器、上下文包裝、腳本、技能、檢索以及委託權限內的操作閾值。它不得在未經許可的情況下,靜默改寫目標、來源邊界、租戶/隱私邊界、權限模型,或定義成功的評估。

乾淨地取代有效真相

對於任何接受的更新:

  1. 計算合約、狀態結構、程式碼、測試、文件、視圖與技能之間的影響圖;
  2. 宣告 REPLACES、REMOVES 與 KEEPS;
  3. 更新所有依賴項;
  4. 從有效檢索中移除已被取代的措辭與數值;
  5. 執行矛盾/過期數值掃描;
  6. 執行受影響的成功路徑與失敗路徑評估;
  7. 執行一個零上下文探測,該探測必須恢復出恰好一個當前答案;
  8. 原子化提升;僅在版本控制/事件歷史中保留先前版本,而非在有效上下文中。

校準自主性

  • 當確定性且獨立驗證通過時,自動執行可逆、有邊界的動作。
  • 對於高風險的自動化動作,使用金絲雀測試、影子測試、雙重驗證與回滾。
  • 僅在缺少權限、所需決策改變目標、或動作本質上不可逆且尚未獲得授權時,才停止並等待使用者。
  • 永遠不要將例行的人類批准,變成一個被宣傳為自主的迴圈中隱藏的致動器。

驗證完成

在以下所有條件都成立之前,不要稱迴圈為可操作:

  • 一個命令或配置好的事件可以在無需提示傳遞的情況下推進它;
  • 中斷恢復從持久狀態繼續,而不會重做已接受的工作;
  • 重複的觸發器無法複製副作用;
  • 驗證者失敗會導致有限的修復或乾淨的停止;
  • 成功路徑與失敗關閉路徑皆有證據;
  • 無工作的執行會成功且低成本地終止;
  • 當前狀態、最後結果、成本、開放中的失敗、以及下一個動作都可觀測;
  • 至少一個進化候選者已被重播,並已提升或正確拒絕(在精簡設定檔下,若 learning.enabled: false 則可豁免);
  • 一個零上下文的代理人,僅從作用中的檔案就能解釋當前合約與下一個動作。

分別報告:哪些已實作、哪些已演練、哪些因缺乏即時感測器而處於休眠狀態、以及哪些仍然需要使用者的權限。

相關技能