生产中的模型融合:深入解析 OrcaRouter Fusion 与路由 DSL

生产中的模型融合:深入解析 OrcaRouter Fusion 与路由 DSL

发布日期

返回全部文章

三个前沿模型并行运行,一个答案返回。用一行代码调用——或者自行编写。

摘要。Claude Fable 5 已下架。答案不是更大的模型——而是面板:并行运行多个前沿模型,让一个判断器返回最强的答案。OrcaRouter以两种方式提供此功能:内置的 orcarouter/fusion 路由器您可以像调用任何模型一样调用它们,以及一个路由 DSL来构建你自己的。这是两者的实战指南——包含可复制粘贴的配方、五个仲裁器(包括synthesize,即Mixture-of-Agents融合),以及如何在不拿SLA冒险的情况下部署它。


第一部分 — 一句话概括:内置的 Fusion 路由器

Fable 5 已停止使用并受到限制,因此不再广泛可调用。Fusion 从这些模型你重建那个层次可以仍然调用——这是一个即插即用、兼容 OpenAI 的路由器,它并行运行一组前沿模型并返回最强的答案。每个工作区附带了三个精选层级:

三个Fusion层级 (面板组合×上下文窗口)


orcarouter/fusion

Claude Opus 4.8 + GPT-5.5 + Gemini 3.1 Pro

上下文窗口:1,000,000

最佳适用:Fable-5 级别最高智能


orcarouter/fusion-mini

Claude Opus 4.8 + GPT-5.5

上下文窗口:1,000,000

最适合:Fable-5 级别平衡推理


orcarouter/fusion-flash

Gemini 3.5 Flash + MiniMax M2.7 + GLM 5.1

上下文窗口: 200,000

最适合:Fable-5级别的快速且廉价的推理

(上下文窗口 = 最小的面板成员——扇出的绑定约束。)


这些不是营销噱头;它们是 预编译的DSL路由器 集中管理。这是 真正的 orcarouter/fusion 程序,原文如下:

version: 1
rules:
  - id: hard_panel
    when: task_class == "code" || task_class == "agent" || code_keyword_density >= 0.3 || has_tools || difficulty >= 0.3
    use:
      parallel:
        - { model: "anthropic/claude-opus-4.8" }
        - { model: "openai/gpt-5.5" }
        - { model: "google/gemini-3.1-pro-preview" }
      arbiter:
        strategy: best_of_n
        model: "anthropic/claude-opus-4.8"
        template: best_answer_v1
      max_latency_ms: 120000
default:
  delegate: balanced


值得提及的两个设计选择:

它仅在实际工作时才展开。when: 门为代码、代理、工具使用、代码密集型或高难度(难度 >= 0.3)的提示触发面板;其他所有内容则落入工作空间的均衡默认设置。你只在面板有帮助的地方支付面板价格,而不是在“嗨”上。

法官直接提供真实的答案,逐字逐句。best_of_n 运行一个 LLM 判断器(此处为 Opus 4.8 使用 best_answer_v1 模板),该判断器 选出唯一最强的候选答案并原样呈现——绝不进行稀释合并。输出始终是真实模型的答案。


第2部分 — 选择 vs. 融合:best_of_n 与 synthesize 仲裁器

Fusion路由器选择。但OrcaRouter也提供了一种熔断策略——synthesize,即Mixture-of-Agents模式,添加在路由引擎中(service/dispatch_parallel/synthesize.go)。区别就是全部关键:

图表2 — 选择 vs. 融合

best_of_n (SELECT)                         synthesize (FUSE)
 ┌─ Opus 4.8  ─┐                            ┌─ Opus 4.8  ─┐
 ├─ GPT-5.5   ─┼─► judge picks leg k        ├─ GPT-5.5   ─┼─► aggregator LLM writes
 └─ Gemini    ─┘   └─► serve leg k verbatim └─ Gemini    ─┘   ONE new fused answer
   output = a real model's answer             output = a new answer better than any leg

真正融合的配方:

