프로덕션에서의 모델 퓨전: OrcaRouter Fusion 및 Routing DSL 내부

프로덕션에서의 모델 퓨전: OrcaRouter Fusion 및 Routing DSL 내부

게시일

모든 게시물로 돌아가기

세 개의 최첨단 모델을 병렬로 사용하여 하나의 답변을 받으세요. 한 줄로 호출하거나 직접 구성하세요.

TL;DR. Claude Fable 5가 목록에서 삭제되었습니다. 해결책은 더 큰 모델이 아닙니다. 바로 패널: 여러 프론티어 모델을 병렬로 실행하고 판정기가 가장 강력한 답변을 반환하도록 하는 것입니다. OrcaRouter는 이를 두 가지 방식으로 제공합니다: 내장 orcarouter/fusion 라우터 마치 일반 모델처럼 호출할 수 있으며, 또한 Routing DSL 로 자체 라우터를 구성할 수 있습니다. 이는 두 가지 모두를 위한 실전 가이드로, 복사-붙여넣기 레시피, 다섯 가지 중재자(synthesize, Mixture-of-Agents 퓨즈 포함), 그리고 SLA를 위협하지 않고 배포하는 방법을 다룹니다.


파트 1 — 한 줄로 호출하세요: 내장된 Fusion 라우터

Fable 5는 중단 및 제한되어 더 이상 광범위하게 호출할 수 없습니다. Fusion은 당신이 모델로부터 그 수준을 재구축합니다 수 있는여전히 호출할 — 드롭인 방식의 OpenAI 호환 라우터로, 최첨단 모델 패널을 병렬로 실행하고 가장 강력한 답변을 반환합니다. 작업 공간마다 세 가지 선별된 계층이 제공됩니다:

세 가지 Fusion 계층 (패널 구성 × 컨텍스트 창)


orcarouter/fusion

Claude Opus 4.8 + GPT-5.5 + Gemini 3.1 Pro

컨텍스트 창: 1,000,000

적합 대상: Fable-5 레벨 Max intelligence


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) 프롬프트에 대해 패널을 발동합니다. 그 외의 모든 것은 워크스페이스의 균형 기본값으로 넘어갑니다. 패널 비용은 도움이 되는 곳에만 정확히 지불하며, "hi"에는 지불하지 않습니다.

판사는 진정한 답변을 그대로 제공합니다. best_of_n은 (여기서는 best_answer_v1 템플릿을 사용하는 Opus 4.8) LLM 판사를 실행하는데, 그 판사는 가장 강력한 후보 하나를 선택하여 그대로 제공합니다 — 절대 희석된 병합이 아닙니다. 출력은 항상 실제 모델의 답변입니다.


파트 2 — Select vs. Fuse: best_of_n과 synthesize arbiter

Fusion 라우터들은 선택합니다. 하지만 OrcaRouter는 또한 퓨즈 전략 — 합성, 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입니다 — 모든 구간이 청구되며, 애그리게이터는 추가 통화로 간주됩니다.

- OpenAI 채팅 형식은 V1에서만 가능 — 집계자는 OpenAI 채팅 완료를 방출합니다; Claude/Gemini 네이티브 클라이언트는 serve-first-successful로 저하됩니다 (legs는 여전히 청구됨).

애그리게이터는 라우터의 승인된 후보 집합에 속해야 하며, 그렇지 않으면 성능이 저하됩니다.

언제 어떤 것을 사용해야 할까: best_of_n은 한 모델의 답변이 정확할 가능성이 높은 경우에 완전히 맞을 (코드, 사실 기반 Q&A) — 깔끔하고 실제적인 답변을 원할 때 사용합니다. synthesize는 답변이 보완적인 (연구, 분석, 장문) 경우에는 각각의 강점을 결합하는 것이 단일 답변보다 더 좋습니다.


파트 3 — 나만의 만들기: 라우팅 DSL 플레이북

큐레이팅된 패널을 원하지 않으십니까? 다음에서 시작하세요: "Claude Fable 5 Level" 템플릿 (Routing 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는 실행 기반입니다 — harness를 통과하는 후보에게 제공되며, judge LLM이 필요하지 않습니다.

2 — 간단한 프롬프트에 과도하게 지불하지 마십시오 → 난이도 게이트 (Fusion pattern, 당신의 모델):

- 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, crypto-random per request). 측정된 차이에 따라 마이그레이션, 즉시 롤백.


치트 시트: 다섯 명의 중재자

경제 & 정직

난이도 게이트 팬아웃이 요금을 일정하게 유지합니다 (예시; 비용 = 실제 토큰 가격 계산) — 혼합 비용 = 쉬운 작업 비율 × 저렴한 비용 + 어려운 작업 비율 × 패널:

70% 쉬운 작업량이 전체 패널을 실행하는 데 소요되는 비용은전체 패널 요금의 1/3.

© 2026 OrcaRouter