智能體混合(Mixture of Agents)
智能體混合(Mixture of Agents,簡稱 MoA)是一個虛擬模型提供商。每個命名的 MoA 預設都會作為 moa 提供商下的可選模型出現。
當你選擇一個 MoA 預設時,該預設的聚合器(aggregator)即為實際執行的模型。它是負責撰寫助手回覆併發出工具調用的模型。參考模型(reference models)會先運行,併為聚合器提供分析依據。
當一項艱鉅的任務受益於多個模型的視角,但仍需要 Hermes 的標準智能體循環(包括工具調用、後續迭代、中斷、轉錄持久化以及與其他消息相同的會話上下文)時,請使用 MoA。
選擇 MoA 預設作為你的模型
你可以通過常規的模型選擇界面來選擇預設:
/model default --provider moa
/model review --provider moa
MoA 預設在所有 Hermes 界面上均可選擇,因為 MoA 是模型系統中的常規提供商:
- CLI / 網關 / TUI
/model— 使用/model <preset> --provider moa,或使用/model --provider moa選擇默認預設。如果名稱與配置的預設完全匹配,直接使用/model <preset>也有效。 hermes model和 Dashboard 模型選擇器 — 會出現一個Mixture of Agents提供商行,其中列出了你的預設名稱作為其模型。- 桌面 GUI 應用 — 模型下拉菜單會顯示一個
MoA presets部分;選擇其中一個(MoA: <preset>)會將活動模型切換到該預設。桌面設置面板還可以創建和編輯預設。
因此,配置好的預設會出現在你選擇任何其他模型的地方。
斜槓命令快捷方式
/moa 是一次性使用的便捷語法糖。它通過默認 MoA 預設運行單個提示,然後恢復你之前使用的模型:
/moa design and implement a migration plan for this flaky test cluster
Hermes 會暫時切換到默認 MoA 預設以執行這一輪對話,發送提示,然後在之後恢復你之前的模型。整個參數即為提示內容——/moa 不再將其解釋為預設名稱。
/moa
不帶參數的 /moa(無提示內容)僅打印用法說明。
若要切換到某個 MoA 預設並在會話剩餘時間內使用它,請從模型選擇器中選擇它——在所有模型選擇界面中,MoA 預設都顯示在 Mixture of Agents 提供商下(見上文)。/moa 故意設計為非模型切換命令,因此常規提示永遠不會意外更改你的模型。
在智能體循環中的工作原理
當選擇提供商 moa 進行每次主模型調用時,Hermes 會:
- 按名稱解析選定的預設;
- 運行配置的參考模型,且不攜帶工具 schema(它們僅接收對話中的用戶/助手文本——不包含 Hermes 系統提示或工具調用轉錄——因此參考調用保持低成本並避免嚴格提供商的拒絕);
- 將參考輸出作為私有上下文附加給聚合器;
- 使用正常的 Hermes 工具 schema 調用配置的聚合器;
- 將聚合器的響應視為真實的模型響應;
- 如果聚合器調用工具,Hermes 會正常執行這些工具;
- 在下一次模型迭代中,同樣的 MoA 流程會在更新後的對話(包括工具結果)上再次運行。
由於 MoA 是通過常規模型系統選擇的,它會自動與 /goal、網關會話、TUI 會話和桌面聊天組合使用。
配置預設
你可以從以下位置配置命名的 MoA 預設:
- Dashboard → Models → Model Settings → Mixture of Agents
- 桌面應用 → Settings → Model → Mixture of Agents
hermes moa configure [name]config.yaml
配置存儲明確的提供商/模型對,因此你可以混合使用提供商,並使用來自同一提供商的多個模型:
moa:
default_preset: default
presets:
default:
reference_models:
- provider: openai-codex
model: gpt-5.5
- provider: openrouter
model: deepseek/deepseek-v4-pro
aggregator:
provider: openrouter
model: anthropic/claude-opus-4.8
reference_temperature: 0.6
aggregator_temperature: 0.4
max_tokens: 4096
enabled: true
默認預設:
- reference:
openai-codex:gpt-5.5 - reference:
openrouter:deepseek/deepseek-v4-pro - aggregator / acting model:
openrouter:anthropic/claude-opus-4.8
使用 reference_max_tokens 調整顧問速度
每一輪中,MoA 並行運行參考模型(顧問),然後由聚合器執行操作。顧問生成是每輪延遲的主要來源——輪次牆壁時間(wall time)與顧問生成的 token 數量強相關,因為輪次需等待最慢的顧問完成寫入。默認情況下,顧問是無上限的(未設置 reference_max_tokens),因此它們可能會撰寫長篇大論的建議。
在預設上設置 reference_max_tokens 以限制顧問輸出,從而提供簡潔的建議。聚合器只需要每個顧問判斷的要旨,因此設置上限(例如 600)可以在幾乎不影響質量的情況下顯著減少每輪的牆壁時間。此上限僅適用於顧問——實際執行的聚合器的輸出(用戶可見的答案)永遠不會受到上限限制。
moa:
presets:
fast:
reference_models:
- provider: openrouter
model: anthropic/claude-opus-4.8
- provider: openrouter
model: openai/gpt-5.5
aggregator:
provider: openrouter
model: anthropic/claude-opus-4.8
reference_max_tokens: 600 # concise advice → faster turns
保持未設置(或設為 0/空白)以保留之前的無上限行為。
終端預設管理
hermes moa list
hermes moa configure # update the default preset
hermes moa configure review # create or update a named preset
hermes moa delete review
基準測試
在 HermesBench 上,一個雙模型 MoA 預設——由 gpt-5.5 作為參考,claude-opus-4.8 作為聚合器——的得分高於任一模型單獨運行的得分:
| 模型 | HermesBench 分數 |
|---|---|
| Opus 聚合器(opus-4.8 + gpt-5.5 參考)— MoA | 0.8202 |
anthropic/claude-opus-4.8 | 0.7607 |
openai/gpt-5.5 | 0.7412 |
MoA 配置比其最強組件(opus-4.8)高出約 6 分,這證實了聚合第二個視角可以提升困難任務的質量,而不僅僅是取兩者的平均值。
提示緩存
MoA 的構建方式確保了主對話的提示詞緩存永遠不會被破壞。選擇 MoA 預設是一種正常的模型選擇操作:它不會改變過去的上下文、交換工具集或在對話中途重建系統提示詞。你的對話歷史、系統提示詞和工具模式保持字節級穩定,因此其他每個模型所依賴的緩存前綴會像普通模型一樣被精確保留。切換到或切換出 MoA 預設所產生的緩存失效成本與任何其他 /model 切換相同——沒有額外開銷。兩種內部調用類型均正常緩存:
- 參考模型(Reference models) 接收經過修剪的、確定性的對話視圖(系統提示詞和工具轉錄內容已被剝離——參見上述循環)。由於該視圖是穩定歷史的穩定函數,參考模型的提示詞前綴在各次迭代中重複出現並正常緩存。參考調用是簡短的建議性調用,不使用任何工具。
- 聚合器(The aggregator) 是實際執行的模型。參考輸出作為私有指導信息附加到最新用戶輪次的末尾。由於這些文本位於尾部——在整個穩定前綴(系統提示詞 + 先前歷史)之下——它不會使任何緩存前綴失效:聚合器對注入點之上的所有內容都能命中緩存,只有新附加的尾部是新的。這正是每次正常輪次的行為方式,即每條新用戶消息也是未緩存的尾部 token。
因此,MoA 在任何一種調用類型上都不會犧牲提示詞緩存。其唯一的實際成本是每次迭代中額外的參考調用——你為多種模型視角付費,而不是為破壞的緩存付費。與 Hermes 其餘部分共享的長生命週期對話前綴保持完整無損。
注意事項
- MoA 不再列在
hermes tools下;沒有要啟用的moa工具集。 - 在預設上設置
enabled: false會禁用該預設的參考扇出(reference fan-out):聚合器將單獨行動,完全就像你將其選為普通模型一樣。這是儀表板和桌面設置中提供的每個預設的關閉開關。 - 預設的聚合器不能是另一個 MoA 預設。遞歸的 MoA 樹被有意阻止。
- 某個參考模型上的憑證失敗不會中止當前輪次。Hermes 會將該失敗包含在參考上下文中,並繼續使用返回結果的其他模型。
- MoA 會增加模型調用次數。單次模型迭代可能涉及多次參考調用以及一次聚合器調用。