Bagian Basis Pengetahuan ▾

Navigasi

▸ Mulai di sini Berdasarkan peran

Kategori

Alat 52
Glosarium 12

Tools

Factory Droid + JoinGonka Gateway: BYOK pada model jaringan Gonka

Factory Droid (perintah droid) adalah agen kode terminal dari perusahaan Factory. Agen ini memahami proyek, memperbaiki file, menjalankan perintah dan tes, serta mampu merencanakan pekerjaan besar. Terdapat dua mode: droid interaktif di terminal dan droid exec satu kali — untuk tugas dari skrip atau CI.

Droid beroperasi pada model dari katalog Factory, namun memiliki fitur BYOK (Bring Your Own Key): array customModels di ~/.factory/settings.json menerima endpoint apa pun yang mendukung OpenAI Chat Completions. JoinGonka Gateway adalah salah satunya, sehingga koneksi hanya membutuhkan satu perintah installer — dan agen akan bekerja pada model jaringan terdesentralisasi Gonka: DeepSeek V4 Flash, GLM-5.3 Flash, dan MiniMax M2.7, semuanya dengan satu harga — $0.0069 per juta token input.

Satu syarat yang perlu diketahui: mode interaktif Droid mengharuskan login ke akun Factory, dan penggunaan model sendiri tidak mengubah hal ini. Perintah droid exec pada model BYOK dalam pengujian kami berhasil berjalan tanpa login — detail ada di bagian BYOK. Perintah, file, dan pesan di bawah ini telah diverifikasi melalui pengujian langsung Droid 0.225.1 melalui gateway pada 23 September 2026. Setelah konfirmasi alamat, akun Anda akan menerima 3M token gratis — cukup untuk mencoba semuanya sendiri.

Mulai cepat: instalasi dan satu perintah

Langkah 1: pasang Droid. Cara resmi dari dokumentasi Factory:

# macOS and Linux
curl -fsSL https://app.factory.ai/cli | sh

# Homebrew
brew install --cask droid

# Windows (PowerShell)
irm https://app.factory.ai/cli/windows | iex

# via npm
npm install -g droid

Skrip ini menaruh binary di ~/.local/bin dan memberi tahu cara menambahkan direktori tersebut ke PATH; di Linux dokumentasinya meminta Anda memasang paket xdg-utils juga. Verifikasi — droid --version.

Langkah 2: dapatkan kunci. Daftar di gate.joingonka.ai/register, konfirmasi alamat Anda, lalu buat kunci dengan awalan jg- di bagian «Kunci API». Satu kunci dan satu saldo berlaku untuk semua model di jaringan.

Langkah 3: jalankan penginstal.

npx @joingonka/setup --tool droid

Penginstal akan meminta kunci — kunci tidak diteruskan lewat argumen baris perintah agar tidak tersimpan di riwayat shell — dan melakukan empat hal:

  • menambahkan entri ke array customModels di file ~/.factory/settings.json (di Windows — %USERPROFILE%\.factory\settings.json) untuk setiap model di jaringan: alamat gateway, tipe penyedia generic-chat-completion-api, kunci secara literal, jendela konteks dan batas respons yang sebenarnya; file akan mendapat izin 600;
  • menetapkan model default — sessionDefaultSettings.model — ke DeepSeek V4 Flash, tetapi hanya jika belum dipilih atau menunjuk ke model yang sudah tidak ada di jaringan. Model dari katalog Factory atau entri BYOK milik orang lain tidak akan diambil alih, melainkan hanya diberi tahu cara beralih;
  • menyimpan salinan file sebelumnya, sementara entri milik orang lain di customModels, pengaturan lain, dan komentar dibiarkan apa adanya; file yang tidak dapat diurai tidak akan ditimpa, melainkan diberi tahu apa yang harus diperbaiki;
  • di akhir, mengirim permintaan langsung ke gateway dan memberi tahu secara jelas apakah kunci, alamat, dan model diterima.

Model default lain diatur dengan flag --model dengan singkatan deepseek, glm, atau minimax — model yang ditentukan secara eksplisit selalu ditulis. Untuk dotfile dan server tersedia mode tanpa pertanyaan, di mana kunci diambil dari variabel lingkungan:

JOINGONKA_API_KEY=jg-your-key npx @joingonka/setup --tool droid --model glm --non-interactive

