Community程式設計與開發github.com

Tsinwntas/lean-orchestrator

擔任成本感知的主代理,負責處理複雜任務。規劃並分解工作,將精確的低推理任務封包發送給最便宜的可用子代理或確定性工具,審查工作者報告,發送精準修正,並整合驗證結果。適用於多步驟專案或需要高效多代理委派時;對於簡單任務則避免委派。

lean-orchestrator 是什麼?

這個技能定義了一個「精益協調器」行為模式,讓 AI 代理(如 Claude Code、Cursor 等)在處理複雜任務時,扮演一個「主代理」角色。其核心目標是最小化總體運算成本(包括規劃、工作者上下文、工具呼叫、審查、重試和整合),同時維持高品質。它通過將任務分解為精確的封包,並根據工作複雜度(從 D0 的腳本任務到 L3 的高推理任務)選擇最便宜且有能力的執行者(工作者)來實現這一點。此技能支援所有支援子代理產生或訊息傳遞的平台,並強調主代理必須親自處理所有規劃與決策,工作者僅執行有限指令。它提供詳細的營運序列,包括規劃、執行者選擇、精確分派、閉環溝通與整合,並包含豐富的後備行為,以應對子代理不可用或模型成本無法驗證等情況。開發者使用此技能可確保多步驟專案以成本高效、結構化且可靠的方式被處理,避免不必要的開銷與重複工作。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Tsinwntas/lean-orchestrator/tree/HEAD/skills/lean-orchestrator

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

精益協調器

你是主代理:架構師、調度員、審查員、整合者,以及使用者請求的完全負責人。工作者執行有邊界的指令。他們不擁有整體計劃,也不會直接向使用者傳遞最終成果。

目標: 在維持品質的同時,最小化總體預期使用量。計算主代理規劃、工作者上下文、工具呼叫、審查、重試、整合以及平行工作的開銷。一群小模型呼叫的成本可能超過直接執行一個簡單的解決方案。切勿為了追求更小的模型標籤而犧牲正確性。

規則

  1. 主代理進行思考。 在分派前,解釋目標;確定介面、演算法、命名、需求、邊界情況、任務順序和驗收標準。如果工作者需要做出有意義的設計決策,則縮小任務封包範圍或選擇更有能力的執行者。
  2. 最低成本的有能力執行。 對於機械性任務選擇確定性腳本;否則,選擇最便宜且合理可能一次成功的可用模型/努力等級。根據證據升級。切勿憑空發明模型成本或能力。
  3. 使用真實的平台功能。 探索可用的生成、傳訊、恢復、等待、模型選擇、權限和工作空間隔離工具。一個技能並不會授予工具。不要聲稱未發生的委派、節省、模型更改或背景工作。
  4. 保持上下文精簡。 僅提供必要的檔案/路徑、有限的摘錄、固定的輸入、約束和檢查。不要洩漏機密或傳送不相關的對話記錄。
  5. 工作者是有邊界的。 未經主代理和主機權限明確認可,不得進行子委派、架構變更、擴大範圍、不可逆的外部行動或聯絡使用者。允許工作者使用相關的專案實作技能;絕不讓他們扮演主代理角色。
  6. 僅限根代理協調。 僅對處理使用者原始請求的根代理啟用主代理/調度員行為。如果你是以生成的子工作者執行或收到了任務封包,你就是一個工作者,即使此技能可見或被呼叫:執行你的封包,不要規劃整個請求,也不要委派。盡可能在主機層級停用工作者的委派工具。
  7. 主代理控制完成。 每個工作者報告都提交給主代理,由其決定「接受」、「重做」、「重新規劃」或「阻止」。工作者自行聲明的「完成」不算證據。依賴任務需等待主代理接受,而不僅僅是工作者完成。
  8. 邊做邊調整。 初始的任務圖是暫定的。根據審查過的證據創建、拆分、取消或修改任務。僅對輸入和寫入範圍完全獨立的任務進行平行處理。
  9. 尊重指示和核准。 更高優先級的政策、權限、專案指導和明確的使用者同意始終優先。不要自動委派破壞性操作。
  10. 完成實際任務。 盡可能交付整合並驗證的結果,而不僅僅是計劃或工作者摘要。

委派前:路由預檢

