Communitygithub.com

agmsg 模型選擇的開發

使用此技能可形成一個任務範圍內的**同儕團隊**,以支援 Claude Code 與 Codex 之間的協作開發流程。

agmsg 模型選擇的開發 是什麼?

此技能定義了一個以任務為範圍的同儕團隊(peer team)協作模式,其中沒有固定的指揮官或常駐工作者池。**任務擁有者(Task Owner)** 即為你為當前會話選擇的模型(在 Claude Code 或 Codex 中),負責端到端的任務執行,然後僅啟動在 agmsg 上進行有邊界工作所需的同儕角色。它需要安裝 **agmsg** 技能,並且 `claude` 與 `codex` CLI 皆須可用。技能提供詳細的模型路由指南,根據任務複雜度與風險,將不同類型的工作(例如:一般實作、規劃、專業審查、升級處理)分配給 Luna、Terra/Sonnet、Sol/Opus 或 Astra 等模型。團隊的建立與管理、訊息傳遞、角色生成與銷毀,皆透過 agmsg 提供的 Bash 腳本進行,避免直接操作底層資料。技能強調任務擁有者的問責制,並提供明確的角色分工(如工程師、產品經理、QA、安全審查員等),以確保協作效率與成果品質。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add bracelabs/agent-skills

在你喜歡的 AI 中提問

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

說明文件

agmsg 模型選擇的開發 是做什麼的?

使用此技能形成一個任務範圍內的同儕團隊。沒有固定的 指揮官與永久駐留的工作者池:任務擁有者是您為此會話選擇的模型 (在 Claude Code 或 Codex 中)。它端到端地擁有任務, 然後僅啟動在 agmsg 上進行有邊界工作所需的同儕角色。

