Fusi Model dalam Produksi: Di Dalam OrcaRouter Fusion dan Routing DSL

Fusi Model dalam Produksi: Di Dalam OrcaRouter Fusion dan Routing DSL

Tanggal Terbit

Kembali ke semua artikel

Tiga model frontier secara paralel, satu jawaban kembali. Panggil dalam satu baris — atau buat sendiri.

TL;DR. Claude Fable 5 telah dihapus. Jawabannya bukan model yang lebih besar — ini adalah sebuah panel: jalankan beberapa model frontier secara paralel dan biarkan seorang juri mengembalikan jawaban terkuat. OrcaRouter mengirimkan ini dengan dua cara: built-in orcarouter/fusion routers Anda panggil seperti model lainnya, dan sebuah Routing DSL untuk menyusun DSL Anda sendiri. Ini adalah panduan lapangan untuk keduanya — dengan resep copy-paste, lima arbiter (termasuk synthesize, fusi Mixture-of-Agents), dan cara meluncurkannya tanpa mempertaruhkan SLA Anda.


Bagian 1 — Panggil dalam satu baris: router Fusion bawaan

Fable 5 telah dihentikan dan dibatasi, sehingga tidak lagi dapat dipanggil secara luas. Fusion membangun kembali level tersebut dari model yang Anda dapat masih panggil — sebuah router drop-in yang kompatibel dengan OpenAI yang menjalankan panel model frontier secara paralel dan mengembalikan jawaban terkuat. Tiga tingkatan terkurasi dikirimkan di setiap ruang kerja:

Tiga tingkatan Fusion (komposisi panel × jendela konteks)


orcarouter/fusion

Claude Opus 4.8 + GPT-5.5 + Gemini 3.1 Pro

Jendela Konteks: 1,000,000

Terbaik untuk: kecerdasan level Max Fable-5


orcarouter/fusion-mini

Claude Opus 4.8 + GPT-5.5

Jendela Konteks: 1,000,000

Terbaik untuk: inferensi seimbang level Fable-5


orcarouter/fusion-flash

Gemini 3.5 Flash + MiniMax M2.7 + GLM 5.1

Jendela Konteks: 200,000

Terbaik untuk: inferensi cepat dan murah setingkat Fable-5

(Jendela konteks = anggota panel terkecil — kendala pengikat pada fan-out.)


Ini bukan umpan pemasaran; mereka adalah router DSL pra-kompilasi dikelola secara terpusat. Inilah sebenarnya program orcarouter/fusion, kata demi kata:

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


Dua pilihan desain yang patut disebutkan:

Ini hanya menyebar pada pekerjaan nyata. Gerbang when: memicu panel untuk kode, agen, penggunaan alat, padat-kode, atau kesulitan tinggi (kesulitan >= 0.3) prompt; semua yang lain jatuh ke default seimbang ruang kerja. Anda membayar harga panel tepat di tempat yang membantu, bukan pada "hai."

Hakim memberikan jawaban nyata, kata demi kata. best_of_n menjalankan hakim LLM (di sini, Opus 4.8 dengan template best_answer_v1) yang memilih satu kandidat terkuat dan menyajikannya apa adanya — tidak pernah gabungan yang diencerkan. Output selalu berupa jawaban model nyata.


Bagian 2 — Pilih vs. Gabungkan: best_of_n dan arbiter sintesis

Para router Fusion memilih. Namun OrcaRouter juga menyertakan fuse strategi — synthesize, Mixture-of-Agents pola yang ditambahkan dalam mesin perutean (service/dispatch_parallel/synthesize.go). Perbedaannya adalah inti dari permainan:

Lampiran 2 — Pilih vs. Gabung

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

Resep untuk fusi sejati:

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


Peringatan jujur:

- Penagihan adalah N+1 — setiap leg ditagih, ditambah agregator sebagai panggilan tambahan.

- Format chat OpenAI hanya di V1 — agregator mengeluarkan completion chat OpenAI; Claude/Gemini native klien turun ke serve-first-successful (segmen masih ditagih).

Agregator harus berada dalam set kandidat yang diotorisasi router, atau akan menurun.

Kapan menggunakan yang mana: best_of_n ketika jawaban satu model kemungkinan besar sepenuhnya benar (kode, tanya jawab faktual) — Anda menginginkan jawaban yang bersih dan nyata. synthesize ketika jawaban bersifat saling melengkapi (riset, analisis, bentuk panjang) dan menggabungkan kekuatan mengalahkan setiap pendapat tunggal.


Bagian 3 — Buat sendiri: buku panduan Routing DSL

Tidak ingin panel yang dikurasi? Mulai dari "Claude Fable 5 Level" templates di editor Routing DSL (mereka tersedia di setiap ruang kerja dan mencerminkan router Fusion), lalu khususkan. Enam pola salin-tempel:

1 — Kirim kode yang benar-benar berjalan → sebarkan, biarkan pengujian pilih pemenangnya:

- 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 bersifat berdasarkan eksekusi — ia melayani kandidat yang lolos harness Anda, tidak perlu judge LLM.

2 — Berhenti membayar lebih untuk prompt yang mudah → gerbang kesulitan (pola Fusion, model Anda):

- 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 — Menjaga agar agen yang berjalan lama tetap pada jalurnya → eskalasi hanya saat ia goyah:

- 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 — Buat keluaran flaky menjadi deterministik → beri suara, eskalasi pada split:

- 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 — Kalahkan latensi ekor dan gangguan penyedia → berlomba, layani responden pertama:

- 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 — Luncurkan tanpa mempertaruhkan SLAshadow (evaluasi bersama lalu lintas langsung, catat apa yang akan pilih + selisih biaya, sajikan pilihan langsung) → canary % (dsl_canary_pct 5 → 25 → 100, crypto-random per permintaan). Migrasi berdasarkan perbedaan yang terukur, kembalikan secara instan.


Lembar contekan: lima arbiter

Ekonomi & kejujuran

Fan-out yang dibatasi tingkat kesulitan menjaga tagihan tetap datar (Ilustratif; biaya = perhitungan harga token sebenarnya) — biaya campuran = easy_share × murah + hard_share × panel:

Beban kerja dengan tingkat kemudahan 70% menjalankan panel penuh untuk sepertiga dari tagihan seluruh panel.

© 2026 OrcaRouter