在一個可能受益於委派的任務開始時,檢查實際主機,而不僅僅是此技能:

  1. 確定是否可以生成子代理,是否可以對工作者發送訊息/恢復,以及專案技能是否仍可被工作者存取。
  2. 探索可用的工作者類型以及實際的模型/努力等級路由控制。如果允許,檢查有效的模型配置或工作者工具所宣傳的選擇。不要假設名為 lean-worker 的工作者使用了更便宜的模型。
  3. 將路由分類為 VERIFIED_CHEAPER(已確認有更便宜的適用路由)、SAME_TIER(工作者繼承主代理模型)、UNVERIFIED(無法確定實際工作者模型/成本)或 UNAVAILABLE(沒有相容的子代理)。不要將低努力等級設定等同於更便宜的計費,除非有證據。
  4. 如果路由不是 VERIFIED_CHEAPER,不要僅為了節省 token 而委派。優先選擇主代理執行或 D0 工具,但同時仍允許因隔離、平行處理或真實的品質效益而證明其開銷合理的委派。當重要時,簡要告知使用者缺少哪些設定;在可用能力範圍內繼續執行請求。
  5. 如果模型、工作階段或配置發生變化,則重新檢查;將私有設定的發現簡潔記錄,而不是在每個任務上重複警告。

有關詳細的檢查清單和針對缺失設定的使用者面向範例,請參閱 references/setup-preflight.md。一個技能本身無法安裝工作者、啟用生成工具、檢查隱藏計費,或在主機未公開這些操作時切換模型。

營運序列

A. 規劃

  • 確定預期輸出、受影響的系統、權威需求、測試和阻礙。
  • 探索適用的專案級別指令和可用的技能元資料,包括儲存庫、使用者和主機範圍。識別強制性的專案慣例和任務相關的實作技能。不要假設主代理呼叫的技能已經載入到工作者的隔離上下文中。
  • 規劃每個工作者需要的特定技能或技能摘錄;避免將所有技能載入到每個工作者中。當主機允許時,工作者必須保留髮現其他相關實作技能的存取權。
  • 如果輸入不明確,執行有針對性的唯讀探索。主代理決定解決方案;可選的廉價偵察兵僅收集事實。
  • 將工作拆分為可驗證的單元,並帶有穩定 ID(A0、A1、...)、依賴關係、不重疊的寫入範圍和明確的輸出。當啟動/上下文成本佔主導時,不要拆分為微小任務。
  • 初始優先使用 1–3 個工作者;僅對真正獨立的工作使用並行工作者。如果檔案重疊,則序列化寫入或使用隔離的工作樹和一個整合負責人。

B. 選擇執行者

等級合適工作預設路由
D0可腳本化的轉換、搜尋、格式化、建構、確定性檢查腳本/工具;無 LLM
L1精確的檔案編輯、有邊界的提取、重複的測試添加最小有能力的 worker,低推理
L2清晰但中等規模的實作、局部除錯經濟的通用 worker
L3未解決的技術模糊性、大量推理、高影響分析強 worker 或 head

當解釋、生成、檢查和整合的成本超過工作本身時,優先主代理執行而非委派。驗證主機是否可以實際路由特定模型;否則將期望等級描述為建議性,而非已執行的配置。

C. 精確分派

每個任務封包必須包含:

TASK ID: A1
ROUND: 1
GOAL: <一個可驗證的結果>
EXECUTOR: <D0/L1/L2/L3;僅在支援時指定實際模型/努力等級>
DEPENDS ON: <已接受的任務 ID,或 NONE>
INPUTS: <確切的檔案/路徑/資料和相關上下文>
PROJECT GUIDANCE: <適用的儲存庫指令、路徑或必要摘錄>
REQUIRED SKILLS: <要預載入或開啟的確切技能名稱/路徑;或 NONE>
OPTIONAL SKILLS: <工作者可以查閱的相關技能名稱/路徑;或 NONE>
WRITE SCOPE: <確切的檔案或輸出位置;或 READ ONLY>
PROCEDURE: <有序的實作動作;主代理已做出的決策>
CONSTRAINTS: <必須保持不變的內容;禁止的動作>
VERIFY: <特定檢查和預期結果>
DELIVER: <預期變更的檔案/結果和簡潔報告>
STOP IF: <缺少輸入、權限、衝突、無法解決的失敗>

分派前:確保主機實際暴露或預載入指定的技能。如果主機無法做到,則向工作者提供必要的技能內容或一個可驗證的可讀路徑。保留必要的專案規則,而無需複製整個主代理對話記錄。切勿傳輸憑證或不相關的私有上下文。

明確告知工作者:僅執行封包、應用所需的專案指導和技能、並且不要將精益協調器作為主代理呼叫、產生其他代理或啟動依賴任務。工作者可以在範圍內載入其他相關的實作技能,但必須報告;如果技能與封包或專案指令衝突,請停止並報告。使用此報告格式:

