tools.* dan penyiapan provider kustom / base URL. Untuk agen,
saluran, dan kunci config tingkat atas lainnya, lihat
Referensi konfigurasi.
Alat
Profil alat
tools.profile menetapkan allowlist dasar sebelum tools.allow/tools.deny:
Onboarding lokal secara default menyetel config lokal baru ke tools.profile: "coding" saat belum disetel (profil eksplisit yang sudah ada dipertahankan).
| 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 | Tanpa pembatasan (sama seperti tidak disetel) |
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 | cron, gateway |
group:messaging | message |
group:nodes | nodes |
group:agents | agents_list |
group:media | image, image_generate, video_generate, tts |
group:openclaw | Semua alat bawaan (tidak termasuk plugin provider) |
tools.allow / tools.deny
Kebijakan allow/deny alat global (deny menang). Tidak peka huruf besar-kecil, mendukung wildcard *. Diterapkan bahkan saat sandbox Docker nonaktif.
tools.byProvider
Membatasi alat lebih lanjut untuk provider atau model tertentu. Urutan: profil dasar → profil provider → allow/deny.
tools.elevated
Mengontrol akses exec elevated di luar sandbox:
- Override per-agen (
agents.list[].tools.elevated) hanya dapat membatasi lebih lanjut. /elevated on|off|ask|fullmenyimpan status per sesi; direktif inline berlaku untuk satu pesan.execelevated melewati sandboxing dan menggunakan escape path yang dikonfigurasi (gatewaysecara default, ataunodesaat target exec adalahnode).
tools.exec
tools.loopDetection
Pemeriksaan keamanan loop alat dinonaktifkan secara default. Setel enabled: true untuk mengaktifkan deteksi.
Pengaturan dapat didefinisikan secara global di tools.loopDetection dan dioverride per-agen di agents.list[].tools.loopDetection.
historySize: jumlah maksimum riwayat pemanggilan alat yang disimpan untuk analisis loop.warningThreshold: ambang pola berulang tanpa progres untuk peringatan.criticalThreshold: ambang berulang yang lebih tinggi untuk memblokir loop kritis.globalCircuitBreakerThreshold: ambang penghentian keras untuk eksekusi apa pun tanpa progres.detectors.genericRepeat: peringatkan pada pemanggilan alat yang sama/argumen yang sama secara berulang.detectors.knownPollNoProgress: peringatkan/blokir alat polling yang dikenal (process.poll,command_status, dll.).detectors.pingPong: peringatkan/blokir pola pasangan bolak-balik tanpa progres.- Jika
warningThreshold >= criticalThresholdataucriticalThreshold >= globalCircuitBreakerThreshold, validasi gagal.
tools.web
tools.media
Mengonfigurasi pemahaman media masuk (gambar/audio/video):
Field entri model media
Field entri model media
Entri provider (
type: "provider" atau dihilangkan):provider: id provider API (openai,anthropic,google/gemini,groq, dll.)model: override id modelprofile/preferredProfile: pemilihan profilauth-profiles.json
type: "cli"):command: executable yang dijalankanargs: argumen bertemplat (mendukung{{MediaPath}},{{Prompt}},{{MaxChars}}, dll.)
capabilities: daftar opsional (image,audio,video). Default:openai/anthropic/minimax→ image,google→ image+audio+video,groq→ audio.prompt,maxChars,maxBytes,timeoutSeconds,language: override per entri.- Kegagalan melakukan fallback ke entri berikutnya.
auth-profiles.json → variabel env → models.providers.*.apiKey.Field penyelesaian async:asyncCompletion.directSend: saattrue, tugas asyncmusic_generatedanvideo_generateyang selesai mencoba pengiriman saluran langsung terlebih dahulu. Default:false(jalur lama requester-session wake/model-delivery).
tools.agentToAgent
tools.sessions
Mengontrol sesi mana yang dapat ditargetkan oleh alat sesi (sessions_list, sessions_history, sessions_send).
Default: tree (sesi saat ini + sesi yang dihasilkan olehnya, seperti subagen).
self: hanya kunci sesi saat ini.tree: sesi saat ini + sesi yang dihasilkan oleh sesi saat ini (subagen).agent: sesi apa pun yang dimiliki oleh 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.- Pembatas sandbox: saat sesi saat ini tersandbox dan
agents.defaults.sandbox.sessionToolsVisibility="spawned", visibility dipaksa menjaditreemeskipuntools.sessions.visibility="all".
tools.sessions_spawn
Mengontrol dukungan lampiran inline untuk sessions_spawn.
- Lampiran hanya didukung untuk
runtime: "subagent". Runtime ACP menolaknya. - File dimaterialisasi ke workspace anak di
.openclaw/attachments/<uuid>/dengan.manifest.json. - Konten lampiran secara otomatis disamarkan dari persistensi transkrip.
- Input Base64 divalidasi dengan pemeriksaan alfabet/padding yang ketat dan guard ukuran pra-decode.
- 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 auto-enable GPT-5 strict-agentic berlaku.
planTool: mengaktifkan alatupdate_planterstruktur untuk pelacakan pekerjaan multi-langkah yang tidak sepele.- Default:
falsekecualiagents.defaults.embeddedPi.executionContract(atau override per-agen) disetel ke"strict-agentic"untuk eksekusi keluarga GPT-5 OpenAI atau OpenAI Codex. Seteltrueuntuk memaksa alat aktif di luar cakupan itu, ataufalseuntuk tetap menonaktifkannya bahkan untuk eksekusi GPT-5 strict-agentic. - Saat diaktifkan, system prompt juga menambahkan panduan penggunaan agar model hanya menggunakannya untuk pekerjaan yang substansial dan mempertahankan paling banyak satu langkah
in_progress.
agents.defaults.subagents
model: model default untuk subagen yang dihasilkan. Jika dihilangkan, subagen mewarisi model pemanggil.allowAgents: allowlist default id agen target untuksessions_spawnsaat agen peminta tidak menetapkansubagents.allowAgentssendiri (["*"]= apa pun; default: hanya agen yang sama).runTimeoutSeconds: timeout default (detik) untuksessions_spawnsaat pemanggilan alat tidak menyertakanrunTimeoutSeconds.0berarti tanpa timeout.- Kebijakan alat per-subagen:
tools.subagents.tools.allow/tools.subagents.tools.deny.
Provider kustom dan base URL
OpenClaw menggunakan katalog model bawaan. Tambahkan provider kustom melaluimodels.providers di config atau ~/.openclaw/agents/<agentId>/agent/models.json.
- Gunakan
authHeader: true+headersuntuk kebutuhan auth kustom. - Override root config agen dengan
OPENCLAW_AGENT_DIR(atauPI_CODING_AGENT_DIR, alias variabel environment lama). - Prioritas merge untuk ID provider yang cocok:
- Nilai
baseUrlmodels.jsonagen yang tidak kosong menang. - Nilai
apiKeyagen yang tidak kosong menang hanya ketika provider tersebut tidak dikelola SecretRef dalam konteks config/profil-auth saat ini. - Nilai
apiKeyprovider yang dikelola SecretRef disegarkan dari penanda sumber (ENV_VAR_NAMEuntuk ref env,secretref-manageduntuk ref file/exec) alih-alih menyimpan secret yang telah diselesaikan. - Nilai header provider yang dikelola SecretRef disegarkan dari penanda sumber (
secretref-env:ENV_VAR_NAMEuntuk ref env,secretref-manageduntuk ref file/exec). apiKey/baseUrlagen yang kosong atau tidak ada melakukan fallback kemodels.providersdi 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 bawaan.- Gunakan
models.mode: "replace"saat Anda ingin config sepenuhnya menulis ulangmodels.json. - Persistensi marker bersifat source-authoritative: marker ditulis dari snapshot config sumber aktif (pra-resolusi), bukan dari nilai secret runtime yang telah diselesaikan.
- Nilai
Detail field provider
models.mode: perilaku katalog provider (mergeataureplace).models.providers: peta provider kustom yang diberi kunci oleh id provider.- Edit 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 memberikan--replace.
- Edit aman: gunakan
models.providers.*.api: adaptor permintaan (openai-completions,openai-responses,anthropic-messages,google-generative-ai, dll).models.providers.*.apiKey: kredensial provider (lebih baik gunakan substitusi SecretRef/env).models.providers.*.auth: strategi auth (api-key,token,oauth,aws-sdk).models.providers.*.injectNumCtxForOpenAICompat: untuk Ollama +openai-completions, suntikkanoptions.num_ctxke permintaan (default:true).models.providers.*.authHeader: paksa transport kredensial di headerAuthorizationsaat diperlukan.models.providers.*.baseUrl: base URL API upstream.models.providers.*.headers: header statis tambahan untuk perutean proxy/tenant.models.providers.*.request: override transport untuk permintaan HTTP provider model.request.headers: header tambahan (digabungkan dengan default provider). Nilai menerima SecretRef.request.auth: override strategi auth. Mode:"provider-default"(gunakan auth bawaan provider),"authorization-bearer"(dengantoken),"header"(denganheaderName,value,prefixopsional).request.proxy: override proxy HTTP. Mode:"env-proxy"(gunakan variabel 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 menyelesaikan ke rentang private, CGNAT, atau serupa, melalui fetch guard HTTP provider (opt-in operator untuk endpoint self-hosted tepercaya yang kompatibel dengan OpenAI). WebSocket menggunakanrequestyang sama untuk header/TLS tetapi tidak menggunakan gerbang SSRF fetch itu. Defaultfalse.
models.providers.*.models: entri katalog model provider eksplisit.models.providers.*.models.*.contextWindow: metadata jendela konteks model bawaan.models.providers.*.models.*.contextTokens: batas konteks runtime opsional. Gunakan ini saat Anda menginginkan anggaran konteks efektif yang lebih kecil daripadacontextWindowbawaan model.models.providers.*.models.*.compat.supportsDeveloperRole: petunjuk kompatibilitas opsional. Untukapi: "openai-completions"denganbaseUrlnon-native yang tidak kosong (host bukanapi.openai.com), OpenClaw memaksa ini menjadifalsesaat runtime.baseUrlkosong/tidak ada mempertahankan perilaku default OpenAI.models.providers.*.models.*.compat.requiresStringContent: petunjuk kompatibilitas opsional untuk endpoint chat kompatibel OpenAI yang hanya menerima string. Saattrue, OpenClaw meratakan arraymessages[].contentteks murni menjadi string biasa sebelum mengirim permintaan.plugins.entries.amazon-bedrock.config.discovery: root pengaturan auto-discovery Bedrock.plugins.entries.amazon-bedrock.config.discovery.enabled: aktifkan/nonaktifkan discovery implisit.plugins.entries.amazon-bedrock.config.discovery.region: region AWS untuk discovery.plugins.entries.amazon-bedrock.config.discovery.providerFilter: filter id provider opsional untuk discovery terarah.plugins.entries.amazon-bedrock.config.discovery.refreshInterval: interval polling untuk refresh discovery.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.
Contoh provider
Cerebras (GLM 4.6 / 4.7)
Cerebras (GLM 4.6 / 4.7)
cerebras/zai-glm-4.7 untuk Cerebras; zai/glm-4.7 untuk Z.AI langsung.OpenCode
OpenCode
OPENCODE_API_KEY (atau OPENCODE_ZEN_API_KEY). Gunakan ref opencode/... untuk katalog Zen atau ref opencode-go/... untuk katalog Go. Pintasan: openclaw onboard --auth-choice opencode-zen atau openclaw onboard --auth-choice opencode-go.Z.AI (GLM-4.7)
Z.AI (GLM-4.7)
ZAI_API_KEY. z.ai/* dan z-ai/* adalah alias yang diterima. Pintasan: openclaw onboard --auth-choice zai-api-key.- Endpoint umum:
https://api.z.ai/api/paas/v4 - Endpoint coding (default):
https://api.z.ai/api/coding/paas/v4 - Untuk endpoint umum, definisikan provider kustom dengan override base URL.
Moonshot AI (Kimi)
Moonshot AI (Kimi)
baseUrl: "https://api.moonshot.cn/v1" atau openclaw onboard --auth-choice moonshot-api-key-cn.Endpoint Moonshot bawaan mengiklankan kompatibilitas penggunaan streaming pada transport bersama
openai-completions, dan OpenClaw mengandalkannya pada kapabilitas endpoint
alih-alih hanya id provider bawaan.Kimi Coding
Kimi Coding
openclaw onboard --auth-choice kimi-code-api-key.Synthetic (kompatibel Anthropic)
Synthetic (kompatibel Anthropic)
/v1 (klien Anthropic menambahkannya). Pintasan: openclaw onboard --auth-choice synthetic-api-key.MiniMax M2.7 (langsung)
MiniMax M2.7 (langsung)
MINIMAX_API_KEY. Pintasan:
openclaw onboard --auth-choice minimax-global-api atau
openclaw onboard --auth-choice minimax-cn-api.
Katalog model secara default hanya ke M2.7.
Pada jalur streaming yang kompatibel dengan Anthropic, OpenClaw menonaktifkan thinking MiniMax
secara default kecuali Anda secara eksplisit menyetel thinking sendiri. /fast on atau
params.fastMode: true menulis ulang MiniMax-M2.7 menjadi
MiniMax-M2.7-highspeed.Model lokal (LM Studio)
Model lokal (LM Studio)
Lihat Model Lokal. Singkatnya: jalankan model lokal besar melalui API Responses LM Studio pada perangkat keras yang serius; pertahankan model hosted tetap tergabung untuk fallback.
Terkait
- Referensi konfigurasi — kunci tingkat atas lainnya
- Konfigurasi — agen
- Konfigurasi — channels
- Alat dan plugin