Dokumentasi
Factory Droid
Model kustom Droid berupa array JSON dengan tiga kolom wajib. Kolom yang kerap disalahartikan adalah baseUrl, karena format yang benar bergantung pada nilai provider yang Anda pilih dari tiga opsi.
Entri customModels di ~/.factory/settings.json — model, baseUrl, dan provider — menempatkan Droid pada endpoint apa pun yang berbicara Anthropic Messages atau OpenAI Chat Completions.
// ~/.factory/settings.json (Windows: %USERPROFILE%\.factory\settings.json)
{
"customModels": [
{
"model": "claude-sonnet-5",
"displayName": "Sonnet 5 [Kunavo]",
"baseUrl": "https://api.kunavo.com",
"apiKey": "${KUNAVO_API_KEY}",
"provider": "anthropic"
},
{
"model": "gpt-5-6-sol",
"displayName": "GPT-5.6 Sol [Kunavo]",
"baseUrl": "https://api.kunavo.com/v1",
"apiKey": "${KUNAVO_API_KEY}",
"provider": "generic-chat-completion-api"
}
]
}
// Then, in the shell Droid starts from:
// export KUNAVO_API_KEY=sk-kn-...
// ${VAR_NAME} expansion is a settings.json feature. It does NOT apply to the
// legacy ~/.factory/config.json, which Factory still loads and merges./v1 berlaku untuk satu entri, bukan entri lainnya. Dokumentasi Factory menjelaskannya lewat tabel, bukan kalimat: referensi Provider mencantumkan https://api.anthropic.com — origin tanpa path — untuk provider: "anthropic", sedangkan https://api.openai.com/v1, https://openrouter.ai/api/v1, dan https://api.groq.com/openai/v1 semuanya menggunakan root /v1. Droid menambahkan route itu sendiri, jadi entri Anthropic di atas menggunakan origin polos, sedangkan entri Chat Completions menggunakan /v1. Jika Anda menambahkan /v1 ke entri Anthropic, permintaan akan diarahkan ke /v1/v1/messages, yang menghasilkan 404, bukan kegagalan autentikasi — lihat referensi base URL.curl di bawah adalah bagian yang dapat Anda periksa dalam sepuluh detik; perilaku klien menjadi urusan Anda dan Factory.authMode boleh tidak dicantumkan. Factory mendokumentasikan default-nya, provider-default, sebagai pengiriman kredensial melalui x-api-key, dan endpoint Messages Kunavo juga menerima header tersebut serta Authorization: Bearer. Jika Anda ingin menggunakan bentuk bearer secara eksplisit, Factory mendokumentasikan authMode: "bearer" untuk provider: "anthropic" dan bentuk itu juga berfungsi di sini.sk-kn-) dan tambahkan kredit mulai dari $10 — panggilan dibayar dari saldo tersebut, dan panggilan yang gagal tidak ditagihkan. Dasbor kemudian terbuka pada penyiapan Factory Droid.Langkah demi langkah
- Buat key di
/app/keyslalu salin — key hanya ditampilkan sekali. Ekspor sebagaiKUNAVO_API_KEYdi shell tempat Anda menjalankan Droid, agar key itu sendiri tidak pernah tersimpan dalam file pengaturan. - Buka
~/.factory/settings.json(buat jika belum ada), lalu tambahkan arraycustomModelsdi atas. Factory menetapkan tepat tiga kolom wajib —model,baseUrl, danprovider— sedangkandisplayNameadalah label yang ditampilkan pemilih. - Periksa ejaan
provider. Nilainya harus persis salah satu darianthropic,openai, ataugeneric-chat-completion-api; bagian pemecahan masalah Factory mencantumkan salah ketik di sana sebagai penyebab error"Invalid provider". - Jalankan
/modeldi CLI. Entri Anda akan muncul di bagian Model kustom tersendiri, di bawah entri bawaan Factory, dengan labeldisplayNameyang Anda tetapkan. Factory memantau file pengaturan, jadi cukup simpan — tidak perlu memulai ulang. - Berikan tugas yang membaca dan mengedit file, bukan sekadar sapaan. Droid mengandalkan pemanggilan tool untuk hampir semua hal yang dilakukannya, dan giliran chat biasa tidak akan menguji bagian tersebut. Setelah itu jalankan
/cost, tempat Factory melaporkan tingkat cache hit — Kunavo menyediakan penandacache_controlmilik Anthropic secara native, dan catatan Factory sendiri menyebutkan bahwa pada provider Chat Completions generik, caching “bervariasi menurut provider dan tidak dapat dijamin”.
Diperiksa terhadap Halaman Custom Models (BYOK) Factory 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 Factory Droid.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/messages \
-H "Authorization: Bearer sk-kn-..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'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 Factory Droid |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | model kerja default — masukkan ke entri provider: "anthropic" |
claude-opus-5 | $3.50 / $17.50 | merencanakan perubahan yang akan mahal jika salah; entri anthropic yang sama |
claude-haiku-4-5 | $0.70 / $3.50 | giliran murah dan triase file, ketika volume menjadi faktor utama; entri anthropic yang sama |
gpt-5-6-sol | $2.00 / $12.00 | pendapat kedua dari keluarga model lain — memerlukan entri generic-chat-completion-api |
Hal yang tidak dapat dijangkau model kustom di Droid
Ada tiga batasan yang dijelaskan di halaman Factory sendiri. Masing-masing memengaruhi ekspektasi Anda terhadap konfigurasi di atas, bukan apakah konfigurasi itu berfungsi.
- Hanya tersedia di aplikasi lokal. Halaman BYOK Factory menyatakan bahwa model kustom tersedia di CLI Droid dan aplikasi desktop, yang membaca
settings.jsonlokal Anda, dan bahwa model tersebut “tidak muncul di platform web atau seluler yang dihosting Factory”. Pekerjaan yang didelegasikan melalui produk yang dihosting tetap menggunakan inferensi yang ditagihkan oleh Factory, apa pun key yang Anda konfigurasi di sini. - Administrator dapat menonaktifkannya. Kontrol enterprise Factory mendokumentasikan
modelPolicy.allowCustomModelsdanallowedBaseUrls, yang masing-masing menonaktifkan BYOK pengguna sepenuhnya atau membatasi semua model kustom ke satu host yang disetujui. Jika Anda menggunakan mesin terkelola, periksa hal itu sebelum menelusuri masalah pada file. - Biaya paket tetap berlaku. Key di sini bersifat tambahan, bukan pengganti — biaya yang dikenakan Factory setelah batas BYOK Anda, serta besarnya batas tersebut, dibahas dalam panduan biaya dan tidak dihitung ulang di halaman ini.
Ada satu jebakan yang perlu diketahui sebelum Anda menyalin konfigurasi dari tempat lain: Factory masih memuat ~/.factory/config.json lama dengan custom_models dan base_url snake_case, lalu menggabungkannya di bawah settings.json. Factory juga mendokumentasikan bahwa ekspansi ${VAR_NAME} tidak berlaku di sana. Key yang ditulis sebagai placeholder di file itu akan dikirim secara literal. Gunakan settings.json.
Pertanyaan umum
Bagaimana cara menambahkan endpoint API kustom ke Factory Droid?
Edit ~/.factory/settings.json (%USERPROFILE%\.factory\settings.json di Windows), lalu tambahkan array customModels. Setiap entri memerlukan tiga kolom wajib — model, baseUrl, dan provider — serta kolom opsional, termasuk displayName, apiKey, authMode, maxOutputTokens, dan extraHeaders. Tidak ada formulir pengaturan untuk ini; file JSON adalah antarmukanya. Factory memantau file tersebut, jadi setelah menyimpan, jalankan /model di CLI dan entri itu akan muncul di bawah judul "Model kustom" tersendiri.
Apakah baseUrl Factory Droid harus diakhiri dengan /v1?
Itu bergantung pada nilai provider, dan dokumentasi Factory menjelaskannya lewat tabel referensi Provider, bukan kalimat. Baris Anthropic mencantumkan https://api.anthropic.com tanpa path, sehingga provider "anthropic" menggunakan origin polos — https://api.kunavo.com untuk Kunavo. Setiap baris Chat Completions dalam tabel tersebut menggunakan root /v1 (https://api.openai.com/v1, https://openrouter.ai/api/v1), sehingga provider "generic-chat-completion-api" menggunakan https://api.kunavo.com/v1. Droid menambahkan route itu sendiri, jadi /v1 pada entri Anthropic menghasilkan /v1/v1/messages dan mengembalikan 404, bukan error autentikasi.
Nilai provider apa yang harus saya gunakan untuk model Claude di endpoint pihak ketiga?
Gunakan "anthropic". Factory mendokumentasikan tiga nilai provider, dan masing-masing memilih protokol wire: "anthropic" untuk Anthropic Messages API di /v1/messages, "openai" untuk OpenAI Responses API, dan "generic-chat-completion-api" untuk OpenAI Chat Completions. Nilai tersebut menunjukkan protokol yang digunakan endpoint, bukan pihak yang menagih Anda. Jadi, gateway yang merespons /v1/messages menggunakan "anthropic", terlepas dari akun pemilik key. Instruksi Factory sendiri adalah menggunakan "generic-chat-completion-api" kecuali jika Anda memanggil API resmi OpenAI atau Anthropic — tetapi itu merujuk pada protokol yang tersedia, dan jika endpoint menyediakan keduanya, Anda dapat memilih salah satunya.
Mengapa Factory Droid melaporkan provider tidak valid atau melewatkan model kustom saya?
Bagian pemecahan masalah Factory menyebutkan tiga penyebab. Model yang tidak muncul di pemilih biasanya disebabkan error sintaks JSON di settings.json atau kolom wajib yang tidak ada — model, baseUrl, atau provider. Error "Invalid provider" disebabkan kesalahan ejaan: nilainya harus persis anthropic, openai, atau generic-chat-completion-api. Error autentikasi menandakan masalah pada key atau base URL, dan saran Factory sendiri adalah memastikan base URL sesuai dengan dokumentasi provider Anda. Pastikan dulu penyebabnya di luar klien menggunakan curl di atas: jika responsnya JSON, berarti endpoint dan key sudah benar, sehingga masalahnya ada di file pengaturan.