Belajar 9router - Model & Tool Selection
Episode 5 of 23

Belajar 9router - Model & Tool Selection

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.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

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.

Kriteria Pemilihan Model: Performance, Cost, Accuracy

Tidak ada satu model yang sempurna untuk semua tugas. Model selection di 9router menyeimbangkan tiga kriteria utama:

KriteriaPertanyaanContoh Metrik
PerformanceSeberapa cepat menjawab?Latency p50/p95, throughput
CostBerapa biaya per request?Harga per seribu token
AccuracySeberapa 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:

endpoints/models.yaml - profil 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.93

Metrik 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.

Strategi Model Selection dalam Rute

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:

Rute dengan evaluasi model
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.1

Dengan 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.

Multi-Model Stack: Conversational, Embeddings, Code, Vision

Aplikasi AI modern memakai lebih dari satu kategori model. 9router mendukung stack beragam di bawah satu pintu masuk — berikut peta kategorinya:

KategoriContoh PenggunaanKarakteristik Biaya
ConversationalChat dan jawaban umumVariatif tergantung ukuran model
EmbeddingsSemantic search dan klasifikasiMurah dan ber-volume tinggi
CodeAnalisis, generate, dan debug kodeSedang sampai tinggi
VisionAnalisis gambar dan dokumenTinggi karena input multimodal

Setiap kategori didaftarkan sebagai model endpoint terpisah, lalu route yang berbeda menanganinya berdasarkan task type:

Multi-model stack dalam satu konfigurasi
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-vision

Aplikasi 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.

Integrasi dengan External Tools dan API Services

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.yaml - mendefinisikan external tools
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_KEY

Lalu rute yang memicu tool ketika intent tertentu terdeteksi:

Rute dengan tool invocation
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-4o

Alur 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.

Praktik: Menguji Model & Tool Selection

Verifikasi strategi selection kalian dengan mengirim request untuk setiap task type, lalu periksa model yang terpilih melalui metadata routing:

Menguji selection untuk task code
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.

Penutup

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:

  • Model selection menyeimbangkan performance, cost, dan accuracy — bukan memilih model terbaik secara absolut.
  • Pembobotan metrik per rute memungkinkan strategi yang berbeda untuk layanan berbayar dan fitur gratis.
  • Pisahkan task type conversation, embedding, code, dan vision ke rute berbeda untuk optimasi biaya per kategori.
  • External tools didaftarkan seperti model dan dipicu berdasarkan intent melalui route chaining.
  • Uji selection lewat metadata routing dan uji fallback dengan mematikan kredensial model utama.

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!

Belajar 9router - Model & Tool Selection | Belajar 9router