Droid tidak perlu dijalankan ulang: perubahan di settings.json terdeteksi otomatis. Baris ! Could not verify right now dengan respons 429 di akhir berarti model sedang sibuk, bukan kesalahan konfigurasi — konfigurasinya sudah tersimpan.

Pengaturan manual: customModels di settings.json

Semua yang dilakukan installer bisa Anda kerjakan sendiri secara manual. Pengaturan pengguna Droid tersimpan di ~/.factory/settings.json; jika file tersebut belum ada, Droid akan membuatnya saat pertama kali dijalankan. Untuk jaringan Gonka, Anda memerlukan array customModels dan model default:

{
  "customModels": [
    {
      "model": "deepseek-ai/DeepSeek-V4-Flash-0731",
      "id": "custom:deepseek-ai/DeepSeek-V4-Flash-0731",
      "displayName": "DeepSeek V4 Flash (Gonka)",
      "baseUrl": "https://gate.joingonka.ai/v1",
      "apiKey": "jg-your-key",
      "provider": "generic-chat-completion-api",
      "maxOutputTokens": 32768,
      "maxContextLimit": 380000,
      "noImageSupport": true
    },
    {
      "model": "zai-org/GLM-5.3-Flash",
      "id": "custom:zai-org/GLM-5.3-Flash",
      "displayName": "GLM 5.3 Flash (Gonka)",
      "baseUrl": "https://gate.joingonka.ai/v1",
      "apiKey": "jg-your-key",
      "provider": "generic-chat-completion-api",
      "maxOutputTokens": 8192,
      "maxContextLimit": 390000,
      "noImageSupport": true
    },
    {
      "model": "MiniMaxAI/MiniMax-M2.7",
      "id": "custom:MiniMaxAI/MiniMax-M2.7",
      "displayName": "MiniMax M2.7 (Gonka)",
      "baseUrl": "https://gate.joingonka.ai/v1",
      "apiKey": "jg-your-key",
      "provider": "generic-chat-completion-api",
      "maxOutputTokens": 8192,
      "maxContextLimit": 200000,
      "noImageSupport": true
    }
  ],
  "sessionDefaultSettings": {
    "model": "custom:deepseek-ai/DeepSeek-V4-Flash-0731"
  }
}
FieldNilaiYang penting
modelid model di jaringanDikirim apa adanya di dalam request, termasuk prefix vendornya
idcustom: + id modelNama tetap entri ini untuk flag -m dan model default. Tanpa field ini, Droid menyusun namanya sendiri dari displayName dan nomor urut
displayNamelabel apa punNama inilah yang tampil di daftar /model
baseUrlhttps://gate.joingonka.ai/v1Wajib diakhiri /v1: path /chat/completions ditambahkan sendiri oleh Droid
apiKeykunci jg-… AndaLiteral adalah pilihan paling andal. Referensi seperti ${JOINGONKA_API_KEY} juga boleh, tapi variabelnya harus ada di environment tempat Droid dijalankan, kalau tidak request tidak akan terkirim
providergeneric-chat-completion-apiTipe untuk OpenAI Chat Completions — persis seperti ini, huruf kecil; seluruh panduan ini sudah diuji dengannya
maxOutputTokens32768, 8192, 8192Batas atas panjang respons tiap model di jaringan
maxContextLimit380000, 390000, 200000Jendela konteks model; field ini dijelaskan di skema pengaturan Factory
noImageSupporttrueModel di jaringan ini berbasis teks; flag ini mematikan lampiran gambar untuk entri tersebut

Model default disimpan di sessionDefaultSettings.model dan merujuk ke entri lewat id-nya. Dokumentasi Factory juga menyebut key model di root file, tapi pada uji coba kami, droid exec tanpa flag -m justru mengambil model dari sessionDefaultSettings — termasuk setelah nilainya diganti.

Kunci API tersimpan sebagai teks biasa di file: amankan dengan chmod 600 ~/.factory/settings.json dan jangan pindahkan entri berisi kunci ke .factory/settings.json milik proyek — file itu biasanya ikut masuk ke repositori. Dan kalau setelah Droid dijalankan file terlihat berbeda, itu wajar: setiap kali menyimpan pengaturan apa pun, Droid menulis ulang seluruh file — merapikan urutan key, menambahkan field index pada entri, dan tidak menyimpan komentar. Izin 600 tetap bertahan, dan installer bisa memperbarui entri semacam itu tanpa masalah.