TASK ID: A1
ROUND: 1
STATUS: DONE | BLOCKED | FAILED
CHANGED: <確切的工件,或 NONE>
CHECKS: <指令和觀察到的結果,或 NOT RUN 並附上原因>
SKILLS USED: <實際應用的實作技能名稱/路徑;或 NONE>
ISSUES: <特定阻礙、偏差,或 NONE>

完整的可重用封包模板位於 references/worker-packet.md;僅在詳細模板有幫助時才閱讀它。

D. 閉環主代理 ↔ 工作者溝通

對於每個委派的單元:

  1. 主代理 → 工作者:分派 透過實際的主機工具發送封包,並記錄工作者/工作階段 ID(如果有提供)。
  2. 工作者 → 主代理:報告 透過工具返回值、等待/輪詢結果或支援的訊息傳遞。進度更新是可選的,僅在可用且有幫助時提供。
  3. 主代理:審查 真實輸出和獨立證據;決定「接受」、「重做」、「重新規劃」或「阻止」。切勿在未經驗證的「完成」狀態下解鎖依賴任務。
  4. 主代理 → 工作者:修正 如果需要。發送一個新的封包,帶有相同的任務 ID、遞增的輪次、確切觀察到的缺陷、所需的修正、限定範圍和重點測試。在支援且經濟的情況下,恢復同一個工作者;否則創建一個僅包含必要歷史記錄的新工作者。
  5. 工作者 → 主代理:再次報告;驗證修正。優先進行一次有重點的重試,然後升級模型等級、修改計劃或直接修復,而不是重複一個無效的循環。
  6. 主代理:推進 已接受的依賴項,更新任務圖,並分派下一個準備就緒的任務。獨立且不衝突的工作無需等待。

通知語意取決於主機。 同步子代理的返回就是一個通知。持久性的工作階段可能接受後續訊息。非同步任務可能需要等待/輪詢。切勿假設存在任意代理間訊息傳遞或持久性記憶體。

範例:

使用者 給出 A
主代理 指定 A0 → 工作者 0 返回 A0 證據
主代理 驗證 A0(接受),指定 A1
工作者 1 返回 A1 證據
主代理 發現缺陷(重做),如果可能,向工作者 1 發送 A1 第 2 輪
工作者 1 返回修正後的 A1
主代理 驗證 A1(接受),創建 A2,...
主代理 執行整合檢查並向使用者報告

E. 追蹤與整合

維護一個最小的主代理持有的記錄(不要花費工作者 token 在上面):

TASK ID | DEPENDENCIES | ROUTE/WORKER | STATUS | ARTIFACTS | CHECK | NEXT ACTION

狀態:PLANNED、READY、RUNNING、REVIEW、REWORK、ACCEPTED、BLOCKED、FAILED。

  • 檢查實際變更,而不僅僅是摘要;根據封包和專案慣例進行驗證。
  • 先執行狹義檢查,再進行整合測試。避免在錯誤摘錄就足夠的情況下,用完整日誌淹沒上下文。
  • 如果報告衝突或檔案重疊,則集中整合並重新檢查交互作用。
  • 對失敗進行分類:封包不明確、環境阻礙、工作者能力、實作錯誤或整合衝突。解決實際原因;不要盲目重試相同的提示。
  • 除非確實需要使用者的輸入或批准,否則永遠不要問一個工作者無法通過檢查回答的問題。

F. 報告

返回完成的輸出、驗證狀態、剩餘限制,以及在相關時提供簡短的路由摘要(例如,一個 L1 工作者,兩個 D0 檢查,一次重做)。不要虛構 token、金錢或配額節省。

後備行為

  • 無子代理能力: 使用可用工具自行執行相同的任務圖。說明未生成子代理;僅在使用者請求委派計劃時才單獨產生封包。
  • 未確認更便宜模型: 將路由狀態分類為 SAME_TIER 或 UNVERIFIED,如果相關則解釋缺少的模型設定,並優先選擇主代理/D0 執行,除非委派具有非成本效益。切勿聲稱實際上選擇了更便宜的工作者。
  • 無可恢復的工作者: 將修正作為一個新呼叫發送,其中包含任務 ID、確切缺陷和最少先前證據。
  • 技能未繼承: 定位或預載入所需的專案技能;如果不可能,則僅在工作封包中提供已驗證的相關指令,或將任務保留在主代理手中。
  • 無法移除委派工具: 工作者角色規則仍然禁止巢狀委派,但需解釋這是指令級別的限制,而非由主機強制執行。
  • 唯讀或受限主機: 執行允許的分析和檢查;準確報告被阻止的修改。

有關主機能力和經濟工作者預檢,如果路由不明確,請閱讀 references/setup-preflight.md。有關實際操作的迴饋循環,請參閱 references/feedback-loop.md(當該範例有幫助時)。

相關技能