xiaowei-system/skills/devops/hermes-debug/references/moa-newapi.md

4.0 KiB
Raw Blame History

MoA (Mixture of Agents) + NewAPI 参考

最后更新2026-07-07 测试环境Hermes v0.17 + NewAPI (http://127.0.0.1:3000/v1)

架构速览

MoA 是 Hermes 的虚拟 provider。参考模型并行分析 → 聚合器综合 → 主模型执行。 走 /moa <preset>: <prompt> 单次模式,或 provider: moa 持久模式。

已验证的 NewAPI 模型MoA 可用性)

模型 角色 响应时间 状态
qwen/qwen3.5-122b-a10b 参考/聚合器 ~180ms
minimaxai/minimax-m2.7 参考 ~3.4s
mistralai/mistral-large-3-675b-instruct-2512 参考 ~1s
moonshotai/kimi-k2.6 参考 ~1s
stepfun-ai/step-3.5-flash 参考 ~1s (有 reasoning
deepseek-ai/deepseek-v4-pro (via NewAPI) 超时 >45s 不走 NewAPI
z-ai/glm5 EOL 2026-05-18
z-ai/glm-5.1 参考 未测 待验证

DeepSeek V4 Pro 要走 deepseek provider 直连,不能走 NewAPI。

config.yaml 配置格式

moa:
  presets:
    expert-panel:
      reference_models:
        - provider: newapi-local
          model: qwen/qwen3.5-122b-a10b
        - provider: newapi-local
          model: minimaxai/minimax-m2.7
        - provider: newapi-local
          model: mistralai/mistral-large-3-675b-instruct-2512
      aggregator:
        provider: newapi-local
        model: qwen/qwen3.5-122b-a10b
      fanout: user_turn      # per_iteration默认| user_turn
      reference_max_tokens: ***  # 顾问输出精简None=不限制
      enabled: true
  default_preset: expert-panel
  save_traces: false

fanout 模式选择

模式 行为 适用场景
per_iteration(默认) 每步工具迭代都重新跑顾问 需要持续跟踪变化的任务
user_turn 每轮用户消息只跑一次顾问 省 token只在一开始给方向性建议

注意事项

  • enabled: false 的 preset 跳过参考模型,只用聚合器直接回答(相当于选模型)
  • MoA slot 不能递归引用另一个 MoA preset
  • newapi-local provider 配置中的 cost_factor/rate_limit/timeout 会被 Hermes 忽略(不影响功能)

测试方法

方法 A通过 MoA 代码直接测试(最快)

from agent.moa_loop import aggregate_moa_context

result = aggregate_moa_context(
    user_prompt="<问题>",
    api_messages=[{"role": "user", "content": "<问题>"}],
    reference_models=[{"provider": "newapi-local", "model": "qwen/qwen3.5-122b-a10b"}],
    aggregator={"provider": "newapi-local", "model": "qwen/qwen3.5-122b-a10b"},
    max_tokens=4096,
)
print(result)

方法 B通过 config + reload 用 /moa 命令

# 改完 config.yaml 后不用重启MoA 配置运行时加载
hermes           # 新开 session
# 然后输入:/moa expert-panel: <问题>

方法 C单独测试模型是否可用先于 MoA 测试)

TOKEN="sk-0ExNiLblJvIWBDpkS50fwOBw4MmqLyKdHJK5iQtlw9dOMWBP"
BASE="http://127.0.0.1:3000/v1"

curl -s --max-time 30 $BASE/chat/completions \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model":"<model-name>","messages":[{"role":"user","content":"hi"}],"max_tokens":10}'

实测性能

一次完整的 MoA 调用3 个参考模型 + 聚合器):

  • 总耗时~40-45s主要是参考模型响应并行调用
  • 参考输出容量:用 reference_max_tokens: 800 控制
  • 聚合器约 3-5s 综合意见
  • 输出格式:[Mixture of Agents context] 块注入主模型

诊断流程

MoA 不工作?

  1. 先单独测每个模型(方法 C——确认不是模型本身的问题
  2. 检查 config.yaml 中 moa: 段格式——YAML 缩进错误会让整个段静默忽略
  3. 检查 providers.newapi-local 配置——base_urlmodel: 顶层段是否一致
  4. 如果报 DEGRADED function 错误 → 参考 newapi-degraded-function-20260703.md