BYOK di Droid: pemilihan model dan persyaratan akun Factory

Droid menampilkan entri buatannya secara terpisah dari katalog: menurut dokumentasi, dalam mode interaktif perintah /model menampilkannya di bagian Custom models, dan Ctrl+N menelusuri model langsung di kolom input. Dalam mode sekali jalan, model ditentukan oleh flag -m dengan nilai dari kolom id, garis miring ditulis apa adanya: droid exec -m custom:zai-org/GLM-5.3-Flash "…".

Jika salah menulis nama, Droid akan menjawab Invalid model dan mendaftar semua model yang dikenali, termasuk model buatan Anda dalam bentuk custom:… (display name): sekaligus terlihat bahwa entri berhasil dimuat. Nama bergaya dokumentasi Factory, dari label dan nomor (custom:DeepSeek-V4-Flash-(Gonka)-0), tidak akan berfungsi dengan id eksplisit — dalam uji coba kami, hasilnya sama saja: Invalid model.

Apa yang memerlukan akun Factory. Model buatan sendiri menghilangkan urusan pembayaran token, tetapi bukan urusan masuk ke produk itu sendiri. Inilah yang ditunjukkan uji coba Droid 0.225.1 tanpa login akun:

SkenarioPerlu login Factory?Yang terjadi dalam uji coba
droid interaktifYaTepat setelah splash screen — layar «Please login with your Factory account to continue» dengan opsi Login dan Exit; tanpa akun tidak bisa lanjut
droid exec pada model BYOKMenurut dokumentasi — ya, melalui kunci FACTORY_API_KEYKetiga model jaringan merespons; pada output JSON factory_credits: 0, di log — peringatan tentang fitur cloud yang tidak tersedia
Fitur cloud: sinkronisasi sesi dengan versi web, konektor, batas paketYaPermintaan ke API Factory mendapat 401 dan dilewati — tidak memengaruhi kerja agen

Untuk bekerja di antarmuka, buat akun Factory dan login melalui browser — opsi Login atau perintah /login; di mesin tanpa browser, dokumentasi menyarankan kunci dari pengaturan akun pada variabel FACTORY_API_KEY. Menjalankan droid exec tanpa login praktis untuk mencoba, tetapi tidak dijelaskan secara resmi — jangan mengandalkannya di CI. Menurut halaman tarif Factory, BYOK termasuk dalam semua paket individual dengan batas gratis, dan di atas batas tersebut penggunaan BYOK ditagih sesuai ketentuan paket; ketentuan terkini ada di factory.ai/pricing. Token model jaringan dibayar terpisah — dari saldo JoinGonka.

Model mana yang harus dipilih. Harga semua model di jaringan sama, jadi pilihannya soal perilaku. Beginilah mereka bekerja dalam uji coba droid exec kami pada satu tugas — membaca file dan menemukan kesalahan:

ModelKonteks / jawabanPerilaku di Droid
DeepSeek V4 Flash380K / 32768Jawaban benar dalam dua langkah. Plafon jawaban terbesar di jaringan, karena itu installer memilihnya secara default. Dengan --auto low, ia juga memperbaiki file dan menjalankannya sendiri untuk verifikasi
GLM-5.3 Flash390K / 8192Jawaban benar dalam dua langkah, sekitar 20 detik. Model penalaran: sebagian plafon jawaban dipakai untuk penalaran
MiniMax M2.7200K / 8192Jawaban benar dalam dua langkah, 10-20 detik. Penalaran model datang terpisah dari jawaban, dan pada output droid exec hanya jawabannya saja yang tersisa

Flag -r (tingkat penalaran) tidak berlaku untuk model BYOK, menurut dokumentasi Factory. Mengapa DeepSeek V4 Flash dipilih secara default, dibahas di ulasan model.

Verifikasi: apa yang harus terjadi

Letakkan di direktori kosong sebuah file calc.py dengan kesalahan yang jelas — misalnya, luas persegi panjang yang sisi-sisinya dijumlahkan alih-alih dikalikan — lalu minta Droid menemukannya:

droid exec "Read the file calc.py in the current project directory and tell me in one sentence whether it has a bug."

