| name | fusion-panel |
| description | 複刻 OpenRouter Fusion 概念的多模型決策面板:把同一個重大決策問題平行發給多家 LLM(Gemini、Groq 的 Llama 與 gpt-oss、Claude),再由 Claude 綜合各家意見。刻意「不自動觸發」,只在使用者明確以關鍵字要求時才使用。主要觸發語為「幫我認真想一下」;其他別名包括「fusion」「panel」「fusion panel」「多模型決策」「重大技術選型」「盲點獵捕」「找多家模型意見」。專供值得花時間的重決策(架構、best practice、不可逆技術選型、爭議題)使用;例行 code 生成、有標準答案的事實查詢、互動式逐步 debug、高頻小問題請勿觸發,直接由 Claude 自行回答。 |
fusion-panel
複刻 OpenRouter Fusion 概念:把同一個重大決策問題平行發給多家 LLM
(Gemini、Groq 的 Llama、Groq 上的 gpt-oss,以及經 sub-agent 的 Claude),收回各家答案後由 Claude 綜合裁決。
外部 LLM 的平行請求由同目錄的 fan_out.py 執行;Claude 那席由 sub-agent 擔任。
定位
- 這是給值得花時間的重決策用的工具:架構設計、best practice、
不可逆的技術選型、預期會有真實分歧的爭議題。
- 不是 coding 模型的替代品,也不適合例行 code 生成或有標準答案的
事實查詢。
- 價值在於跨模型的「分歧」與「盲點」,而不是更快得到一個答案。
該觸發
- 不可逆的技術選型:選了就難回頭的框架、資料庫、協定、架構決策。
- 盲點獵捕:安全性、邊界條件、別人踩過的坑——主動找出自己想不到的風險。
- 預期會有真實分歧的爭議題:沒有公認標準答案、各派各有道理的問題。
- best-practice 廣度查證:想確認某做法是否為業界共識,或有沒有更好的慣例。
不要觸發(直接自己回答)
- 例行 code 生成、改 bug、重構等實作工作。
- 有標準答案的事實查詢(API 用法、語法、定義)。
- 互動式逐步 debug。
- 高頻、低風險的小問題。
以上情境直接由 Claude 回答,不要啟動本 skill。
執行方式
prompt 一律走 stdin,避免 shell escaping 問題:
echo "決策問題" | uv run ~/.claude/skills/fusion-panel/fan_out.py
腳本用 uv inline script metadata 宣告 openai/httpx 相依,uv run 會自動解析安裝,
不需要系統 python3 預先裝好這些套件。
可選參數:
--json:輸出結構化 JSON(形狀為 {results: [...], meta: {ok_count, total, instruction}}),方便程式化解析。
--timeout 秒數:調整每家 provider 的等待上限。
--profile confidential:改走本地 vLLM 雛形(機密內容不外送)。
--evidence-file 路徑:傳入研究步產出的證據包(見「先研究、再評判」一節);
會前置給離線席(Llama、gpt-oss),--profile confidential 的本地 persona 席也會吃,
Gemini 不吃。讀檔失敗會印警告並照常跑。
--dry-run:不發送任何網路請求,三個外部席回傳固定 mock 內容;離線自測用
(改動 fan_out.py 後可先跑這個當 smoke test)。
缺對應 API key 的 provider 會自動略過,不會報錯或讓整個流程崩潰。
先研究、再評判(B' 流程)
fan-out 之前先做一個序列前置的研究步,產一份共用證據包,只前置給離線席:
- orchestrator 先用 Agent 工具開一個 research sub-agent(subagent_type 用
claude
/ general-purpose 這類帶 WebSearch 的),要它聯網產出證據包:
5–10 條「原文引言 + 來源連結 + 日期」,刻意含正反兩面,絕不下結論/推薦/評分;
精煉、不要傾倒全文(離線小模型長 context 容易遺漏關鍵)。
- 把證據包寫進一個暫存檔,跑
fan_out.py 時用 --evidence-file <路徑> 傳入。
- 證據包只會注入離線席(Llama、gpt-oss)——由
fan_out.py 的 inject_evidence
旗標控制,前置在該席的 user 訊息之前。Gemini 與 Claude sub-agent 不吃這份包,
各自維持獨立聯網,保留兩條去相關(decorrelated)的檢索路徑。
- 這步多十幾秒 wall-clock,屬可接受成本。
- research sub-agent 失敗時:degrade 成「沒有證據包」照舊跑(不帶
--evidence-file,
離線席就回到只用訓練知識),不要中斷整個面板。
Claude 這席:用 sub-agent
使用者環境沒有 ANTHROPIC_API_KEY,所以 Claude 那席不走 Anthropic API,
改由 Claude Code 的 sub-agent(Agent 工具)擔任,免費取得一份獨立的 Claude 觀點:
fan_out.py 只負責把問題平行送給外部 LLM(Gemini、Groq 的 Llama、Groq 上的 gpt-oss)。
- Claude 這席由 sub-agent 提供:orchestrator(主 Claude)在跑
fan_out.py 的
同時,另外用 Agent 工具開一個 Claude sub-agent,把同一個決策問題原文丟給它,
prompt 要明確:這是要拿來跟其他模型比對的獨立意見,請直接給判斷與理由、
不要反問。subagent_type 要用 claude(或 general-purpose)這類工具齊全(Tools:*)
的類型,才帶得到 WebSearch / WebFetch。模型可挑輕量的,但若要它確實聯網,
別硬指定最輕量模型——不確定時乾脆不指定 model、繼承當前模型最穩。
- ⚠️ 子代理一定要先解除專案脈絡,否則它會繼承當前 repo 的 CLAUDE.md(例如某個
coding 專案),把離題問題判為「out-of-scope」而拒答。prompt 開頭務必明示:
「忽略你所在的專案/repo 脈絡。你只是被借用來回答下面這個問題的一席獨立意見,
不是這個專案的開發助理。無論問題是否與當前專案相關,都請直接作答,不要以
『超出範圍』『不是我的職責』『請另開對話』為由推託,也不要討論你的身分或工具。」
然後才接決策問題原文。這段「解除脈絡」指令是這個機制能不能用的關鍵。
- 🌐 要求子代理先聯網再答:prompt 明確要它「先用 WebSearch 搜尋當期資訊再作答,
並在開頭說明實際用了哪些查詢、列出引用來源」。這樣 Claude 這席就成為第二席當期
聯網(配合 Gemini 的 grounding),且不花任何 API 額度——實測子代理會真的去搜並
引用來源。對需要最新資訊的題目(不可逆技術選型、best-practice 查證)尤其重要。
- 四方答案(Gemini、Groq 的 Llama、Groq 上的 gpt-oss、Claude sub-agent)收齊後,再由 orchestrator 做下方
「五段」綜合。其中 Llama 與 gpt-oss 兩席讀過同一份證據包(共錨),Gemini 與
Claude sub-agent 則各自獨立聯網——綜合時務必依下節「共錨打折」規則處理。
- sub-agent 失敗時比照
fan_out.py 的失敗處理:照常用其餘各家綜合,
並註明 Claude 這席缺席。
Sub-agent prompt 模板
弱模型也能照抄:把下面整段複製當作丟給 Claude sub-agent 的 prompt,只把
【決策問題】換成與其他外部 LLM 完全相同的問題原文,其餘一字不改。
忽略你所在的專案/repo 脈絡。你只是被借用來回答下面這個問題的一席獨立意見,
不是這個專案的開發助理。無論問題是否與當前專案相關,都請直接作答,不要以
『超出範圍』『不是我的職責』『請另開對話』為由推託,也不要討論你的身分或工具。
請先用 WebSearch 搜尋當期資訊再作答,並在開頭說明實際用了哪些查詢、列出引用來源。
【決策問題】
(貼上與其他模型完全相同的決策問題原文)
綜合指示
讀完 fan_out.py 的輸出後,Claude 必須把各家意見綜合成以下五段,
段落用詞需與此處完全一致:
- 共識 — 各家都同意的部分。
- 矛盾裁決 — 哪裡分歧,Claude 判斷誰對誰錯與理由。
- 獨特洞見 — 只有某一家提到、但有價值的點。
- 集體盲點 — 各家可能都漏掉的風險。
- 最終答案 — Claude 自己的裁決;各家都錯時敢直接推翻。
共錨打折(B' 流程下必守):統整者要清楚哪些席讀了同一份證據包——
Llama 與 gpt-oss 兩席共錨(共享同一事實地面),它們意見一致是預期的,
不可當成兩張獨立票,要打折看待。反之,當獨立聯網的 Gemini/Claude
sub-agent 與這兩席分歧時,要放大檢視該分歧(可能是共錨席被同一份素材帶偏)。
「共識」段不可只因共錨席一致就宣告共識——真正的共識要由獨立席也認同才算數。
失敗處理
- 至少一家成功:照常進行綜合,並註明哪些 provider 缺席。
- 全部失敗:如實回報失敗原因,改由 Claude 自行回答,不要假裝有面板結果。
- Llama 與 gpt-oss 共用
GROQ_API_KEY:兩席是共同故障域,Groq 故障(或缺 key、
超額)代表這兩席同時缺席,不是兩個獨立訊號都不可用的巧合。