跳到主要内容

智能体混合(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 modelDashboard 模型选择器 — 会出现一个 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 会:

  1. 按名称解析选定的预设;
  2. 运行配置的参考模型,且不携带工具 schema(它们仅接收对话中的用户/助手文本——不包含 Hermes 系统提示或工具调用转录——因此参考调用保持低成本并避免严格提供商的拒绝);
  3. 将参考输出作为私有上下文附加给聚合器;
  4. 使用正常的 Hermes 工具 schema 调用配置的聚合器;
  5. 将聚合器的响应视为真实的模型响应;
  6. 如果聚合器调用工具,Hermes 会正常执行这些工具;
  7. 在下一次模型迭代中,同样的 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 参考)— MoA0.8202
anthropic/claude-opus-4.80.7607
openai/gpt-5.50.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 会增加模型调用次数。单次模型迭代可能涉及多次参考调用以及一次聚合器调用。