Tanpa flag, droid exec berjalan dalam mode hanya-baca: file bisa dilihat, tapi tidak bisa diubah. Agen akan memanggil sendiri alat pembaca dan menjawab secara substantif, dengan menyebutkan ekspresi yang salah. Dengan flag -o json, jawaban datang sebagai satu objek yang praktis diurai dengan skrip (output dipersingkat):

{"type":"result","subtype":"success","is_error":false,"duration_ms":2239,"num_turns":2,
 "result":"Yes, the file has a bug: the rectangle area is computed as the sum of the side lengths, but it should be their product (width * height). …",
 "usage":{"input_tokens":19016,"output_tokens":146,"factory_credits":0,"ttft_ms":747}}

Field factory_credits: 0 menegaskan bahwa pekerjaan berjalan di model Anda, bukan di kredit Factory. Agar agen bisa mengubah file, tambahkan tingkat otonomi: droid exec --auto low "Fix the bug in calc.py and change nothing else." — dalam pengujian kami, DeepSeek V4 Flash membaca file, mengganti penjumlahan menjadi perkalian, dan menjalankan sendiri skrip untuk memastikan yang tercetak adalah 12.

Pemeriksaan ketiga — dari sisi gateway: di dasbor pada bagian "Penggunaan" permintaan akan muncul dalam rincian "Per model", dan di blok "Per kunci" waktu permintaan terakhir akan diperbarui.

Jika ada yang tidak beres, perhatikan keunikan Droid: di konsol droid exec hanya mencetak Error during droid execution: Exec failed (dalam JSON — "result":"Exec failed"), sedangkan penyebab sebenarnya tetap ada di log. Cara mengambilnya dengan satu perintah:

grep agent_error_count ~/.factory/logs/droid-log-single.log | grep -o '"errorMessage":"[^,]*' | tail -1
Yang terlihatArtinyaYang harus dilakukan
401 Invalid API keyGateway tidak menerima kunciPeriksa apiKey pada entri model: kunci utuh, tanpa spasi. Jika di sana ada referensi ${…} — variabelnya harus ada di environment tempat Droid dijalankan
405 <html>…405 Not Allowed…baseUrl tidak memiliki sufiks /v1Alamatnya harus persis https://gate.joingonka.ai/v1
400 Model "…" not found. Available: …Salah ketik di field model, paling sering prefiks vendor tidak adaSalin id dari daftar yang diberikan gateway di pesan itu sendiri
Invalid model: custom:… dan daftar modelFlag -m atau model default merujuk ke entri yang tidak adaAmbil nama dari bagian Available custom models. Model jaringan tidak ada di sana — Droid tidak memuat entri: periksa sintaks JSON
429 Model "…" is currently overloaded in the Gonka network (rate limit)Model di jaringan saat ini tidak punya kapasitas bebasDroid mengulang permintaan sendiri — pada kami lima percobaan dalam sekitar dua menit. Jika tidak berhasil — ganti model dengan flag -m; status jaringan ada di halaman status
402Saldo habisIsi ulang akun di bagian "Billing"; kuncinya sendiri tetap berfungsi
«Please login with your Factory account to continue»Mode interaktif memerlukan akun FactoryMasuk lewat Login atau bekerja lewat droid exec
Jeda lama sebelum jawaban pertamaAntrean ke model pada jam sibukTunggu atau ganti model dengan flag -m

Berapa biayanya

Alat agen menghabiskan token secara berbeda dari chat: untuk setiap kalimat Anda, Droid menambahkan sistem prompt, deskripsi alat, dan snapshot direktori kerja, dan tugas memakan beberapa putaran. Dalam pengujian kami, setiap putaran memakan sekitar 9,5 ribu token input sebelum pertanyaan Anda: tugas «baca file dan temukan kesalahan» memakan dua putaran dan sekitar 19 ribu token, «perbaiki dan periksa» — empat putaran dan sekitar 44 ribu. Oleh karena itu, harga per token di sini sangat menentukan.

Melalui JoinGonka Gateway, token berharga $0.0069 per juta di input dan $0.021 per juta di output — harga sama untuk semua model jaringan dan diperbarui di halaman ini dari sumber langsung.

SkenarioPenggunaanMelalui Gateway
Tugas sekali jalan: baca, perbaiki, periksa19-44K tokensepersekian sen
Hari kerja aktif3-7M tokenbeberapa sen
Bulan pengembangan aktif~150M tokensekitar satu dolar

