Di PicoClaw, "model not found" dan 404 adalah empat kegagalan yang berbeda, dan hanya satu yang terjadi di luar mesin Anda. Tiga terjadi secara lokal — alias yang tidak dapat diselesaikan, backend web PicoClaw sendiri yang menjawab 404, dan string protokol yang tidak dikenal — sedangkan yang keempat adalah 404 upstream yang body-nya memberi tahu apakah rutenya salah atau id modelnya. Membaca teks error terlebih dahulu akan mencegah Anda mengganti protokol untuk memperbaiki kesalahan ketik.
Halaman ini mengasumsikan Anda sudah memiliki entri model_list yang berfungsi dan sebuah kunci; penyiapannya sendiri, serta biaya PicoClaw, dibahas dalam harga dan penyiapan API PicoClaw. Semua yang ada di bawah ini dibaca pada tag rilis v0.3.1, yang dikonfirmasi oleh releases API sebagai versi terbaru pada 21 September 2026, diterbitkan pada 3 Juli 2026. Repositori terakhir kali di-push pada 17 September 2026, jadi main lebih baru daripada tag tersebut — jika hal itu penting, akan disebutkan. Pada 1 Oktober 2026 v0.3.1 masih merupakan rilis terbaru, dan binary rilisnya kemudian dijalankan terhadap endpoint perekaman lokal serta, dengan kunci yang sengaja tidak valid, terhadap Kunavo; apa yang ditunjukkannya dicatat di bawah.
Empat kegagalan, satu frasa
| Lapisan | Yang Anda lihat | Lokasi string tersebut | Apa yang bukan penyebabnya |
|---|---|---|---|
| Resolusi konfigurasi, sebelum permintaan apa pun | model "X" not found in model_list or providers, model "X" not found in model_list (pemanggilnya menambahkan awalan error creating provider:), atau cannot found model 'X' in config | pkg/config/config.go, pkg/providers/legacy_provider.go, cmd/picoclaw/internal/model/command.go | Bukan status HTTP. Bukan masalah kunci, saldo, atau ketersediaan |
| Backend UI web PicoClaw sendiri | HTTP 404, isi respons Model "X" not found in model_list | web/backend/api/models.go, handler set-default-model | Bukan dari API model mana pun — 404 ini berasal dari localhost |
| Resolusi protokol | unknown protocol "X" in model "Y" | Cabang default dari switch protokol di pkg/providers/factory_provider.go | Bukan 404. Hanya dapat dijangkau ketika provider ditetapkan secara eksplisit ke sesuatu di luar katalog |
| Respons upstream | Body 404 milik provider sendiri, dibungkus oleh PicoClaw | anthropic_messages/provider.go atau pkg/providers/common/common.go | Satu-satunya dari empat yang berkaitan dengan endpoint |
Apakah permintaan meninggalkan mesin Anda adalah hal pertama yang perlu ditetapkan, dan string tersebut saja sudah cukup untuk menentukannya. Ketidakcocokan alias adalah kasus yang benar-benar dilaporkan, bukan hipotesis: issue PicoClaw #958 melaporkan error creating provider: model "llama3.2" not found in model_list sementara picoclaw status menunjukkan endpoint Ollama dapat dijangkau dan modelnya ada sebagai llama3.2:latest. Issue tersebut ditutup pada 25 Maret 2026 oleh bot stale-issue repositori. Perhatikan bahwa di repositori ini issue tertutup yang ditandai completed tidak berarti sudah diperbaiki — bot yang sama menutup #1624 dengan teks yang sama.
Teks pembungkus menyebutkan protokol yang benar-benar dijalankan
Karena anthropic dengan api key dan anthropic-messages membangun provider yang berbeda, pembungkus 404-nya berbeda — sehingga string error menjadi diagnosis gratis.
| Pembungkus yang Anda lihat | Provider yang menghasilkannya | Informasi yang diberikannya tentang URL |
|---|---|---|
endpoint not found (404): <body> | Provider Messages native | Permintaan dikirim ke <base>/v1/messages dengan X-API-Key |
API request failed: lalu baris Status: dan Body: | Provider yang kompatibel dengan OpenAI — yang juga digunakan oleh anthropic dengan api key | Permintaan dikirim ke URL yang diakhiri /chat/completions dengan Authorization: Bearer |
Sama, ditambah returned HTML instead of JSON (content-type: ...); check api_base or proxy configuration. | Provider yang kompatibel dengan OpenAI | Anda mencapai server web atau halaman error proxy, bukan API. Hanya 256 byte pertama yang dibaca dan pratinjau dipotong menjadi 128 karakter |
Mengapa saran 404 dari PicoClaw sendiri dapat membawa Anda ke arah yang salah
panduan provider PicoClaw menyarankan Anda beralih ke anthropic-messages ketika "Protokol anthropic yang ada mengembalikan error 404 (yang menunjukkan bahwa endpoint tidak mendukung format yang kompatibel dengan OpenAI)", dan menambahkan catatan yang menjelaskan penamaannya: "Protokol anthropic menggunakan format yang kompatibel dengan OpenAI (/v1/chat/completions), sedangkan anthropic-messages menggunakan format native Anthropic (/v1/messages)." Kedua kutipan tersebut dibaca ulang pada v0.3.1 tanggal 21 September 2026.
Saran tersebut benar untuk 404 rute dan salah untuk 404 model. Saran itu juga berada 294 baris di bawah tabel dalam file yang sama, yang kolom Protocol-nya berisi Anthropic untuk baris anthropic, sehingga menyatakan hal yang berlawanan. Kode menyelesaikan kontradiksi tersebut dengan cara yang tidak terlihat jelas: anthropic adalah dua protokol yang bergantung pada auth_method. Dengan oauth atau token, kode membangun provider SDK Anthropic native dan tabelnya benar; dengan api key, kode jatuh ke provider yang sama dan kompatibel dengan OpenAI yang digunakan oleh openai beserta seluruh keluarganya, sehingga catatannya benar.
provider dan autentikasi | URL permintaan akhir | Header autentikasi | Penanganan /v1 |
|---|---|---|---|
openai dan keluarga yang kompatibel dengan OpenAI | <api_base>/chat/completions | Authorization: Bearer | api_base secara verbatim, garis miring di akhir dipangkas — Anda sendiri yang menyediakan /v1 |
anthropic dengan api key | <base>/v1/chat/completions | Authorization: Bearer | Dipaksakan: garis miring di akhir dipangkas, satu /v1 di akhir dihapus, lalu /v1 ditambahkan kembali |
anthropic-messages | <base>/v1/messages | X-API-Key ditambah Anthropic-Version: 2023-06-01, di-hardcode | /v1 yang sama dan dipaksakan |
anthropic dengan auth_method oauth atau token | Ditangani oleh provider SDK native | Kredensial dari penyimpanan autentikasi | Factory tidak menerapkan normalisasi URL dasar pada cabang ini |
Dua konsekuensi mengikuti secara langsung. Pada keluarga openai, menulis https://api.kunavo.com alih-alih https://api.kunavo.com/v1 akan merakit https://api.kunavo.com/chat/completions — 404 rute yang disebabkan oleh konfigurasi Anda sendiri, dan yang paling umum. Pada kedua protokol Anthropic, kesalahan tersebut mustahil terjadi karena /v1 dipaksakan dalam kedua kasus; tetapi pemaksaan yang sama berarti gateway yang jalurnya tidak boleh diakhiri dengan /v1 sama sekali tidak dapat diekspresikan melaluinya, dan harus menggunakan protokol openai sebagai gantinya. Dokumentasi PicoClaw sendiri menggunakan jalan keluar tersebut untuk vendor yang base-nya berakhir pada segmen versi yang berbeda.
Satu klaim yang perlu dianggap belum terselesaikan. Satu-satunya komentar pada issue PicoClaw #269 menyatakan bahwa mengirim POST ke /v1/chat/completions menghasilkan 404 di Anthropic karena endpoint yang benar adalah /v1/messages. Dokumentasi Anthropic sendiri membantahnya: dokumentasi tersebut menerbitkan lapisan kompatibilitas OpenAI SDK dengan base_url https://api.anthropic.com/v1/ dan menandai header authorization sebagai "Fully supported" (diperiksa pada 21 September 2026), sembari memperingatkan di halaman yang sama bahwa lapisan tersebut "tidak dianggap sebagai solusi jangka panjang atau siap produksi untuk sebagian besar kasus penggunaan". Issue #269 ditutup pada 13 Maret 2026 tanpa komentar penutupan — issues API menunjukkan satu komentar di dalamnya, yaitu analisis di atas, dari akun yang tidak memiliki asosiasi dengan repositori — jadi apa yang sebenarnya menyelesaikannya tidak diketahui. Percayai body 404 Anda sendiri, bukan salah satu akun tersebut.
Ketika 404 adalah id model
Issue PicoClaw #1624 — dibuka pada 16 Maret 2026, ditutup pada 31 Maret 2026 — mencatat body persis untuk id Claude bertitik yang dikonfigurasi sebagai "model": "anthropic/claude-sonnet-4.6": Status: 404 dengan {"error":{"code":"not_found_error","message":"model: claude-sonnet-4.6 was not found. Did you mean claude-sonnet-4-6?"…. Judul dan satu-satunya komentarnya dibaca ulang dari issues API pada 21 September 2026: komentarnya berasal dari bot stale, jadi issue tersebut tertutup tetapi tidak ada bukti perbaikan.
Petunjuk "did you mean" adalah penandanya. Petunjuk itu hanya kembali dari endpoint yang telah menguraikan permintaan, jadi rutenya berfungsi dan tidak ada perubahan protokol yang akan membantu. Alasan PicoClaw tidak memperbaiki ejaan untuk Anda bersifat terbatas dan dapat diperiksa: strings.ReplaceAll(model, ".", "-") muncul sekali dalam repositori, di pkg/providers/anthropic/provider.go baris 219 — provider SDK yang digunakan pada jalur OAuth dan token. Baik anthropic_messages/provider.go maupun openai_compat/provider.go tidak memuatnya. Kedua pernyataan tersebut diperiksa ulang pada v0.3.1 tanggal 21 September 2026, dan penelitian yang mendahului halaman ini mengambil ulang file yang sama dari main pada hari yang sama dengan hasil yang sama. Menjalankan binary v0.3.1 pada 1 Oktober 2026 mengonfirmasinya pada kedua jalur API-key: id bertitik mencapai endpoint persis seperti yang ditulis dan kembali sebagai 404 milik endpoint tersebut (lihat apa yang ditunjukkan oleh eksekusi v0.3.1). Jalur OAuth dan token, satu-satunya jalur yang memiliki penulisan ulang, tidak dijalankan.
File-file PicoClaw sendiri juga tidak sepakat tentang ejaannya: provider_metadata.go mencantumkan id bertanda hubung untuk kedua entri Anthropic, contoh anthropic dalam panduan provider menggunakan id bertitik, dan anthropic-messages mengembalikan default bertitik dari GetDefaultModel — ejaan yang sama yang ditunjukkan oleh #1624 sebagai ditolak. Setiap id Claude API yang dicetak pada ikhtisar model Anthropic menggunakan tanda hubung, dan halaman tersebut mencantumkan Claude Sonnet 4.6 serta Claude Opus 4.6 di bawah "Legacy models (still available)" — jadi penghentian bukan alasan id 4.6 akan menghasilkan 404 di Anthropic saat ini. Itu menyingkirkan satu penyebab, bukan semua penyebab: id bertanda hubung masih dapat ditolak oleh gateway yang tidak menyediakan model tersebut. Salin id dari endpoint yang Anda panggil, bukan dari README.
Tuliskan kedua entri secara eksplisit, dan pertahankan id bertanda hubung. Kunci tidak termasuk dalam file ini — PicoClaw membacanya dari ~/.picoclaw/.security.yml, yang dibahas dalam panduan penyiapan.
{
"agents": {
"defaults": {
"model_name": "kunavo-sonnet"
}
},
"model_list": [
{
"model_name": "kunavo-sonnet",
"provider": "openai",
"model": "claude-sonnet-4-6",
"api_base": "https://api.kunavo.com/v1"
},
{
"model_name": "kunavo-sonnet-native",
"provider": "anthropic-messages",
"model": "claude-sonnet-4-6",
"api_base": "https://api.kunavo.com"
}
]
}Entri pertama menyediakan /v1 sendiri karena keluarga yang kompatibel dengan OpenAI menggabungkan /chat/completions ke api_base secara verbatim. Entri kedua sengaja menghilangkannya untuk menunjukkan bahwa pada anthropic-messages kedua ejaan tersebut dinormalisasi menjadi base yang sama. URL dasar yang dipublikasikan Kunavo adalah https://api.kunavo.com/v1 untuk penyelesaian chat dan https://api.kunavo.com/v1/messages untuk rute Messages. Bahwa kedua rangkaian perhitungan URL tersebut bertemu merupakan aritmetika atas dua rangkaian dokumentasi — dan pada 1 Oktober 2026 kedua entri dijalankan dari v0.3.1 terhadap Kunavo dengan kunci yang sengaja tidak valid: entri openai mencapai /v1/chat/completions dan entri anthropic-messages mencapai /v1/messages, dan masing-masing menerima 401 dari Kunavo. Ini membuktikan URL-nya, bukan permintaan yang selesai: tidak ada klaim di halaman ini tentang integrasi yang telah diuji. Untuk bentuk umum pertanyaan tentang URL dasar, lihat dokumen URL dasar Anthropic.
Gateway juga dapat dengan sengaja menjawab 404, dan itu bukan bug PicoClaw. Kunavo mengembalikan 404 untuk model yang sedang dijeda, dengan body yang menyebutkan model tersebut dan pengganti yang harus digunakan, serta menghilangkan model yang dijeda dari /v1/models; cocokkan bentuk pesan tersebut, bukan nama tertentu, karena model yang dijeda dapat berubah. Kunavo juga tidak menyediakan model embedding, text-to-speech, atau speech-to-text, sehingga entri model_list yang menyebut salah satunya akan menghasilkan 404 apa pun protokol yang Anda pilih — arahkan entri tersebut ke provider lain dan pertahankan hanya entri chat pada kunci Kunavo.
Apa yang ditunjukkan saat menjalankan v0.3.1
Pada 1 Oktober 2026, biner rilis v0.3.1, yang checksum-nya diverifikasi terhadap berkas checksum milik rilis tersebut, dijalankan dalam container sekali pakai dengan satu entri model_list setiap kali dan picoclaw agent -m. Endpoint-nya adalah server perekaman lokal yang berperilaku seperti routing Kunavo pada saat itu — /v1/* adalah API, jalur lain mana pun mengembalikan halaman HTML 404 (kini Kunavo menjawab jalur tersebut dengan 404 JSON yang menyebutkan perbaikannya; lihat baris Kunavo) — serta mengenali claude-sonnet-5 dan claude-sonnet-4-6, tetapi bukan id bertitik; tiga baris terakhir menggunakan api.kunavo.com yang sebenarnya dengan kunci yang sengaja tidak valid, sehingga tidak ada yang ditagihkan.
| Entri | Yang dikirim PicoClaw | Yang dicetak PicoClaw |
|---|---|---|
openai, api_base yang diakhiri dengan /v1 | POST /v1/chat/completions, Authorization: Bearer | Balasannya |
openai, api_base tanpa /v1 | POST /chat/completions — secara verbatim, tanpa tambahan | Permintaan API gagal: … mengembalikan HTML, bukan JSON (content-type: text/html; charset=utf-8); periksa konfigurasi api_base atau proxy. lalu Status: 404 |
anthropic dengan kunci API, dengan atau tanpa /v1 | POST /v1/chat/completions, Authorization: Bearer — /v1 memaksakan keduanya | Balasannya |
anthropic-messages, dengan atau tanpa /v1 | POST /v1/messages, X-API-Key, Anthropic-Version: 2023-06-01 | Balasannya |
anthropic-messages, model claude-sonnet-4.6 | Id persis seperti yang ditulis, termasuk titik | endpoint tidak ditemukan (404): diikuti oleh isi endpoint yang menyebutkan model |
openai, model claude-sonnet-4.6 | Id persis seperti yang ditulis | Permintaan API gagal: lalu Status: 404 dan isi yang menyebutkan model |
| Alias default tanpa entri yang cocok | Tidak ada — tidak ada permintaan | gagal membuat provider: model "…" tidak ditemukan di model_list: model "…" tidak ditemukan di model_list atau providers |
Kunavo, openai, URL dasar https://api.kunavo.com | POST /chat/completions, di luar /v1 | Sebelumnya pada hari itu: pesan mengembalikan HTML, bukan JSON yang sama, Status: 404. Jalankan ulang setelah perubahan Kunavo pada hari yang sama: Permintaan API gagal:, Status: 404, dan isi JSON yang diawali dengan "Not found: /chat/completions. Kunavo's API lives under /v1 — set the base URL to https://api.kunavo.com/v1" |
Kunavo, openai, base https://api.kunavo.com/v1, kunci tidak valid | POST /v1/chat/completions | Permintaan API gagal:, Status: 401, isi Kunci API tidak ada atau tidak valid milik Kunavo |
Kunavo, anthropic-messages, kunci tidak valid | POST /v1/messages | autentikasi gagal (401): periksa kunci API Anda |
Dua hal yang dipastikan oleh pengujian ini, yang sebelumnya hanya dapat diprediksi dari pembacaan sumber. Pembungkus error benar-benar menyebutkan provider yang berjalan, sehingga aman untuk membaca protokol darinya; dan id bertitik dikirim tanpa perubahan pada kedua jalur kunci API, sehingga "model tidak ditemukan" yang mengutip id bertitik diperbaiki dengan menulis ulang id tersebut, bukan dengan mengganti protokol. Yang tidak dicakup: jalur OAuth dan token, UI web peluncur, streaming, serta permintaan apa pun yang selesai melalui Kunavo — baris Kunavo sengaja menggunakan kunci yang tidak valid.
Urutan pemeriksaan tersingkat
- Apakah sesuatu keluar dari mesin? Error terminal yang memuat not found in model_list tanpa status HTTP bersifat lokal. Samakan
agents.defaults.model_namedengan entrimodel_namelalu berhenti di situ. - Apakah asalnya dari localhost? 404 di browser saat memilih model default di UI web PicoClaw adalah ketidakcocokan yang sama, yang disajikan oleh backend PicoClaw sendiri. Tidak ada API model yang terlibat.
- Provider mana yang berjalan? Cocokkan teks pembungkus dengan tabel di atas. Jika pembungkus tidak cocok dengan protokol yang menurut Anda dikonfigurasi, bidang
provideratau awalan model bukan seperti yang Anda kira. - 404 rute atau 404 model? Isi yang menyebutkan model Anda — terutama dengan petunjuk did you mean — adalah 404 model: perbaiki id-nya. Halaman HTML, isi kosong, atau not-found generik adalah 404 rute: turunkan kembali URL gabungan dari tabel sebelum menyentuh hal lain.
- Tanyakan kepada endpoint apa yang disediakannya. PicoClaw tidak dapat melakukan ini pada kedua protokol Anthropic, karena tidak satu pun entri katalognya menetapkan flag fetch. Gunakan
curlterhadap/v1/modelsmilik gateway itu sendiri, atau arahkan gateway yang sama sementara ke protokolopenai. Model tidak ditemukan di seluruh provider membahas metode tersebut, dan Model Anthropic tidak ditemukan 404 membahas kasus ketika id itu sendiri yang bermasalah. - Baru sekarang ganti protokol, dan hanya jika langkah 4 menyatakan 404 rute. Jika yang menghalangi adalah header autentikasi, bukan format wire, token autentikasi versus kunci API menjelaskan perbedaannya.
- Verifikasi ulang dengan satu putaran alat, bukan giliran chat biasa. Konfigurasi yang menjawab pesan sederhana tetap dapat gagal pada pemanggilan alat pertama, jadi tugas terbatas yang Anda gunakan untuk mengonfirmasi perbaikan harus menyertakan satu pemanggilan alat.
Biaya yang ditimbulkan oleh pilihan protokol
Konsekuensi biaya terbesar adalah caching prompt, dan sifatnya struktural, bukan pengaturan. Dalam PicoClaw v0.3.1, satu-satunya kode yang menghasilkan breakpoint cache berada di pkg/providers/anthropic/provider.go, yang hanya dicapai pada jalur OAuth dan token. Dengan kunci API — kasus biasa ketika membawa kunci sendiri — kedua protokol Anthropic tidak mengirim cache_control. Terhadap lapisan kompatibilitas milik Anthropic sendiri, hal ini semakin terasa, karena dokumentasinya menyatakan dengan jelas bahwa "Prompt caching is not supported, but it is supported in the Anthropic SDKs". Terhadap gateway yang menyisipkan breakpoint untuk pemanggil berformat OpenAI, penghematan tersebut dipulihkan di gateway; dokumentasi caching Kunavo menyatakan bahwa gateway melakukan hal itu, dengan cakupan yang tepat: model Claude yang dicapai melalui /v1/chat/completions atau /v1/responses. Halaman yang sama menyatakan bahwa cache_control diteruskan tanpa diterjemahkan pada rute Messages native — sehingga entri anthropic-messages tidak mendapatkan breakpoint dari kedua sisi, dan kolom kedua di bawah hanya menjelaskan entri protokol openai. Apakah gateway lain menyisipkan breakpoint tidak diperiksa, dan semua ini tidak diamati dari dalam PicoClaw.
Nilai tersebut adalah perhitungan token ilustratif, bukan biaya tugas yang diukur dan bukan batas tagihan. Anggap satu giliran agen dengan 10 putaran alat, di mana setiap putaran mengirim ulang awalan sepanjang 20.000 token yang sama (prompt sistem, skema alat, transkrip sejauh ini), menambahkan 1.000 token input baru, dan mengembalikan 600 token output. Rasio tersebut adalah asumsi untuk ilustrasi. Kolom pertama menagihkan input setiap putaran dengan tarif penuh; kolom kedua menagihkan awalan yang diulang dengan tarif pembacaan cache mulai putaran kedua. Tarifnya adalah harga katalog Kunavo yang berlaku per satu juta token.
| Model | Input / output per 1M | Pembacaan cache per 1 juta | Perkiraan, tanpa breakpoint | Perkiraan, awalan di-cache |
|---|---|---|---|---|
| Claude Haiku 4.5 | $0,70 / $3,50 | $0,07 | $0,168 | $0,055 |
| Claude Sonnet 4.6 | $2,10 / $10,50 | $0,21 | $0,504 | $0,164 |
| Claude Opus 5 | $3,50 / $17,50 | $0,35 | $0,840 | $0,273 |
Dengan asumsi ini, Claude Sonnet 4.6 berpindah dari $0,504 menjadi $0,164 untuk pekerjaan yang sama. Baca kolom kedua sebagai optimistis: penulisan cache ditagihkan dengan tarifnya sendiri dan tidak dimodelkan di kedua arah, sedangkan awalan yang berubah setiap putaran sama sekali tidak pernah menjadi cache hit. Kalikan dengan jumlah giliran per hari sebelum menganggap angka mana pun sebagai anggaran.
Pisahkan kedua tagihan tersebut saat Anda menghitungnya. PicoClaw sendiri gratis — repositorinya berlisensi MIT, dan tidak ada protokol, termasuk kedua protokol Anthropic, yang dikunci di balik pembelian apa pun. Biaya berulangnya adalah token model dengan tarif provider Anda. Jumlah dalam katalog Kunavo adalah batas bawah penagihan, bukan batas atas: ketika upstream melaporkan biayanya, tagihan adalah nilai yang lebih besar antara biaya katalog dan biaya upstream dikalikan markup yang berlaku. Top-up minimum adalah $10 dalam kredit prabayar, yaitu minimum pendanaan, bukan biaya tugas atau langganan — lihat detail penagihan.
Vendor langsung, gateway, langganan, atau lokal
| Rute | Unggul ketika | Biayanya bagi Anda di sini |
|---|---|---|
| Kunci API vendor langsung | Satu vendor menyediakan semua model sepanjang hari, dan Anda menginginkan ketentuan caching serta batch milik vendor tersebut | Pada lapisan kompatibilitas Anthropic, caching prompt didokumentasikan sebagai tidak didukung, sehingga protokol anthropic mengorbankannya; anthropic-messages mempertahankan rute native, tetapi PicoClaw tetap tidak mengirim cache_control dengan kunci API |
| Gateway yang kompatibel dengan OpenAI | Anda mengganti model per tugas dan menginginkan satu kunci serta satu saldo, dan Anda memerlukan custom_headers, extra_body, proxy atau streaming agar berfungsi | Anda yang bertanggung jawab atas pertanyaan /v1, karena api_base digunakan secara verbatim. API yang kompatibel dengan OpenAI mencakup bentuk umumnya |
| Jalur gateway native Anthropic | Endpoint Anda hanya menyediakan /v1/messages, atau hanya menerima X-API-Key | Empat bidang model_list yang didokumentasikan tidak pernah sampai ke provider, dan implementasinya tidak memiliki metode streaming — sehingga streaming.enabled dan solusi autentikasi custom_headers sama-sama tidak tersedia |
| Login berbasis langganan | Penggunaan berat dengan tarif tetap lebih cocok bagi Anda daripada token yang ditagihkan berdasarkan pemakaian | PicoClaw tidak menyediakan langganannya sendiri. Cabang OAuth dan token adalah satu-satunya jalur yang menormalisasi id bertitik dan menghasilkan breakpoint cache, tetapi halaman ini tidak menjalankan alur login tersebut atau memverifikasi apa yang diterimanya |
| Model lokal | Pekerjaan kecil atau privat tanpa biaya per permintaan — ollama, lmstudio dan vllm tidak memerlukan kunci | Kesenjangan kemampuan dibandingkan model ter-host, ditambah perangkat kerasnya. PicoClaw tidak menyertakan mesin inferensi: PicoClaw mengakses setiap model melalui HTTP, dan ketiga opsi tersebut adalah server yang kompatibel dengan OpenAI yang Anda jalankan sendiri |
Memilih runtime, bukan rute? PicoClaw vs OpenClaw membandingkan keduanya berdasarkan bentuk deployment. Jika Anda memilih gateway dan ingin mendanai kunci, buat akun Kunavo, lalu kirim satu tugas terbatas yang berisi pemanggilan alat dan baca biaya yang benar-benar dicatat oleh akun Anda.
Pertanyaan umum
Mengapa PicoClaw mengatakan model tidak ditemukan?
Paling sering karena alias tidak dapat diselesaikan secara lokal, sebelum permintaan HTTP apa pun dibuat. PicoClaw v0.3.1 memiliki tiga string pra-HTTP terpisah untuk hal ini: "model %q not found in model_list or providers" di pkg/config/config.go, "model %q not found in model_list" di pkg/providers/legacy_provider.go (yang oleh pemanggilnya diawali dengan "error creating provider:" — bentuk yang ditunjukkan oleh issue #958 dan halaman pemecahan masalah PicoClaw), serta "cannot found model '%s' in config" dalam perintah model. Ketiganya berarti agents.defaults.model_name tidak sama dengan entri model_name mana pun dalam model_list. Contoh yang dilaporkan adalah issue PicoClaw #958, ketika pelapor menetapkan model "llama3.2" sementara picoclaw status menunjukkan model Ollama sebagai llama3.2:latest dan endpoint Ollama dapat dijangkau — providernya baik-baik saja, aliasnya yang tidak. Seorang pemberi komentar melacaknya tepat ke hal tersebut dan pelapor mengonfirmasi bahwa perubahan konfigurasi berhasil; issue itu sendiri kemudian ditutup pada 25 Maret 2026 oleh bot stale repositori, bukan melalui perbaikan kode. Jika pesan tersebut justru memuat status HTTP, berarti permintaan sudah meninggalkan mesin Anda dan penyebabnya berada di upstream, bukan di model_list.
Apa arti 404 anthropic pada PicoClaw?
Baca body-nya sebelum mengubah apa pun, karena dua 404 yang berbeda menggunakan status yang sama. 404 rute berarti URL yang dirakit PicoClaw tidak ada di host tersebut — halaman error kosong atau HTML, atau respons tidak ditemukan generik dari server web. 404 model berarti permintaan mencapai endpoint nyata yang berhasil menguraikannya lalu menolak id model; versi body dari Anthropic adalah not_found_error yang menyebutkan model, dan issue PicoClaw #1624 mencatatnya secara verbatim sebagai "model: claude-sonnet-4.6 was not found. Did you mean claude-sonnet-4-6?". Petunjuk "did you mean" membuktikan bahwa rutenya berfungsi, jadi mengganti protokol tidak akan membantu — perbaiki id modelnya. Dua jalur PicoClaw juga membungkus 404 secara berbeda: provider Messages native mencetak "endpoint not found (404): <body>", sedangkan provider yang kompatibel dengan OpenAI mencetak "API request failed:" diikuti baris Status dan Body, serta varian terpisah ketika body-nya berupa HTML. Dibaca pada tag v0.3.1 tanggal 21 September 2026.
Haruskah saya beralih dari anthropic ke anthropic-messages ketika mendapat 404?
Hanya jika 404 tersebut adalah 404 rute. Dokumentasi provider PicoClaw sendiri menyatakan bahwa anthropic-messages digunakan ketika "The existing `anthropic` protocol returns 404 errors (indicating the endpoint doesn't support OpenAI-compatible format)", dan itu merupakan saran yang tepat untuk endpoint yang hanya menyediakan /v1/messages. Namun, langkah tersebut keliru untuk 404 tingkat model dan membuat Anda kehilangan beberapa hal: pada jalur anthropic-messages, PicoClaw hanya meneruskan api key, URL dasar, user agent, dan batas waktu permintaan ke provider, sehingga custom_headers, extra_body, proxy, dan max_tokens_field tidak pernah sampai; provider tersebut juga tidak mengimplementasikan metode streaming, sehingga streaming.enabled juga tidak dapat berlaku di sana. Header autentikasinya juga berubah — anthropic dengan api key mengirim Authorization: Bearer, sedangkan anthropic-messages mengirim X-API-Key dengan Anthropic-Version 2023-06-01 yang di-hardcode. Jika gateway Anda hanya menerima salah satu header tersebut, hal itu membatasi protokol secara terpisah dari format wire. Diperiksa dalam source PicoClaw v0.3.1 pada 21 September 2026.
Apakah PicoClaw mengirim id model bertitik seperti claude-sonnet-4.6 sesuai penulisannya?
Pada dua jalur API-key, source menyatakan bahwa tidak ada yang menulis ulang id tersebut. Penggantian titik menjadi tanda hubung strings.ReplaceAll(model, ".", "-") hanya terjadi sekali dalam repositori, di pkg/providers/anthropic/provider.go baris 219 — provider berbasis SDK yang digunakan untuk metode autentikasi OAuth dan token. Baik pkg/providers/anthropic_messages/provider.go maupun pkg/providers/openai_compat/provider.go tidak memuatnya, dan kondisi yang sama masih berlaku ketika penelitian mengambil ulang file-file tersebut dari main pada 21 September 2026. Hal ini penting karena GetDefaultModel milik anthropic-messages PicoClaw sendiri mengembalikan ejaan bertitik, contoh untuk protokol anthropic di providers.md menggunakan id bertitik, sedangkan katalog provider_metadata.go mencantumkan id bertanda hubung untuk kedua entri — tiga file miliknya sendiri tidak selaras. Setiap id Claude API yang dicetak pada ikhtisar model Anthropic menggunakan tanda hubung. Menjalankan rilis v0.3.1 pada 1 Oktober 2026 terhadap endpoint perekaman lokal mengonfirmasi hal ini untuk dua jalur API-key: pada anthropic-messages dan openai, id tiba sebagai claude-sonnet-4.6, dan 404 endpoint dibungkus masing-masing sebagai "endpoint not found (404)" dan "API request failed". Jalur OAuth dan token, yaitu jalur yang memiliki penulisan ulang, tidak dijalankan.
api_base saya tampak benar, tetapi saya masih mendapat 404. Apa lagi yang mengubah URL?
Aturan prefix, dan kegagalannya terjadi secara diam-diam. Jika field provider tidak ada dalam entri model_list, PicoClaw hanya memperlakukan segmen pertama yang dipisahkan garis miring dari model sebagai protokol jika segmen tersebut merupakan id provider yang dikenal; jika tidak, seluruh string tetap menjadi id model dan protokol kembali ke literal "openai". Dokumen migrasi PicoClaw sendiri menyatakan hal ini secara lebih longgar — bahwa provider yang dihilangkan membuat segmen pertama menjadi provider — sehingga prefix yang salah ketik tampak seolah-olah akan menghasilkan error, tetapi malah menghasilkan 404 upstream untuk id model yang tidak masuk akal. Jika provider ditetapkan, model dikirim ke upstream sepenuhnya tanpa perubahan, termasuk prefix yang digandakan; komentar dalam kode sendiri memberikan contoh Provider "openai", Model "openai/gpt-4o" yang diselesaikan menjadi id model "openai/gpt-4o". Halaman pemecahan masalah PicoClaw sendiri menggunakan contoh yang sama untuk vendor lain: "model": "free" tanpa provider OpenRouter adalah salah, bentuk yang disarankan adalah "provider": "openrouter" dengan "model": "free", dan "model": "openrouter/free" juga tercantum sebagai bentuk yang didukung, tepat karena openrouter merupakan id provider yang dikenal. Halaman tersebut tidak memiliki nomor versi sendiri; halaman itu berada dalam tree v0.3.1, dibaca pada 21 September 2026.
Dapatkah PicoClaw mencantumkan model yang disediakan endpoint saya?
Tidak untuk kedua protokol Anthropic. Tombol fetch-models di UI web launcher PicoClaw dibatasi oleh flag SupportsFetch dalam tabel opsi provider, dan entri untuk anthropic serta anthropic-messages sama-sama tidak memilikinya. Sebagian besar protokol yang kompatibel dengan OpenAI memang menetapkannya — openai, openrouter, litellm, ollama, lmstudio, vllm, deepseek, groq, dan dua puluh lainnya — jadi kekosongan tersebut khusus untuk dua entri Anthropic, bukan untuk endpoint kustom secara umum. Dengan demikian, langkah "menanyakan endpoint apa yang disediakannya" harus dilakukan dengan curl terhadap rute /v1/models milik gateway, atau dengan mengarahkan gateway yang sama sementara ke protokol openai atau litellm untuk memanfaatkan fitur fetch tersebut. Perhatikan bahwa ini tidak menyatakan apakah API upstream memiliki rute /v1/models; ini hanya menyangkut apa yang dapat dipanggil PicoClaw sendiri. Dibaca di pkg/providers/provider_metadata.go pada tag v0.3.1, 21 September 2026.
Apakah memperbaikinya memerlukan biaya?
Bukan di sisi PicoClaw. Repositori sipeed/picoclaw berlisensi MIT dan file LICENSE-nya berbunyi "MIT License / Copyright (c) 2026 PicoClaw contributors", diperiksa pada 21 September 2026; tidak ada akun, tier, atau protokol berbayar, jadi setiap protokol termasuk kedua protokol Anthropic tersedia dalam binary gratis dan tidak ada yang perlu dibeli dari Sipeed untuk membuka endpoint kustom. Yang memerlukan biaya adalah lalu lintas API model, yang ditagihkan oleh provider mana pun yang Anda konfigurasi, dan PicoClaw tidak menerbitkan tarifnya sendiri. Satu hal yang perlu diperhatikan saat mencari: situs mirip yang tidak berafiliasi menjual paket hosting bulanan dengan nama PicoClaw, sementara footer-nya sendiri menyebutnya sebagai portal independen yang tidak secara resmi berafiliasi dengan Sipeed atau PicoClaw — jadi angka bulanannya adalah harga hosting situs tersebut, bukan harga PicoClaw.
Diperiksa 21 September 2026. Diverifikasi ulang dalam tugas ini pada tag v0.3.1: catatan protokol dan baris vendor Anthropic di panduan provider, cabang anthropic dan lengan default dari factory_provider.go, NormalizeBaseURL, URL anthropic-messages, header dan string 404, penggabungan URL dan header Bearer milik openai_compat, tiga string "not found in model_list" sebelum HTTP, 404 backend web, satu-satunya kemunculan penggantian titik menjadi tanda hubung, kolom SupportsFetch pada tabel opsi provider, serta contoh OpenRouter di docs/operations/troubleshooting.md; ditambah API releases (v0.3.1, dipublikasikan 3 Juli 2026) dan judul, status, tanggal, serta komentar issue #1624, #958, dan #269. Halaman kompatibilitas OpenAI-SDK Anthropic dibaca pada hari yang sama. Dijalankan pada 1 Oktober 2026: biner rilis v0.3.1 dalam container terhadap endpoint perekaman lokal dan, dengan kunci tidak valid, terhadap Kunavo — setiap baris pada tabel di atas. Tidak diverifikasi: apa pun di main selain berkas yang dibandingkan oleh penelitian, apa yang menutup issue #269, jalur OAuth dan token, serta permintaan apa pun yang selesai melalui Kunavo. Tarif token Kunavo berasal dari katalog yang berlaku, dan setiap angka dolar di sini adalah perhitungan token ilustratif.