use:
  parallel:
    - { model: "anthropic/claude-opus-4.8" }
    - { model: "openai/gpt-5.5" }
    - { model: "google/gemini-3.1-pro-preview" }
  arbiter:
    strategy: synthesize
    model: "anthropic/claude-opus-4.8"   # aggregator: fuses candidates into one new answer
    template: synthesize_v1


诚实的提醒:

- 计费方式为N+1 — 每一段都计费,再加上聚合器作为额外通话。

- 仅限V1中的OpenAI聊天格式 — 聚合器输出OpenAI聊天完成;Claude/Gemini 原生 客户端降级为首先成功服务(分段仍计费)。

聚合器必须在路由器的授权候选集中,否则会降级。

何时使用哪种: best_of_n 当单个模型的答案很可能完全正确(代码、事实问答)——你想要一个干净、真实的答案。synthesize当答案具互补性(研究、分析、长篇文章)且合并优势胜过任何单一答案。


第3部分 — 构建你自己的:路由 DSL 手册

不想要精选面板?从“Claude Fable 5 Level”模板开始,在路由DSL编辑器(它们随每个工作区提供,并镜像Fusion路由器)中,然后进行专门化。六个复制粘贴模式:

1 — 真正运行的代码 → 分散,让 测试 选出胜者:

- id: hard_code
  when: task_class == "code" && difficulty > 0.6
  use:
    parallel:
      - { model: "anthropic/claude-opus-4.8", thinking_budget_tokens: 16000 }
      - { model: "openai/gpt-5.5", reasoning_effort: high }
      - { model: "google/gemini-3.1-pro-preview" }
    arbiter: { strategy: tests_pass }

tests_pass 是基于执行的——它服务于通过你的测试工具的候选者,无需评判LLM。

2 — 停止为简单提示支付过高费用 → 难度关卡(融合模式,你的模型):

- id: easy
  when: difficulty < 0.3
  use: { delegate: cheapest }
- id: hard
  when: difficulty >= 0.3
  use:
    parallel:
      - { model: "anthropic/claude-opus-4.8" }
      - { model: "openai/gpt-5.5" }
    arbiter: { strategy: best_of_n, model: "anthropic/claude-opus-4.8", template: best_answer_v1 }

3 — 让长时间运行的智能体保持在正轨上 → 仅在偏离时升级处理:

- id: agent
  when: task_class == "agent" && agent_state.consecutive_errors == 0
  use: { model: "anthropic/claude-sonnet-4.6", affinity_ttl: "5m" }
  on_low_confidence:
    signals: [next_turn_test_failed, self_doubt]
    use: { model: "anthropic/claude-opus-4.8", thinking_budget_tokens: 24000 }

4 — 使不稳定的输出变为确定性 → 投票,在分裂时升级:

- id: extract
  when: task_class == "rag"
  use:
    parallel:
      - { model: "anthropic/claude-opus-4.8" }
      - { model: "openai/gpt-5.5" }
      - { model: "google/gemini-3.1-pro-preview" }
    arbiter: { strategy: majority }
    on_disagreement: { model: "anthropic/claude-opus-4.8", thinking_budget_tokens: 32000 }

5 — 消除尾部延迟与提供商故障 → 竞争,服务最快的响应者:

- id: race
  when: request.stream == true && difficulty < 0.5
  use:
    parallel:
      - { model: "google/gemini-3.5-flash" }
      - { model: "minimax/minimax-m2.7" }
      - { model: "z-ai/glm-5.1" }
    arbiter: { strategy: first }

6 — 在不押注SLA的情况下推出 → 影子 (与线上流量并行评估,记录它将会选择的候选及成本差异,提供线上选择)→ 金丝雀百分比% (dsl_canary_pct 5 → 25 → 100,每个请求基于密码学随机)。根据测量到的差异进行迁移,即时回滚。


速查表:五个仲裁者

经济学与诚实

难度门控的扇出使账单保持平稳 (说明性;成本 = 实际代币价格计算) — 混合成本 = 简单份额 × 廉价 + 困难份额 × 面板:

一个70%易用性的工作负载运行完整面板的费用为所有面板账单的三分之一