Estimasi di kolom kanan berdasarkan harga per September 2026. Sebagai perbandingan — bagaimana cara membayar model di Droid:

MetodeModel pembayaranApa yang dibatasi
Model dari katalog Factoryberlangganan paket Pro, Plus, atau Maxbatas bergulir selama 5 jam, 7 dan 30 hari; di luar itu — pool Droid Core atau pembelian Extra Usage
BYOK dengan kunci vendorper token sesuai harga vendortagihan naik seiring durasi sesi; harga tergantung pada model yang dipilih
JoinGonka Gateway (BYOK)per token, saldo prabayarpenggunaan terlihat di dashboard, tidak ada langganan atau kuota di gateway; syarat BYOK di sisi Factory sama dengan kunci pribadi mana pun

Perintah /cost di antarmuka Droid menampilkan statistik sesi, sedangkan penggunaan akurat dan saldo untuk model BYOK ada di dashboard gateway, di bagian «Penggunaan» dan «Penagihan». Buat kunci terpisah untuk Droid — lalu lintasnya akan terlihat sebagai baris terpisah.

Hal yang perlu diperhatikan

Otonomi. Dalam mode sekali jalan, Droid secara default hanya membaca, sedangkan hak diperluas lewat tingkatan: --auto low — mengubah file, --auto medium — plus memasang dependensi, build, tes, dan commit lokal, --auto high — hingga push dan deploy. Flag --skip-permissions-unsafe mencabut semua pemeriksaan — hanya untuk kontainer sekali pakai. Di mode interaktif, tingkatannya diganti dengan Ctrl+L, sedangkan tingkat awal ditentukan oleh sessionDefaultSettings.autonomyLevel; secara default nilainya off — semuanya dengan konfirmasi.

Tanda tangan di commit. Pengaturan includeCoAuthoredByDroid aktif secara default: Droid menambahkan baris co-author ke pesan commit. Jika tidak diperlukan, tulis "includeCoAuthoredByDroid": false di settings.json.

Di mana sesi disimpan. Setelah masuk ke akun, Droid secara default mencerminkan sesi CLI ke versi web Factory — ini diatur oleh cloudSessionSync. Kunci BYOK, menurut dokumentasi, tetap lokal; jika percakapan pun harus tetap di mesin, setel "cloudSessionSync": false. Gateway dari sisinya tidak menyimpan isi prompt dan jawaban — di statistik hanya tersisa agregat pemakaian.

Pembaruan. Instalasi lewat skrip diperbarui sendiri; versi bisa dipatok dengan variabel FACTORY_DROID_AUTO_UPDATE_ENABLED=false atau perintah droid update --version <version>; build dari npm tidak diperbarui sendiri. Setelah pembaruan, pastikan dengan satu droid exec bahwa model jaringan masih ada.

Gambar. Model jaringan bersifat teks; untuk screenshot, simpan di dekatnya entri dengan model yang bisa vision, di penyedia lain.

Jika bekerja tanpa akun vendor itu prinsip. Model jaringan yang sama bisa dihubungkan ke agen terminal terbuka yang tidak butuh login — misalnya ke OpenCode dengan installer yang sama, memakai flag --tool opencode.

Factory Droid terhubung ke JoinGonka Gateway lewat BYOK: perintah npx @joingonka/setup --tool droid menambahkan entri DeepSeek V4 Flash, GLM-5.3 Flash, dan MiniMax M2.7 ke dalam customModels pada file ~/.factory/settings.json (provider: generic-chat-completion-api, baseUrl dengan /v1, kunci jg-…, id eksplisit dengan bentuk custom:<model>) dan menetapkan DeepSeek V4 Flash di sessionDefaultSettings.model. Mode interaktif memerlukan akun Factory; droid exec pada model BYOK di run 0.225.1 tetap berjalan tanpanya, dengan factory_credits: 0. Pemeriksaannya — droid exec -o json dan bagian «Penggunaan» di dasbor, sedangkan penyebab kegagalan Droid tidak ditulis ke konsol, melainkan ke ~/.factory/logs/droid-log-single.log.

Ingin tahu lebih banyak?

Jelajahi bagian lain atau mulai hasilkan GNK sekarang.

Dapatkan kunci dan token gratis →