需要安裝 agmsg 技能 (https://github.com/fujibee/agmsg),並且 claude 與 codex CLI 都必須可用——agmsg 團隊會在兩者上生成同儕。 在呼叫其腳本之前,請先閱讀已安裝的 agmsg 技能。僅使用其提供的 Bash 腳本; 切勿直接存取其資料庫、團隊檔案或設定。

啟動或恢復團隊

在進行任務工作之前先解決團隊問題。使用當前會話的 CLI 名稱 (claude-code 或 codex)來取代下文中的 <cli>。

  1. 如果調用指定了團隊名稱,請使用該確切名稱。如果本地缺少該團隊,請使用 join.sh 創建/加入;如果已存在,請使用 team.sh 檢查其成員名單並在其中工作。當請求是拉取遠端團隊時,請遵循 agmsg 的遠端拉取流程,而不是創建一個本地同名的團隊。
  2. 如果沒有明確的名稱,請執行 whoami.sh "$(pwd)" <cli> 和 team-list.sh --scope project "$(pwd)"。恢復與此專案關聯的唯一團隊。如果沒有,則創建一個本地團隊,其名稱為專案目錄名稱的安全小寫縮寫(例如:payments-api)。如果有多個團隊適用,請詢問使用者要使用哪個現有團隊;切勿任意選擇。
  3. 在需要時使用 join.sh <team> <agent> <cli> "$(pwd)" 註冊任務擁有者。選擇一個未使用的身份,例如 <team>-owner(可選地加上模型限定,例如 <team>-sol-owner);先檢查 team.sh <team>,如果發生衝突則添加數字後綴。記住解析後的團隊和此任務的代理身份。
  4. 在每次恢復的回合開始時以及宣告完成之前,檢查擁有者的收件匣:inbox.sh <team> <owner>。

因此,當沒有可用的專案團隊時,第一次調用會創建預設的專案團隊;明確提供的團隊始終優先。團隊和代理身份是本地的 agmsg 狀態,因此除非配置了遠端同步,否則不要假設它們在機器之間共享。

模型路由

任務擁有者 (TO) 控制模型選擇和升級。工作者將他們的 結果或升級請求回報給 TO;他們不會直接重新分配或交接工作。 供應商邊界無關緊要,因為任務上下文和結果可以通過 agmsg 移動。

使用能夠可靠完成任務的最便宜模型。角色定義了 責任;模型定義了當前任務所需的推理能力。 不要僅僅因為某個角色被命名為顧問或專家就選擇昂貴的模型。

  • 一般 — Luna: 常規實作、機械性編輯、直接的程式重構、簡單的文件,以及其他明確的執行密集型工作。
  • 顧問 — Terra 或 Sonnet: 規劃、需求/產品分析、審查、直接的設計或架構、中等的除錯,以及權衡分析。根據任務適合度選擇,而非供應商偏好。
  • 專家 — Sol 或 Opus: 複雜的架構或 UX、困難的除錯和重構設計、深度審查、跨領域推理,以及具有重大下游影響的決策。兩者都不是該角色的強制性預設模型。
  • 升級 — Astra: 異常困難或高風險的推理、未解決的系統範圍問題,或在 Sol 或 Opus 仍然不足後的最終獨立審查。Astra 不是預設的專家模型。

正常路徑是 Luna → Terra/Sonnet → Sol/Opus → Astra;當任務明顯證明其正當性時,TO 可以跳過一個層級。根據模糊性、所需的推理深度、上下文大小、失敗成本、先前的失敗嘗試或信心不足來決定升級——而不僅僅是任務重要性。

當工作者認為其分配的模型不足時,它會報告哪些已確定、哪些仍未解決、為什麼當前方法不足、是否建議升級,以及需要什麼額外的推理。然後 TO 決定是否重試、在同一層級內切換、升級,或請求獨立意見。

使用者在調用此技能之前選擇擁有者模型;此技能不會更改正在運行的會話的模型。如果選擇的模型不明確,請詢問使用者,而不是生成第二個擁有者來決定。

選定的任務擁有者必須建立需求和接受標準、檢查相關程式碼和文件、僅拆分獨立工作、實作或整合結果、執行適當的測試,並驗證完成。除非路由規則證明升級合理,否則 Luna 是預設的委派工作者模型。

在需要獨立性時,自由委派唯讀研究、QA 和安全審查。不要讓兩個同儕同時編輯同一個檔案;分割檔案或使用單獨的 Git 工作樹。任務擁有者對結果負責,而不是親自執行每個步驟。

使用票證形式的訊息。僅發送接收者需要的上下文,並引用檔案、提交、差異或先前的發現,而不是讓另一個模型重新發現它們。在委派或升級時,請閱讀訊息範本。

角色與直接溝通

  • 任務擁有者(您選擇的模型): 擁有範圍、決策、整合、測試和最終檢查。
  • 工程師 / 調查員: 接收有邊界的實作或研究票證,並直接向擁有者報告。
  • 產品經理 / PdM: 當產品問題或需求需要在設計或實作之前定義時使用。釐清使用者成果、範圍、優先級、業務規則和接受標準;不要選擇螢幕結構、UI 文案或實作,並將未解決的產品決策回報給擁有者。
  • 產品設計師: 當產品需求需要在實作之前進行螢幕/UX 規格定義時使用。以工程師可讀的層級定義資訊層級、流程、非快樂路徑狀態以及簡潔一致的 UI 文案;不要更改需求、業務規則、API/資料模型或實作方法,並將需求缺口或矛盾報告給擁有者。
  • 無障礙審查員: 當需要進行有意義的 UI 或使用者流程更改,且需要無障礙審查時使用。檢查鍵盤操作、焦點、標籤、錯誤和狀態回饋、對比度以及僅依賴顏色的指示;用證據和實際的補救措施報告障礙,並且通常不編輯程式碼或更改需求。
  • QA: 用於行為更改、錯誤修復、多檔案更改、回歸風險、多個接受標準,或擁有者有意義的盲點。QA 通常報告發現結果,不編輯程式碼。
  • 安全審查員: 僅用於身份驗證/授權、會話/cookie、API/外部輸入、上傳、秘密、資料庫/RLS、基礎設施、依賴項更新或敏感資料。報告嚴重性、證據和補救措施;通常不編輯程式碼。
  • 顧問: 僅提供有重點的判斷。擁有者提供問題、當前狀態、選項、權衡、建議、相關檔案和一個精確的問題。不要讓它重新調查整個儲存庫。
  • 專家: 在根據難度、不確定性、失敗成本和先前的嘗試進行路由後,處理一個狹義定義的困難問題。不要僅根據此角色標題選擇模型。

每個工作者將其結果回報給 TO。工作者在需要時可以直接溝通, 但他們不得重新分配工作或選擇下一個角色/模型;TO 仍然是路由和協調的權威。

升級與生成

在整個任務中保持選定的擁有者。僅在具體的決策 或失敗點進行升級;將回應記錄回該擁有者,由其做出實作和 完成決策。

按需生命週期與上下文重用

將每個非擁有者角色視為按需工作者:為一個有邊界的 票證 spawn 它,等待其報告,整合結果,然後 despawn 它。 不要在工作項目之間保持閒置的 QA、安全、顧問或工程師進程。

spawn.sh <type> <name> --project "$(pwd)" [--team <team>] [--model <cli-model-id>] [--boot-prompt "<ticket>"] [--no-wait] [--fresh] 預先加入 <name>,開啟一個 tmux 窗格(在 tmux 內部)或一個新的終端機,並啟動 CLI。claude-code 的生成會阻塞直到其監視器附加;codex 的生成 會立即返回,因此 codex 同儕必須透過 --boot-prompt 獲得其任務, 而不是在它閒置後發送的訊息。

要在同一任務中稍後將角色帶回,請使用相同的名稱再次 spawn, 但不要使用 --fresh——agmsg 會恢復其記錄的會話,因此僅發送增量 (狀態、相關檔案/提交、一個接下來的問題)。僅在先前的上下文 會產生誤導時使用 --fresh。

despawn.sh <team> <owner> <name> [--force] 是 spawn 的逆操作,並且只會 拆除由此擁有者生成的角色的環境。優雅的 despawn 一個 codex 同儕 通常會報告 "no live lock"(codex 沒有監視器)——這是正常的;僅在 終端機視窗保持開啟時添加 --force。切勿拆除手動啟動的同儕。

agmsg 介面

從當前環境中安裝 agmsg 技能的任何位置解析其 scripts/ 目錄(其技能目錄),而不是假設固定路徑,然後呼叫:

bash <agmsg-skill-dir>/scripts/send.sh <team> <from> <to> "<structured ticket>"
bash <agmsg-skill-dir>/scripts/inbox.sh <team> <agent>
bash <agmsg-skill-dir>/scripts/team.sh <team>
bash <agmsg-skill-dir>/scripts/spawn.sh <codex|claude-code> <agent> --project "$(pwd)" --team <team> --model <installed-cli-model-id> --boot-prompt "<bounded ticket>"
bash <agmsg-skill-dir>/scripts/despawn.sh <team> <owner> <spawned-agent> [--force]

--model 由 agmsg 傳遞給已安裝的 CLI。僅使用經過驗證的本地模型 ID—— 對於 Codex 同儕:gpt-5.6-luna、gpt-5.6-terra、gpt-5.6-sol、 gpt-6-astra; 對於其他 CLI,使用其文件記錄的識別碼,而不是自行發明。一個沒有監視器傳遞的 Codex 同儕必須透過 --boot-prompt 接收其初始任務,而不是在它閒置後發送的訊息。

僅在它能產生有用的並行工作時才生成。優先選擇一個狹義範圍的工作者,而不是多個推測性的工作者;僅並行化獨立的票證。對於手動啟動的同儕,send.sh 就足夠了。在分配之前檢查成員名單;每個 from 和 to 都必須已註冊,除非故意使用 agmsg 文件記錄的 --force 例外。

完成閘門

選定的任務擁有者僅在滿足需求和接受標準、相關測試通過、觸發的 QA 和安全審查已解決、沒有阻塞項,且差異中不包含無關的更改時,才會關閉任務。如果使用了昂貴模型的建議,請在關閉前驗證並實作其結果。

相關技能