Episode ini membahas pemilihan model target berdasarkan performance, cost, dan accuracy, menyusun multi-model stack untuk conversational, embeddings, code, dan vision, serta mengintegrasikan external tools dan API services ke dalam alur routing agentic.

Di episode 4 kalian sudah belajar kemana request diarahkan. Sekarang kita fokus ke model apa yang dipilih dan tool apa yang dipanggil. Model selection adalah jantung dari optimasi biaya dan kualitas sebuah gateway AI — keputusan kecil di sini berdampak besar pada tagihan bulanan dan pengalaman pengguna.
Roadmap episode ini: kita akan membahas kriteria pemilihan model (performance, cost, accuracy), menyusun multi-model stack untuk empat kategori tugas (conversational, embeddings, code, vision), dan terakhir mengintegrasikan external tools dan API services ke dalam alur routing. Di akhir episode kalian bisa merancang strategi model selection yang seimbang.
Tidak ada satu model yang sempurna untuk semua tugas. Model selection di 9router menyeimbangkan tiga kriteria utama:
| Kriteria | Pertanyaan | Contoh Metrik |
|---|---|---|
| Performance | Seberapa cepat menjawab? | Latency p50/p95, throughput |
| Cost | Berapa biaya per request? | Harga per seribu token |
| Accuracy | Seberapa tepat jawabannya? | Skor evaluasi per task type |
Ketiga kriteria ini saling bertabrakan: model yang paling akurat biasanya paling lambat dan termahal. Karena itu 9router menilai fitness sebuah model berdasarkan kebutuhan tiap task, bukan peringkat global. Sebuah model kecil bisa menjadi pilihan terbaik untuk task ringan meskipun peringkat akurasinya di bawah.
Untuk memudahkan keputusan ini, deklarasikan profil model dengan metrik yang lengkap:
models:
- id: gpt-4o-mini
provider: openai
credential: OPENAI_API_KEY
metrics:
latency_p95_ms: 350
cost_per_1k: 0.00015
accuracy: 0.82
- id: gpt-4o
provider: openai
credential: OPENAI_API_KEY
metrics:
latency_p95_ms: 1200
cost_per_1k: 0.0025
accuracy: 0.93Metrik di atas menjadi bahan evaluasi saat 9router memutuskan model mana yang paling cocok untuk sebuah rute. Semakin akurat data metriknya — idealnya dari observability di episode 7 — semakin baik keputusan yang dihasilkan.
Ada dua pendekatan menentukan model target di dalam rute: eksplisit dan berbasis evaluasi. Pendekatan eksplisit menunjuk model tertentu, seperti yang kalian lihat di episode 3. Pendekatan evaluasi membiarkan 9router memilih di antara beberapa kandidat berdasarkan metrik:
routes:
- name: summarization
match:
intent: summarization
target:
models:
- gpt-4o-mini
- gpt-4o
select: best-score
weight:
cost: 0.6
accuracy: 0.3
latency: 0.1Dengan konfigurasi di atas, 9router menghitung skor tertimbang untuk setiap kandidat dan memilih yang terbaik. Pembobotan bisa disesuaikan per rute: rute untuk layanan berbayar bisa membobot accuracy tinggi, sedangkan rute untuk fitur gratis membobot cost tinggi. Ini adalah bentuk policy-based model selection yang nyata.
Aplikasi AI modern memakai lebih dari satu kategori model. 9router mendukung stack beragam di bawah satu pintu masuk — berikut peta kategorinya:
| Kategori | Contoh Penggunaan | Karakteristik Biaya |
|---|---|---|
| Conversational | Chat dan jawaban umum | Variatif tergantung ukuran model |
| Embeddings | Semantic search dan klasifikasi | Murah dan ber-volume tinggi |
| Code | Analisis, generate, dan debug kode | Sedang sampai tinggi |
| Vision | Analisis gambar dan dokumen | Tinggi karena input multimodal |
Setiap kategori didaftarkan sebagai model endpoint terpisah, lalu route yang berbeda menanganinya berdasarkan task type:
routes:
- name: chat
match:
taskType: conversation
target:
model: gpt-4o
- name: embed
match:
taskType: embedding
target:
model: text-embedding-3-small
- name: codegen
match:
taskType: code
target:
model: claude-code
- name: vision
match:
taskType: vision
target:
model: gpt-4o-visionAplikasi cukup mengirim request dengan field task type, dan 9router mengarahkan ke kategori yang tepat. Aplikasi tidak perlu tahu provider mana yang menangani tugas mana — satu endpoint, banyak model di baliknya.
Success
Kunci multi-model stack adalah pemisahan task type sebagai dimensi routing. Dengan memisahkan conversation, embedding, code, dan vision ke rute yang berbeda, kalian bisa mengoptimalkan biaya per kategori tanpa mengubah kode aplikasi sama sekali.
Terakhir, model bukan satu-satunya target routing. Dalam alur agentic, request sering perlu memanggil external tools — API pencarian, database, atau service internal. 9router mengelola tools ini sebagai target rute seperti halnya model:
tools:
- id: search-api
kind: http
url: https://api.example.com/search
method: POST
credential: SEARCH_API_KEY
timeout_ms: 2000
- id: weather-api
kind: http
url: https://api.example.com/weather
method: GET
credential: WEATHER_API_KEYLalu rute yang memicu tool ketika intent tertentu terdeteksi:
routes:
- name: weather-intent
match:
intent: weather
target:
tool: weather-api
chain:
- next: final-chat
on: tool_result
- name: final-chat
match:
any: true
target:
model: gpt-4oAlur di atas menggambarkan pola nyata: prompt "bagaimana cuaca besok?" diklasifikasikan sebagai intent weather, memicu pemanggilan tool cuaca, lalu hasilnya dikirim ke model akhir untuk disusun menjadi jawaban. Pola ini menggunakan route chaining dari episode 4 untuk membangun pipeline agentic yang lengkap.
Verifikasi strategi selection kalian dengan mengirim request untuk setiap task type, lalu periksa model yang terpilih melalui metadata routing:
curl -X POST http://localhost:8080/v1/chat \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"prompt":"tulis fungsi validasi email","taskType":"code","include_route_meta":true}'Perhatikan field model pada respons — harus menunjukkan claude-code dari rute codegen. Ulangi dengan taskType lain dan bandingkan hasilnya. Jika sebuah request memicu tool, metadata juga akan menampilkan detail pemanggilan tool beserta latensinya.
Untuk menguji perilaku fallback ketika model utama down, matikan sementara kredensial model utama lalu kirim request yang sama. Gateway harus mencoba fallback models sesuai urutan deklarasi — ini verifikasi penting untuk resilience yang akan kita perdalam di episode 18. Pastikan juga seluruh konfigurasi tetap valid dengan menjalankan 9router validate sebelum setiap pengujian.
Di episode 5 ini kalian sudah memahami seni model and tool selection: tiga kriteria pemilihan (performance, cost, accuracy), strategi eksplisit dan evaluasi berbasis metrik, penyusunan multi-model stack untuk empat kategori tugas, serta integrasi external tools ke dalam alur routing agentic.
Inti yang harus dibawa pulang:
Di episode 6 selanjutnya kita akan membahas policy enforcement and safety — policy-driven routing untuk compliance, privacy, dan access control, rate limiting dan quota enforcement, hingga safe fallback routes dan blocked intent handling. Strategi selection kalian akan kita lengkapi dengan lapisan keamanan yang wajib ada di production!