Gateway
Konfigurasi — alat dan penyedia kustom
tools.* kunci konfigurasi dan penyiapan penyedia khusus / URL dasar. Untuk agen, saluran, dan kunci konfigurasi tingkat atas lainnya, lihat Referensi konfigurasi.
Alat
Profil alat
tools.profile menetapkan daftar izin dasar sebelum tools.allow/tools.deny:
| Profil | Mencakup |
|---|---|
minimal |
hanya session_status |
coding |
group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, video_generate |
messaging |
group:messaging, sessions_list, sessions_history, sessions_send, session_status |
full |
Tidak ada pembatasan (sama seperti tidak diatur) |
Grup alat
| Grup | Alat |
|---|---|
group:runtime |
exec, process, code_execution (bash diterima sebagai alias untuk exec) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes |
group:agents |
agents_list, update_plan |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
Semua alat bawaan (mengecualikan Plugin penyedia) |
tools.allow / tools.deny
Kebijakan izinkan/tolak alat global (tolak menang). Tidak peka huruf besar/kecil, mendukung wildcard *. Diterapkan bahkan ketika sandbox Docker nonaktif.
{
tools: { deny: ["browser", "canvas"] },
}
write dan apply_patch adalah id alat terpisah. allow: ["write"] juga mengaktifkan apply_patch untuk model yang kompatibel, tetapi deny: ["write"] tidak menolak apply_patch. Untuk memblokir semua mutasi file, tolak group:fs atau cantumkan setiap alat yang memutasi secara eksplisit:
{
tools: { deny: ["write", "edit", "apply_patch"] },
}
tools.byProvider
Batasi alat lebih lanjut untuk penyedia atau model tertentu. Urutan: profil dasar → profil penyedia → izinkan/tolak.
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
"openai/gpt-5.4": { allow: ["group:fs", "sessions_list"] },
},
},
}
tools.elevated
Mengontrol akses exec yang ditingkatkan di luar sandbox:
{
tools: {
elevated: {
enabled: true,
allowFrom: {
whatsapp: ["+15555550123"],
discord: ["1234567890123", "987654321098765432"],
},
},
},
}
- Penimpaan per agen (
agents.list[].tools.elevated) hanya dapat semakin membatasi. /elevated on|off|ask|fullmenyimpan status per sesi; direktif inline berlaku untuk satu pesan.execyang ditingkatkan melewati sandboxing dan menggunakan jalur escape yang dikonfigurasi (gatewaysecara default, ataunodeketika target exec adalahnode).
tools.exec
{
tools: {
exec: {
backgroundMs: 10000,
timeoutSec: 1800,
cleanupMs: 1800000,
notifyOnExit: true,
notifyOnExitEmptySuccess: false,
applyPatch: {
enabled: false,
allowModels: ["gpt-5.5"],
},
},
},
}
tools.loopDetection
Pemeriksaan keamanan loop alat dinonaktifkan secara default. Atur enabled: true untuk mengaktifkan deteksi. Pengaturan dapat didefinisikan secara global di tools.loopDetection dan ditimpa per agen di agents.list[].tools.loopDetection.
{
tools: {
loopDetection: {
enabled: true,
historySize: 30,
warningThreshold: 10,
criticalThreshold: 20,
globalCircuitBreakerThreshold: 30,
detectors: {
genericRepeat: true,
knownPollNoProgress: true,
pingPong: true,
},
},
},
}
historySizenumberRiwayat panggilan alat maksimum yang disimpan untuk analisis loop.
warningThresholdnumberAmbang pola berulang tanpa progres untuk peringatan.
criticalThresholdnumberAmbang berulang yang lebih tinggi untuk memblokir loop kritis.
globalCircuitBreakerThresholdnumberAmbang penghentian paksa untuk setiap eksekusi tanpa progres.
detectors.genericRepeatbooleanPeringatkan pada panggilan alat yang sama/argumen yang sama secara berulang.
detectors.knownPollNoProgressbooleanPeringatkan/blokir pada alat polling yang dikenal (process.poll, command_status, dll.).
detectors.pingPongbooleanPeringatkan/blokir pada pola pasangan tanpa progres yang bergantian.
tools.web
{
tools: {
web: {
search: {
enabled: true,
apiKey: "brave_api_key", // or BRAVE_API_KEY env
maxResults: 5,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
fetch: {
enabled: true,
provider: "firecrawl", // optional; omit for auto-detect
maxChars: 50000,
maxCharsCap: 50000,
maxResponseBytes: 2000000,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
maxRedirects: 3,
readability: true,
userAgent: "custom-ua",
},
},
},
}
tools.media
Mengonfigurasi pemahaman media masuk (gambar/audio/video):
{
tools: {
media: {
concurrency: 2,
asyncCompletion: {
directSend: false, // deprecated: completions stay agent-mediated
},
audio: {
enabled: true,
maxBytes: 20971520,
scope: {
default: "deny",
rules: [{ action: "allow", match: { chatType: "direct" } }],
},
models: [
{ provider: "openai", model: "gpt-4o-mini-transcribe" },
{ type: "cli", command: "whisper", args: ["--model", "base", "{{MediaPath}}"] },
],
},
image: {
enabled: true,
timeoutSeconds: 180,
models: [{ provider: "ollama", model: "gemma4:26b", timeoutSeconds: 300 }],
},
video: {
enabled: true,
maxBytes: 52428800,
models: [{ provider: "google", model: "gemini-3-flash-preview" }],
},
},
},
}
Kolom entri model media
Entri penyedia (type: "provider" atau dihilangkan):
provider: id penyedia API (openai,anthropic,google/gemini,groq, dll.)model: pengganti id modelprofile/preferredProfile: pemilihan profilauth-profiles.json
Entri CLI (type: "cli"):
command: executable untuk dijalankanargs: arg bertemplat (mendukung{{MediaPath}},{{Prompt}},{{MaxChars}}, dll.;openclaw doctor --fixmemigrasikan placeholder{input}yang tidak digunakan lagi ke{{MediaPath}})
Kolom umum:
capabilities: daftar opsional (image,audio,video). Default:openai/anthropic/minimax→ gambar,google→ gambar+audio+video,groq→ audio.prompt,maxChars,maxBytes,timeoutSeconds,language: pengganti per entri.tools.media.image.timeoutSecondsdan entri model gambartimeoutSecondsyang cocok juga berlaku saat agen memanggil toolimageeksplisit.- Kegagalan beralih ke entri berikutnya.
Autentikasi penyedia mengikuti urutan standar: auth-profiles.json → variabel env → models.providers.*.apiKey.
Kolom penyelesaian asinkron:
asyncCompletion.directSend: flag kompatibilitas yang tidak digunakan lagi. Tugas media asinkron yang selesai tetap dimediasi oleh sesi peminta sehingga agen menerima hasilnya, memutuskan cara memberi tahu pengguna, dan menggunakan tool pesan saat pengiriman sumber memerlukannya.
tools.agentToAgent
{
tools: {
agentToAgent: {
enabled: false,
allow: ["home", "work"],
},
},
}
tools.sessions
Mengontrol sesi mana yang dapat ditargetkan oleh tool sesi (sessions_list, sessions_history, sessions_send).
Default: tree (sesi saat ini + sesi yang dibuat olehnya, seperti subagen).
{
tools: {
sessions: {
// "self" | "tree" | "agent" | "all"
visibility: "tree",
},
},
}
Cakupan visibilitas
self: hanya kunci sesi saat ini.tree: sesi saat ini + sesi yang dibuat oleh sesi saat ini (subagen).agent: sesi apa pun milik id agen saat ini (dapat mencakup pengguna lain jika Anda menjalankan sesi per pengirim di bawah id agen yang sama).all: sesi apa pun. Penargetan lintas agen tetap memerlukantools.agentToAgent.- Batas sandbox: saat sesi saat ini berada dalam sandbox dan
agents.defaults.sandbox.sessionToolsVisibility="spawned", visibilitas dipaksa menjaditreemeskipuntools.sessions.visibility="all".
tools.sessions_spawn
Mengontrol dukungan lampiran inline untuk sessions_spawn.
{
tools: {
sessions_spawn: {
attachments: {
enabled: false, // opt-in: set true to allow inline file attachments
maxTotalBytes: 5242880, // 5 MB total across all files
maxFiles: 50,
maxFileBytes: 1048576, // 1 MB per file
retainOnSessionKeep: false, // keep attachments when cleanup="keep"
},
},
},
}
Catatan lampiran
- Lampiran hanya didukung untuk
runtime: "subagent". Runtime ACP menolaknya. - File diwujudkan ke workspace anak di
.openclaw/attachments/<uuid>/dengan.manifest.json. - Konten lampiran otomatis disunting dari persistensi transkrip.
- Input Base64 divalidasi dengan pemeriksaan alfabet/padding yang ketat dan penjaga ukuran pra-dekode.
- Izin file adalah
0700untuk direktori dan0600untuk file. - Pembersihan mengikuti kebijakan
cleanup:deleteselalu menghapus lampiran;keepmempertahankannya hanya saatretainOnSessionKeep: true.
tools.experimental
Flag alat bawaan eksperimental. Default nonaktif kecuali aturan pengaktifan otomatis GPT-5 strict-agentic berlaku.
{
tools: {
experimental: {
planTool: true, // enable experimental update_plan
},
},
}
planTool: mengaktifkan alatupdate_planterstruktur untuk pelacakan pekerjaan multi-langkah yang tidak trivial.- Default:
falsekecualiagents.defaults.embeddedPi.executionContract(atau override per-agen) disetel ke"strict-agentic"untuk run keluarga GPT-5 OpenAI atau OpenAI Codex. Seteltrueuntuk memaksa alat aktif di luar cakupan itu, ataufalseagar tetap nonaktif bahkan untuk run GPT-5 strict-agentic. - Saat diaktifkan, prompt sistem juga menambahkan panduan penggunaan agar model hanya menggunakannya untuk pekerjaan substansial dan menjaga paling banyak satu langkah
in_progress.
agents.defaults.subagents
{
agents: {
defaults: {
subagents: {
allowAgents: ["research"],
model: "minimax/MiniMax-M2.7",
maxConcurrent: 8,
runTimeoutSeconds: 900,
archiveAfterMinutes: 60,
},
},
},
}
model: model default untuk sub-agen yang dibuat. Jika dihilangkan, sub-agen mewarisi model pemanggil.allowAgents: allowlist default id agen target untuksessions_spawnsaat agen peminta tidak menyetelsubagents.allowAgentsmiliknya sendiri (["*"]= apa pun; default: agen yang sama saja).runTimeoutSeconds: timeout default (detik) untuksessions_spawnsaat pemanggilan alat menghilangkanrunTimeoutSeconds.0berarti tanpa timeout.- Kebijakan alat per-subagen:
tools.subagents.tools.allow/tools.subagents.tools.deny.
Penyedia kustom dan URL dasar
OpenClaw menggunakan katalog model bawaan. Tambahkan penyedia kustom melalui models.providers dalam config atau ~/.openclaw/agents/<agentId>/agent/models.json.
{
models: {
mode: "merge", // merge (default) | replace
providers: {
"custom-proxy": {
baseUrl: "http://localhost:4000/v1",
apiKey: "LITELLM_KEY",
api: "openai-completions", // openai-completions | openai-responses | anthropic-messages | google-generative-ai
models: [
{
id: "llama-3.1-8b",
name: "Llama 3.1 8B",
reasoning: false,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 128000,
contextTokens: 96000,
maxTokens: 32000,
},
],
},
},
},
}
Auth dan prioritas merge
- Gunakan
authHeader: true+headersuntuk kebutuhan auth kustom. - Override root config agen dengan
OPENCLAW_AGENT_DIR(atauPI_CODING_AGENT_DIR, alias variabel lingkungan lama). - Prioritas merge untuk ID penyedia yang cocok:
- Nilai
baseUrlmodels.jsonagen yang tidak kosong menang. - Nilai
apiKeyagen yang tidak kosong menang hanya saat penyedia itu tidak dikelola SecretRef dalam konteks config/auth-profile saat ini. - Nilai
apiKeypenyedia yang dikelola SecretRef disegarkan dari penanda sumber (ENV_VAR_NAMEuntuk ref env,secretref-manageduntuk ref file/exec) alih-alih mempertahankan rahasia yang sudah di-resolve. - Nilai header penyedia yang dikelola SecretRef disegarkan dari penanda sumber (
secretref-env:ENV_VAR_NAMEuntuk ref env,secretref-manageduntuk ref file/exec). apiKey/baseUrlagen yang kosong atau hilang fallback kemodels.providersdalam config.contextWindow/maxTokensmodel yang cocok menggunakan nilai yang lebih tinggi antara config eksplisit dan nilai katalog implisit.contextTokensmodel yang cocok mempertahankan batas runtime eksplisit saat ada; gunakan untuk membatasi konteks efektif tanpa mengubah metadata model native.- Gunakan
models.mode: "replace"saat Anda ingin config sepenuhnya menulis ulangmodels.json. - Persistensi penanda bersifat otoritatif sumber: penanda ditulis dari snapshot config sumber aktif (pra-resolusi), bukan dari nilai rahasia runtime yang sudah di-resolve.
- Nilai
Detail field penyedia
Katalog tingkat atas
models.mode: perilaku katalog penyedia (mergeataureplace).models.providers: peta penyedia kustom dengan kunci id penyedia.- Pengeditan aman: gunakan
openclaw config set models.providers.<id> '<json>' --strict-json --mergeatauopenclaw config set models.providers.<id>.models '<json-array>' --strict-json --mergeuntuk pembaruan aditif.config setmenolak penggantian destruktif kecuali Anda meneruskan--replace.
- Pengeditan aman: gunakan
Koneksi dan auth penyedia
models.providers.*.api: adaptor permintaan (openai-completions,openai-responses,anthropic-messages,google-generative-ai, dll). Untuk backend/v1/chat/completionsyang di-host sendiri seperti MLX, vLLM, SGLang, dan sebagian besar server lokal yang kompatibel dengan OpenAI, gunakanopenai-completions. Penyedia kustom denganbaseUrltetapi tanpaapidefault keopenai-completions; setelopenai-responseshanya saat backend mendukung/v1/responses.models.providers.*.apiKey: kredensial penyedia (utamakan substitusi SecretRef/env).models.providers.*.auth: strategi auth (api-key,token,oauth,aws-sdk).models.providers.*.contextWindow: jendela konteks native default untuk model di bawah penyedia ini saat entri model tidak menyetelcontextWindow.models.providers.*.contextTokens: batas konteks runtime efektif default untuk model di bawah penyedia ini saat entri model tidak menyetelcontextTokens.models.providers.*.maxTokens: batas token output default untuk model di bawah penyedia ini saat entri model tidak menyetelmaxTokens.models.providers.*.timeoutSeconds: timeout permintaan HTTP model opsional per-penyedia dalam detik, termasuk penanganan connect, header, body, dan penghentian total permintaan.models.providers.*.injectNumCtxForOpenAICompat: untuk Ollama +openai-completions, injeksikanoptions.num_ctxke dalam permintaan (default:true).models.providers.*.authHeader: paksa transport kredensial di headerAuthorizationsaat diperlukan.models.providers.*.baseUrl: URL dasar API upstream.models.providers.*.headers: header statis ekstra untuk routing proxy/tenant.
Override transport permintaan
models.providers.*.request: override transport untuk permintaan HTTP penyedia-model.
request.headers: header ekstra (digabung dengan default penyedia). Nilai menerima SecretRef.request.auth: override strategi auth. Mode:"provider-default"(gunakan auth bawaan penyedia),"authorization-bearer"(dengantoken),"header"(denganheaderName,value,prefixopsional).request.proxy: override proxy HTTP. Mode:"env-proxy"(gunakan var envHTTP_PROXY/HTTPS_PROXY),"explicit-proxy"(denganurl). Kedua mode menerima sub-objektlsopsional.request.tls: override TLS untuk koneksi langsung. Field:ca,cert,key,passphrase(semuanya menerima SecretRef),serverName,insecureSkipVerify.request.allowPrivateNetwork: saattrue, izinkan HTTPS kebaseUrlsaat DNS resolve ke rentang privat, CGNAT, atau serupa, melalui penjaga fetch HTTP penyedia (opt-in operator untuk endpoint kompatibel OpenAI tepercaya yang di-host sendiri). URL stream penyedia-model loopback sepertilocalhost,127.0.0.1, dan[::1]diizinkan otomatis kecuali ini secara eksplisit disetel kefalse; host LAN, tailnet, dan DNS privat tetap memerlukan opt-in. WebSocket menggunakanrequestyang sama untuk header/TLS tetapi tidak menggunakan gate SSRF fetch itu. Defaultfalse.
Entri katalog model
models.providers.*.models: entri katalog model penyedia eksplisit.models.providers.*.models.*.input: modalitas input model. Gunakan["text"]untuk model khusus teks dan["text", "image"]untuk model image/vision native. Lampiran gambar hanya diinjeksikan ke turn agen saat model yang dipilih ditandai mampu-gambar.models.providers.*.models.*.contextWindow: metadata jendela konteks native model. Ini mengoverridecontextWindowtingkat penyedia untuk model tersebut.models.providers.*.models.*.contextTokens: batas konteks runtime opsional. Ini mengoverridecontextTokenstingkat penyedia; gunakan saat Anda menginginkan anggaran konteks efektif yang lebih kecil daripadacontextWindownative model;openclaw models listmenampilkan kedua nilai saat berbeda.models.providers.*.models.*.compat.supportsDeveloperRole: petunjuk kompatibilitas opsional. Untukapi: "openai-completions"denganbaseUrlnon-native yang tidak kosong (host bukanapi.openai.com), OpenClaw memaksanya menjadifalsesaat runtime.baseUrlkosong/dihilangkan mempertahankan perilaku default OpenAI.models.providers.*.models.*.compat.requiresStringContent: petunjuk kompatibilitas opsional untuk endpoint chat kompatibel OpenAI khusus-string. Saattrue, OpenClaw meratakan arraymessages[].contentteks murni menjadi string biasa sebelum mengirim permintaan.
Penemuan Amazon Bedrock
plugins.entries.amazon-bedrock.config.discovery: root pengaturan penemuan otomatis Bedrock.plugins.entries.amazon-bedrock.config.discovery.enabled: aktifkan/nonaktifkan penemuan implisit.plugins.entries.amazon-bedrock.config.discovery.region: region AWS untuk penemuan.plugins.entries.amazon-bedrock.config.discovery.providerFilter: filter id penyedia opsional untuk penemuan tertarget.plugins.entries.amazon-bedrock.config.discovery.refreshInterval: interval polling untuk penyegaran penemuan.plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: jendela konteks fallback untuk model yang ditemukan.plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: token output maksimum fallback untuk model yang ditemukan.
Onboarding penyedia kustom interaktif menyimpulkan input gambar untuk ID model vision umum seperti GPT-4o, Claude, Gemini, Qwen-VL, LLaVA, Pixtral, InternVL, Mllama, MiniCPM-V, dan GLM-4V, serta melewati pertanyaan ekstra untuk keluarga khusus teks yang dikenal. ID model yang tidak dikenal tetap meminta dukungan gambar. Onboarding non-interaktif menggunakan inferensi yang sama; teruskan --custom-image-input untuk memaksa metadata mampu-gambar atau --custom-text-input untuk memaksa metadata khusus teks.
Contoh penyedia
Cerebras (GLM 4.7 / GPT OSS)
Plugin penyedia cerebras bawaan dapat mengonfigurasi ini melalui openclaw onboard --auth-choice cerebras-api-key. Gunakan config penyedia eksplisit hanya saat mengoverride default.
{
env: { CEREBRAS_API_KEY: "sk-..." },
agents: {
defaults: {
model: {
primary: "cerebras/zai-glm-4.7",
fallbacks: ["cerebras/gpt-oss-120b"],
},
models: {
"cerebras/zai-glm-4.7": { alias: "GLM 4.7 (Cerebras)" },
"cerebras/gpt-oss-120b": { alias: "GPT OSS 120B (Cerebras)" },
},
},
},
models: {
mode: "merge",
providers: {
cerebras: {
baseUrl: "https://api.cerebras.ai/v1",
apiKey: "${CEREBRAS_API_KEY}",
api: "openai-completions",
models: [
{ id: "zai-glm-4.7", name: "GLM 4.7 (Cerebras)" },
{ id: "gpt-oss-120b", name: "GPT OSS 120B (Cerebras)" },
],
},
},
},
}
Gunakan cerebras/zai-glm-4.7 untuk Cerebras; zai/glm-4.7 untuk Z.AI langsung.
Kimi Coding
{
env: { KIMI_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "kimi/kimi-code" },
models: { "kimi/kimi-code": { alias: "Kimi Code" } },
},
},
}
Kompatibel dengan Anthropic, penyedia bawaan. Pintasan: openclaw onboard --auth-choice kimi-code-api-key.
Local models (LM Studio)
Lihat Model Lokal. Ringkasnya: jalankan model lokal besar melalui LM Studio Responses API pada perangkat keras yang mumpuni; tetap gabungkan model yang di-host untuk cadangan.
MiniMax M2.7 (direct)
{
agents: {
defaults: {
model: { primary: "minimax/MiniMax-M2.7" },
models: {
"minimax/MiniMax-M2.7": { alias: "Minimax" },
},
},
},
models: {
mode: "merge",
providers: {
minimax: {
baseUrl: "https://api.minimax.io/anthropic",
apiKey: "${MINIMAX_API_KEY}",
api: "anthropic-messages",
models: [
{
id: "MiniMax-M2.7",
name: "MiniMax M2.7",
reasoning: true,
input: ["text"],
cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 },
contextWindow: 204800,
maxTokens: 131072,
},
],
},
},
},
}
Tetapkan MINIMAX_API_KEY. Pintasan: openclaw onboard --auth-choice minimax-global-api atau openclaw onboard --auth-choice minimax-cn-api. Katalog model secara default hanya menggunakan M2.7. Pada jalur streaming yang kompatibel dengan Anthropic, OpenClaw menonaktifkan pemikiran MiniMax secara default kecuali Anda menetapkan thinking sendiri secara eksplisit. /fast on atau params.fastMode: true menulis ulang MiniMax-M2.7 menjadi MiniMax-M2.7-highspeed.
Moonshot AI (Kimi)
{
env: { MOONSHOT_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "moonshot/kimi-k2.6" },
models: { "moonshot/kimi-k2.6": { alias: "Kimi K2.6" } },
},
},
models: {
mode: "merge",
providers: {
moonshot: {
baseUrl: "https://api.moonshot.ai/v1",
apiKey: "${MOONSHOT_API_KEY}",
api: "openai-completions",
models: [
{
id: "kimi-k2.6",
name: "Kimi K2.6",
reasoning: false,
input: ["text", "image"],
cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 },
contextWindow: 262144,
maxTokens: 262144,
},
],
},
},
},
}
Untuk endpoint Tiongkok: baseUrl: "https://api.moonshot.cn/v1" atau openclaw onboard --auth-choice moonshot-api-key-cn.
Endpoint Moonshot native mengiklankan kompatibilitas penggunaan streaming pada transport openai-completions bersama, dan OpenClaw menentukannya berdasarkan kemampuan endpoint, bukan hanya id penyedia bawaan.
OpenCode
{
agents: {
defaults: {
model: { primary: "opencode/claude-opus-4-6" },
models: { "opencode/claude-opus-4-6": { alias: "Opus" } },
},
},
}
Tetapkan OPENCODE_API_KEY (atau OPENCODE_ZEN_API_KEY). Gunakan referensi opencode/... untuk katalog Zen atau referensi opencode-go/... untuk katalog Go. Pintasan: openclaw onboard --auth-choice opencode-zen atau openclaw onboard --auth-choice opencode-go.
Synthetic (Anthropic-compatible)
{
env: { SYNTHETIC_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "synthetic/hf:MiniMaxAI/MiniMax-M2.5" },
models: { "synthetic/hf:MiniMaxAI/MiniMax-M2.5": { alias: "MiniMax M2.5" } },
},
},
models: {
mode: "merge",
providers: {
synthetic: {
baseUrl: "https://api.synthetic.new/anthropic",
apiKey: "${SYNTHETIC_API_KEY}",
api: "anthropic-messages",
models: [
{
id: "hf:MiniMaxAI/MiniMax-M2.5",
name: "MiniMax M2.5",
reasoning: true,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 192000,
maxTokens: 65536,
},
],
},
},
},
}
URL dasar sebaiknya menghilangkan /v1 (klien Anthropic menambahkannya). Pintasan: openclaw onboard --auth-choice synthetic-api-key.
Z.AI (GLM-4.7)
{
agents: {
defaults: {
model: { primary: "zai/glm-4.7" },
models: { "zai/glm-4.7": {} },
},
},
}
Tetapkan ZAI_API_KEY. z.ai/* dan z-ai/* diterima sebagai alias. Pintasan: openclaw onboard --auth-choice zai-api-key.
- Endpoint umum:
https://api.z.ai/api/paas/v4 - Endpoint pengodean (default):
https://api.z.ai/api/coding/paas/v4 - Untuk endpoint umum, definisikan penyedia khusus dengan penggantian URL dasar.
Terkait
- Konfigurasi — agen
- Konfigurasi — channel
- Referensi konfigurasi — kunci tingkat atas lainnya
- Alat dan Plugin