Dokumentasi
mini-SWE-agent
mini tidak memiliki variabel lingkungan URL dasar ataupun tombol untuk diklik. Endpoint ditentukan oleh empat baris YAML yang diteruskan mini langsung ke litellm — ditambah registri harga, karena anggaran per proses mini tidak dapat menghitung token tanpa tarifnya.
mini-SWE-agent tidak memiliki variabel lingkungan base-URL — endpoint ditempatkan di model.model_kwargs.api_base dalam konfigurasi YAML, yang langsung diteruskan mini ke litellm.completion.
# mini has no base-URL environment variable and no settings UI. The endpoint
# goes in an agent config file, under model.model_kwargs — which mini's docs
# describe as "directly passed to litellm.completion".
model:
model_name: "openai/claude-sonnet-5"
model_kwargs:
custom_llm_provider: "openai"
api_base: "https://api.kunavo.com/v1" # keep the /v1
litellm_model_registry: "kunavo-registry.json" # see "Cost tracking" below
# The key does not live in this file. With custom_llm_provider: "openai",
# litellm reads OPENAI_API_KEY, and mini documents two ways to set it:
#
# export OPENAI_API_KEY=sk-kn-... # environment, wins over .env
# mini-extra config set OPENAI_API_KEY sk-kn-... # mini's own .env
#
# Then run it: mini -c kunavo.yaml
# Or make it the default: mini-extra config set MSWEA_MINI_CONFIG_PATH kunavo.yaml/v1 — mini tidak menyatakannya dalam satu kalimat, jadi berikut penjelasan yang memastikan hal tersebut. mini tidak pernah membaca nilainya: dokumentasinya menyatakan model_kwargs “diteruskan langsung ke litellm.completion” dan menunjukkan pemanggilannya sebagai litellm.completion(model=model_name, messages=messages, **model_kwargs). Jadi, aturan ini berasal dari litellm. Satu-satunya contoh konkret api_base yang pernah dicantumkan mini menyertakan akhiran — http://localhost:8000/v1, dalam contoh vLLM-nya — sementara halaman kompatibilitas OpenAI litellm sendiri menyarankan untuk “memastikan api_base Anda memiliki akhiran /v1” jika permintaan mengembalikan Not Found. Kilo Code dan Aider menggunakan format yang sama; klien bergaya Anthropic dan goose menggunakan origin dasar tanpa akhiran.openai/ pada nama model dan custom_llm_provider menjalankan fungsi yang sama. Contoh mini sendiri hanya menggunakan yang kedua — salah satu boleh digunakan, keduanya juga boleh digunakan bersama, tetapi apa pun pilihannya harus sesuai dengan litellm_provider di registri harga. Awalan tersebut menunjukkan protokol wire, bukan vendor: ID Claude di bawah openai/ merupakan kombinasi yang dimaksud, karena ID diresolusikan pada endpoint, bukan di dalam litellm.openai/ litellm menegosiasikan pemanggilan alat native — setelan default mini v2 — dengan /v1/chat/completions Kunavo, dan apakah antarmuka tersebut bertindak atas penanda cache_control yang ditambahkan mini sendiri pada ID bernama Claude. Bagian curl di bawah dapat Anda pastikan dalam sepuluh detik; sisanya dapat dipastikan dengan menjalankan proses pertama secara singkat.sk-kn-) dan tambahkan kredit mulai dari $10 — panggilan dibayar dari saldo tersebut, dan panggilan yang gagal tidak ditagihkan. Dasbor kemudian terbuka pada penyiapan mini-SWE-agent.Langkah demi langkah
- Buat key di
/app/keysdan salin — key hanya ditampilkan sekali. - Instal lalu jalankan sekali agar jalurnya tersedia:
pip install mini-swe-agent, lalumini. Proses pertama akan menampilkan lokasi.envdan konfigurasi agen, serta menawarkanmini-extra config setup. - Simpan kunci di lokasi yang akan dicari litellm:
export OPENAI_API_KEY=sk-kn-..., atau simpan secara persisten denganmini-extra config set OPENAI_API_KEY sk-kn-.... mini mencatat bahwa “Variabel lingkungan lebih diutamakan daripada variabel yang ditetapkan dalam berkas.env”, yang biasanya menjelaskan mengapa kunci yang baru saja Anda ubah tampak tidak berubah. - Simpan YAML di atas sebagai
kunavo.yamlbersama konfigurasi agen lainnya, lalu tambahkan registri harga dari bagian di bawah — tanpanya, proses akan berhenti karena kesalahan penghitungan biaya, bukan karena jawabannya buruk. - Jalankan dengan
mini -c kunavo.yaml, atau gunakanmini -c kunavo.yaml -m openai/claude-haiku-4-5untuk mengganti ID pada satu kali proses. mini terbuka dalam modeconfirm, yang meminta persetujuan Anda untuk setiap perintah — pilihan awal yang baik saat mencoba endpoint baru. - Berikan tugas yang benar-benar menjalankan perintah, bukan sekadar sapaan. Setelan default mini v2 adalah pemanggilan alat native dan prompt bawaan menyatakan bahwa “Setiap respons harus menggunakan alat 'bash' setidaknya sekali untuk menjalankan perintah” — karena itu, satu interaksi bolak-balik alat yang sesungguhnya akan memastikan pasangan konfigurasi ini berfungsi. Jika panggilan alat menghasilkan respons kosong atau tidak valid, mini masih menyediakan jalur penguraian teks yang lebih lama:
mini -c mini_textbased.yaml, ataumodel_class: litellm_textbaseddalam berkas Anda sendiri.
Diperiksa terhadap Panduan model lokal mini-SWE-agent pada 21 September 2026. Pengaturan pihak ketiga dapat berubah; jika nama bidang di sini tidak lagi sama dengan yang Anda lihat, halaman tersebut adalah acuan, bukan halaman ini.
Verifikasi sebelum men-debug klien
Satu permintaan menentukan apakah masalahnya ada pada endpoint, kunci, atau berkas konfigurasi. Jika ini mengembalikan JSON, base URL dan kunci yang sama berfungsi di mini-SWE-agent.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."ID model yang harus dimasukkan ke bidang
Setiap model teks dapat diakses melalui ID model — daftar terkininya ada di GET /v1/models, dan katalog beserta harga ada di halaman model. Tarif dalam USD per 1 juta token, input / output.
| ID model | Kunavo masuk / keluar | Kegunaannya di mini-SWE-agent |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | ID default untuk sesi kerja — mini mengirim ulang konteks pada setiap langkah, jadi di sinilah tagihan bertambah |
claude-opus-5 | $3.50 / $17.50 | proses saat rencana yang salah akan mahal; pasangkan dengan cost_limit yang lebih rendah, bukan yang lebih tinggi |
claude-haiku-4-5 | $0.70 / $3.50 | proses batch untuk banyak tugas, dan setiap loop yang Anda biarkan dalam mode yolo |
gpt-5-6-sol | $2.00 / $12.00 | keluarga kedua di balik api_base yang sama — ubah model_name, tambahkan satu entri registri |
Pelacakan biaya yang wajib digunakan di sini
Konfigurasi bawaan mini menyertakan mini.yaml yang memuat cost_limit: 3. — batas maksimum biaya per proses — dan batas tersebut diterapkan oleh kalkulator biaya litellm, yang menentukan harga proses dengan mencari ID model di registrinya. ID Kunavo tidak ada di registri tersebut, jadi hal pertama yang dilihat kebanyakan orang bukanlah jawaban yang buruk, melainkan sebuah kesalahan: halaman pemecahan masalah mini menampilkannya sebagai Exception: This model isn't mapped yet. model=…, custom_llm_provider=….
Ada dua cara untuk mengatasinya, dan keduanya tidak setara. Sakelar global MSWEA_COST_TRACKING="ignore_errors" (atau cost_tracking: "ignore_errors" dalam berkas) menghapus pengaman, bukan memperbaiki masalahnya, dan mini memberi label “HATI-HATI: Ini dapat menyebabkan pengeluaran yang tidak terkelola!” Cara lainnya adalah memberi tahu litellm tarifnya, seperti yang ditunjukkan oleh litellm_model_registry di blok penyiapan. Tarif di bawah ini adalah tarif katalog situs ini yang berlaku saat ini, dikonversi ke format per token litellm:
{
"claude-sonnet-5": {
"input_cost_per_token": 0.0000014,
"output_cost_per_token": 0.000007,
"litellm_provider": "openai",
"mode": "chat"
},
"claude-opus-5": {
"input_cost_per_token": 0.0000035,
"output_cost_per_token": 0.0000175,
"litellm_provider": "openai",
"mode": "chat"
},
"claude-haiku-4-5": {
"input_cost_per_token": 0.0000007,
"output_cost_per_token": 0.0000035,
"litellm_provider": "openai",
"mode": "chat"
}
}- Nama model dicocokkan secara persis dan peka huruf besar-kecil. Contoh mini menetapkan entri menggunakan nama tanpa awalan penyedianya — jadi di sini,
claude-sonnet-5, meskipun konfigurasinya menyatakanopenai/claude-sonnet-5. litellm_providerharus sesuai dengan awalan dancustom_llm_provider. Peringatan mini menyatakannya secara eksplisit: “Jika Anda menggunakancustom_llm_provideratau menambahkan awalan penyedia pada nama model (misalnya,openai/…), maka ini juga harus cocok denganlitellm_providerdi konfigurasi!”- Jalurnya juga dapat berasal dari
LITELLM_MODEL_REGISTRY_PATH, bukan dari kunci konfigurasi — berguna untuk pelaksana batch, misalnyaLITELLM_MODEL_REGISTRY_PATH=kunavo-registry.json mini-extra swebench … - Tarif ini merupakan masukan anggaran, bukan tagihan. Biaya yang benar-benar Anda kenakan tercatat di saldo Kunavo; salin ulang tarifnya jika katalog berubah, atau lihat tarifnya di
GET /v1/models.
Pertanyaan umum
Bagaimana cara mengarahkan mini-SWE-agent ke endpoint API kustom?
Melalui berkas konfigurasi, bukan variabel lingkungan — mini sama sekali tidak memiliki variabel URL dasar. Dalam berkas konfigurasi agen, atur model.model_name ke ID Anda (dapat diawali openai/), lalu di bawah model.model_kwargs atur custom_llm_provider: "openai" dan api_base ke URL dasar endpoint. Dokumentasi mini menjelaskan alasan cara ini berfungsi: model_kwargs “diteruskan langsung ke litellm.completion”. Pilih berkas dengan `mini -c kunavo.yaml`, atau jadikan sebagai default dengan MSWEA_MINI_CONFIG_PATH. Untuk Kunavo, URL dasarnya adalah https://api.kunavo.com/v1.
Dari mana mini-SWE-agent membaca kunci API?
Dari variabel kunci litellm yang sesuai dengan penyedia yang Anda pilih. Untuk custom_llm_provider: "openai", variabelnya adalah OPENAI_API_KEY. Anda dapat mengekspornya di shell atau menyimpannya secara persisten dengan `mini-extra config set OPENAI_API_KEY <key>` — perintah ini menulis ke .env milik mini, dan mini mencatat bahwa variabel lingkungan lebih diutamakan daripada nilai dalam berkas. Kunci tidak dicantumkan sebagai kolom di konfigurasi agen. Jika Anda mengikuti tutorial lama, perlu diketahui bahwa panduan migrasi v2 mencantumkan MSWEA_MODEL_API_KEY sebagai “Tidak lagi digunakan untuk mengganti kunci API”.
Apakah api_base mini-SWE-agent perlu diakhiri dengan /v1?
Ya, untuk endpoint yang kompatibel dengan OpenAI — misalnya https://api.kunavo.com/v1 — meskipun mini menyatakannya lewat contoh, bukan sebagai aturan. mini meneruskan model_kwargs langsung ke litellm.completion, jadi konvensi ini berasal dari litellm. Satu-satunya api_base konkret yang dicantumkan dalam dokumentasi mini adalah http://localhost:8000/v1 pada contoh vLLM-nya. Halaman kompatibilitas OpenAI litellm sendiri memastikan hal ini: jika permintaan mengembalikan Not Found, pastikan api_base memiliki akhiran /v1. Karena itu, ketiadaan /v1 akan menyebabkan respons 404, bukan kesalahan autentikasi.
Mengapa mini-SWE-agent gagal dengan pesan "This model isn't mapped yet"?
Karena litellm tidak dapat menentukan harga ID model tersebut, sementara cost_limit per proses milik mini — 3. dolar dalam mini.yaml bawaan — diterapkan melalui kalkulator biaya litellm. Solusi yang direkomendasikan mini adalah registri model: berkas JSON dalam format harga model litellm, dengan entri yang menggunakan nama model tanpa awalan penyedia sebagai kunci, dan litellm_provider yang sesuai dengan nilai custom_llm_provider atau awalan nama yang Anda tetapkan. Arahkan litellm_model_registry di konfigurasi, atau LITELLM_MODEL_REGISTRY_PATH di lingkungan, ke berkas tersebut. Menetapkan MSWEA_COST_TRACKING="ignore_errors" juga akan membungkam pesan, tetapi menghapus pengaman pengeluaran alih-alih memperbaiki masalahnya.
Bisakah mini-SWE-agent menggunakan model Claude melalui endpoint yang kompatibel dengan OpenAI?
Bisa. Awalan openai/ dan custom_llm_provider menunjukkan protokol wire, bukan vendor: litellm mengirim chat completion berbentuk OpenAI ke api_base yang Anda konfigurasi dan meneruskan ID model, sehingga ID Claude diresolusikan pada endpoint tersebut, bukan di tabel penyedia litellm. Ada satu dampak khusus mini yang perlu diketahui: mini menambahkan pengaturan kontrol cache secara otomatis jika nama model yang diresolusikan memuat "anthropic", "claude", "sonnet", atau "opus"; ID openai/claude-… yang diawali awalan tersebut juga memenuhi kondisi ini.
Apakah Kunavo telah menguji mini-SWE-agent pada endpoint-nya?
Belum. Yang diperiksa pada 21 September 2026 adalah dokumentasi mini sendiri — kunci, urutannya, dan format api_base dikutip dari dokumentasi tersebut. Kunavo belum menjalankan sesi mini pada endpoint-nya dan tidak mengklaim kompatibilitas terkait streaming, interaksi bolak-balik alat, atau pelaporan biaya di klien ini. Dua hal yang secara khusus belum dipastikan: apakah jalur openai/ litellm menegosiasikan pemanggilan alat native — setelan default mini sejak v2.0 — dengan endpoint chat-completions, dan apakah endpoint tersebut bertindak atas penanda cache_control yang ditambahkan mini pada ID bernama Claude. Perintah curl di halaman ini memastikan endpoint dan kuncinya; sisanya dapat dipastikan dengan menjalankan proses pertama secara singkat dalam mode confirm.