Providers
ClawRouter
ClawRouter memberi OpenClaw satu kunci dengan cakupan kebijakan untuk beberapa
penyedia model hulu. Plugin clawrouter bawaan hanya menemukan model yang
diizinkan untuk kunci tersebut, merutekan setiap model melalui protokol yang
dideklarasikannya, serta melaporkan anggaran kunci dan penggunaan agregat pada
permukaan penggunaan OpenClaw.
Kredensial hulu dan penerusan khusus penyedia tetap berada di ClawRouter,
sehingga Anda tidak perlu menginstal atau mengautentikasi setiap Plugin penyedia
hulu pada host OpenClaw. Plugin ini disertakan bersama OpenClaw
(enabledByDefault: true); Anda hanya memerlukan kredensial ClawRouter yang
telah diterbitkan.
| Properti | Nilai |
|---|---|
| Penyedia | clawrouter |
| Plugin | bawaan (disertakan dalam OpenClaw) |
| Autentikasi | CLAWROUTER_API_KEY |
| URL bawaan | https://clawrouter.openclaw.ai |
| Katalog model | Dicakup kredensial melalui /v1/catalog |
| Kuota | Anggaran dan penggunaan bulanan melalui /v1/usage |
Memulai
Dapatkan kredensial dengan cakupan tertentu
Mintalah kredensial kepada administrator ClawRouter Anda dengan kebijakan yang mencakup penyedia, model, dan anggaran bulanan yang harus Anda gunakan. Kredensial hanya ditampilkan satu kali saat diterbitkan.
Konfigurasikan OpenClaw
export CLAWROUTER_API_KEY="..."openclaw onboard --auth-choice clawrouter-api-keyopenclaw plugins enable clawrouterclawrouter disertakan dan diaktifkan secara bawaan. Jika konfigurasi Anda
menetapkan plugins.allow, tambahkan clawrouter ke daftar tersebut sebelum
mengaktifkannya. Untuk penerapan khusus, tetapkan
models.providers.clawrouter.baseUrl ke origin ClawRouter; nilai bawaannya
adalah https://clawrouter.openclaw.ai.
Cantumkan model yang diberikan
openclaw models list --all --provider clawrouterGunakan referensi model yang dikembalikan tepat seperti yang ditampilkan.
Referensi tersebut mempertahankan namespace hulu, seperti
clawrouter/openai/gpt-5.5,
clawrouter/anthropic/claude-sonnet-4-6, atau
clawrouter/google/gemini-3.5-flash. Jika agents.defaults.models merupakan
daftar izin dalam konfigurasi Anda, tambahkan setiap referensi ClawRouter
yang dipilih ke daftar tersebut.
Pilih model
openclaw models set clawrouter/<provider>/<model>Anda juga dapat memilih model yang dikembalikan untuk satu kali proses dengan
openclaw agent --model clawrouter/<provider>/<model> --message "...".
Penerapan noninteraktif terkelola
Simpan kunci proksi dalam injeksi rahasia beban kerja dan simpan hanya SecretRef
di openclaw.json. Bidang terkelola kanonis adalah:
| Tujuan | Bidang konfigurasi atau lingkungan |
|---|---|
| Origin perute | models.providers.clawrouter.baseUrl |
| Kredensial | models.providers.clawrouter.apiKey -> SecretRef env |
| Nilai rahasia | CLAWROUTER_API_KEY di lingkungan proses Gateway |
| Model bawaan | agents.defaults.model.primary -> clawrouter/<provider>/<model> |
| Tag beban kerja | models.providers.clawrouter.headers.X-ClawRouter-Project-Id (opsional) |
Sebagai contoh, pengontrol penerapan dapat mengelola tambalan JSON5 berikut:
{ plugins: { entries: { clawrouter: { enabled: true } }, }, models: { providers: { clawrouter: { baseUrl: "https://clawrouter.internal.example", apiKey: { source: "env", provider: "default", id: "CLAWROUTER_API_KEY", }, headers: { "X-ClawRouter-Project-Id": "fakeco", }, }, }, }, agents: { defaults: { model: { primary: "clawrouter/openai/gpt-5.5" }, }, },}Jika penerapan menetapkan plugins.allow, pertahankan entri yang sudah ada dan
tambahkan clawrouter. Validasi dan terapkan tanpa wisaya interaktif:
openclaw config patch --file ./clawrouter.patch.json5 --dry-run --jsonopenclaw config patch --file ./clawrouter.patch.json5Uji coba menyelesaikan SecretRef tetapi tidak pernah mencetak nilainya. Untuk
merotasi kredensial, perbarui Secret eksternal yang menyediakan
CLAWROUTER_API_KEY dan mulai ulang beban kerja Gateway agar lingkungan proses
baru dimuat. Berkas konfigurasi dan referensi model tidak berubah.
Untuk Gateway Docker mandiri yang dibangun dari sumber, ClawRouter sudah
disertakan dalam runtime akar. Pilih hanya Plugin kanal yang memerlukan
pemaketan terpisah, seperti OPENCLAW_EXTENSIONS=clickclack, slack, atau
msteams; lihat
citra yang dibangun dari sumber dengan Plugin terpilih.
Penerapan arsip/perangkat harus memaketkan sumber yang sama yang telah
digabungkan melalui alur artefak mereka sendiri, bukan menggunakan citra OCI.
Kesiapan dan bukti langsung
Pemeriksaan ini membuktikan batas yang berbeda; jangan mengganti satu dengan yang lain:
# Hanya kesehatan proses ClawRouter; tidak ada kredensial atau model hulu yang diuji.curl -fsS https://clawrouter.internal.example/v1/health # Hanya kesiapan mulai Gateway OpenClaw; tidak ada panggilan model yang dilakukan.curl -fsS http://127.0.0.1:18789/readyz # Penemuan katalog dengan cakupan kredensial.openclaw models list --all --provider clawrouter --json # Probe inferensi nyata minimal melalui penyedia ClawRouter yang dikonfigurasi.openclaw models status --probe --probe-provider clawrouter --probe-max-tokens 8 --json # Canary beban kerja menggunakan referensi model yang diberikan secara tepat.openclaw agent --agent main \ --model clawrouter/openai/gpt-5.5 \ --message "Reply exactly: CLAWROUTER_CANARY_OK" \ --jsonGunakan model yang dikembalikan oleh katalog dengan cakupan tersebut, alih-alih
menyalin model contoh tanpa pemeriksaan. Respons /readyz yang berhasil berarti
Gateway dapat melayani permintaan; respons tersebut tidak menyatakan bahwa
ClawRouter, kredensialnya, atau penyedia hulu telah siap. Probe model dan canary
agen merupakan bukti inferensi.
Untuk diagnosis langsung, jalankan canary dan periksa log standar Gateway. Diagnostik transpor model yang hanya memuat metadata menghasilkan baris dengan bentuk seperti:
[model-fetch] start provider=clawrouter api=openai-responses model=openai/gpt-5.5 method=POST url=https://clawrouter.internal.example/v1/responses[model-fetch] response provider=clawrouter api=openai-responses model=openai/gpt-5.5 status=200Plugin mengirim header X-ClawRouter-Client, X-ClawRouter-Agent-Id, dan
X-ClawRouter-Session-Id dengan panjang terbatas saat pengenal tersebut
tersedia. Plugin juga memetakan callId diagnostik panggilan model
(<run-id>:model:<n>) ke X-Request-ID, sehingga peristiwa panggilan model
OpenClaw dapat dihubungkan dengan jejak audit ClawRouter yang hanya memuat
metadata. Nilai yang berada dalam batas 128 karakter untuk ID permintaan
bersifat identik. Nilai yang lebih panjang mempertahankan akhiran :model:<n>
dan hash deterministik agar setiap panggilan tetap memiliki panjang terbatas
dan dapat dihubungkan. Metadata penerapan statis seperti
X-ClawRouter-Project-Id dapat ditetapkan dalam peta headers penyedia.
Header atribusi agen dan sesi mempertahankan batas terpisah sebesar 256 karakter.
ID permintaan otomatis yang memuat karakter di luar kumpulan pengenal ASCII
ClawRouter menggunakan bentuk deterministik dengan panjang terbatas yang sama.
Header eksplisit yang dikonfigurasi, termasuk variasi kapitalisasi apa pun dari
X-Request-ID, diutamakan daripada nilai otomatis. Diagnostik transpor mencatat
metadata perutean dan respons; diagnostik tersebut tidak mencatat kredensial,
ID permintaan, prompt, atau penyelesaian. Peristiwa audit milik ClawRouter
menyediakan penyedia hulu yang dipilih dan status retensi konten.
Penemuan model
GET /v1/catalog mengembalikan { providers: [...] }, dengan setiap entri
penyedia mencantumkan models[] miliknya sendiri (beserta ID hulu, kemampuan,
dan harga) serta rute permintaan yang didukungnya. OpenClaw tidak menyertakan
daftar tetap kedua untuk model ClawRouter. Model katalog diumumkan sebagai model
OpenClaw ketika:
- kebijakan kredensial memberikan akses ke penyedianya;
- model katalog mengumumkan kemampuan LLM yang didukung (
llm.responses,llm.chat,llm.messages, ataullm.streamdengan rute streaming yang cocok); dan - penyedia mengekspos rute yang cocok untuk salah satu transpor di bawah ini.
Menambahkan model ke penyedia ClawRouter yang didukung tidak memerlukan rilis OpenClaw: penyegaran katalog berikutnya (di-cache selama 60 detik untuk setiap cakupan kredensial) akan menemukannya. Model yang memerlukan protokol jaringan baru harus mendapatkan dukungan Plugin terlebih dahulu.
Protokol dan Plugin penyedia
ClawRouter mengelola kredensial hulu; katalognya memberi tahu OpenClaw transpor mana yang harus digunakan, sehingga Anda tidak perlu menginstal Plugin autentikasi dari setiap perusahaan penyedia hulu.
| Kemampuan/rute katalog | Transpor OpenClaw |
|---|---|
llm.responses (penyedia kompatibel OpenAI) |
openai-responses |
llm.chat (penyedia kompatibel OpenAI) |
openai-completions |
llm.messages + rute anthropic.messages |
anthropic-messages |
llm.stream + rute streaming google.generate_content |
google-generative-ai |
Plugin juga menerapkan kebijakan pemutaran ulang dan skema alat yang cocok untuk keluarga tersebut (kompatibilitas skema alat OpenAI/DeepSeek/Gemini; kebijakan pemutaran ulang Anthropic dan Google Gemini yang asli). Penyedia katalog yang hanya mengekspos format permintaan yang tidak didukung sengaja tidak diumumkan sebagai model teks OpenClaw. Normalkan penyedia tersebut ke salah satu kontrak yang didukung di ClawRouter, alih-alih mengirim payload yang tidak kompatibel.
Kuota dan penggunaan
Respons /v1/usage ClawRouter mengisi permukaan penggunaan penyedia OpenClaw
yang normal: total permintaan, token, dan pengeluaran, ditambah jendela anggaran
bulanan ketika kunci memiliki batas. Kunci tanpa pengukuran tetap menampilkan
penggunaan agregat tanpa jendela persentase.
Pencarian kuota menggunakan kunci dengan cakupan yang sama seperti penemuan model. Kegagalan pencarian kuota tidak memblokir eksekusi model.
Periksa snapshot langsung dengan:
openclaw status --usageopenclaw models statusSnapshot penyedia yang sama tersedia untuk /status dalam obrolan dan UI
penggunaan OpenClaw. Anggaran berlaku di seluruh kebijakan, sehingga permintaan
yang dibuat oleh klien lain menggunakan kebijakan ClawRouter yang sama dapat
mengubah persentase yang tersisa.
Pemecahan masalah
| Gejala | Pemeriksaan |
|---|---|
| Tidak ada model ClawRouter | Pastikan Plugin diaktifkan dan diizinkan oleh plugins.allow, lalu periksa bahwa kredensial aktif dan memberikan akses ke setidaknya satu penyedia yang siap. |
| Model ClawRouter yang dikonfigurasi hilang | Periksa dukungan kemampuan dan rute /v1/catalog miliknya. Kontrak transpor yang tidak didukung sengaja difilter. |
Unknown model: clawrouter/... |
Tambahkan referensi katalog yang tepat ke agents.defaults.models ketika peta konfigurasi tersebut digunakan sebagai daftar izin. |
401 atau 403 dari katalog atau penggunaan |
Terbitkan ulang atau ubah cakupan kredensial ClawRouter; OpenClaw tidak beralih ke kunci penyedia hulu sebagai cadangan. |
| Panggilan model gagal setelah penemuan | Periksa koneksi penyedia dan kesehatan hulu di ClawRouter, lalu coba lagi setelah status kesiapannya pulih. |
| Penggunaan memiliki total tanpa persentase | Kebijakan tidak diukur; tambahkan anggaran bulanan di ClawRouter untuk menampilkan jendela persentase. |
Perilaku keamanan
- Penemuan katalog dibatasi pada kunci proksi yang dikonfigurasi dan di-cache per cakupan kredensial (direktori agen, direktori ruang kerja, id profil autentikasi, dan URL dasar).
- Kunci proksi hanya disertakan saat pengiriman permintaan; kunci tersebut tidak disimpan dalam metadata model.
- Nilai atribusi otomatis dan korelasi permintaan dipangkas, dan nilai yang mengandung karakter kontrol ditolak sebelum pengiriman. Nilai atribusi dibatasi hingga 256 karakter; id permintaan dibatasi hingga 128 karakter.
- Diagnostik transportasi model hanya berisi metadata dan tidak pernah menyertakan kunci proksi atau konten model.
- Id model asli Anthropic dan Gemini ditulis ulang menjadi id upstream masing-masing hanya saat pengiriman.
- Baris katalog yang tidak didukung atau tidak diberi izin ditolak secara tertutup dan tidak dapat dipilih.