Gateway
Konfigurasi
OpenClaw membaca konfigurasi <Tooltip tip="JSON5 mendukung komentar dan koma akhir">JSON5</Tooltip> opsional dari ~/.openclaw/openclaw.json.
Path konfigurasi aktif harus berupa file reguler. Tata letak openclaw.json
yang berupa symlink tidak didukung untuk penulisan oleh OpenClaw; penulisan
atomik dapat mengganti path alih-alih mempertahankan symlink. Jika Anda menyimpan
konfigurasi di luar direktori state default, arahkan OPENCLAW_CONFIG_PATH
langsung ke file sebenarnya.
Jika file tidak ada, OpenClaw menggunakan default aman. Alasan umum untuk menambahkan konfigurasi:
- Menghubungkan channel dan mengontrol siapa yang dapat mengirim pesan ke bot
- Mengatur model, tools, sandboxing, atau otomasi (cron, hook)
- Menyetel sesi, media, jaringan, atau UI
Lihat referensi lengkap untuk setiap field yang tersedia.
Agen dan otomasi sebaiknya menggunakan config.schema.lookup untuk dokumentasi
tingkat field yang persis sebelum mengedit konfigurasi. Gunakan halaman ini untuk
panduan berorientasi tugas dan Referensi konfigurasi
untuk peta field dan default yang lebih luas.
Konfigurasi minimal
// ~/.openclaw/openclaw.json
{
agents: { defaults: { workspace: "~/.openclaw/workspace" } },
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
Mengedit konfigurasi
Wizard interaktif
openclaw onboard # full onboarding flow
openclaw configure # config wizard
CLI (satu baris)
openclaw config get agents.defaults.workspace
openclaw config set agents.defaults.heartbeat.every "2h"
openclaw config unset plugins.entries.brave.config.webSearch.apiKey
UI Kontrol
Buka http://127.0.0.1:18789 dan gunakan tab Config.
UI Kontrol merender formulir dari skema konfigurasi live, termasuk metadata
dokumentasi field title / description plus skema plugin dan channel jika
tersedia, dengan editor JSON Mentah sebagai jalan keluar. Untuk UI
penelusuran bertingkat dan tooling lain, gateway juga mengekspos
config.schema.lookup untuk mengambil satu node skema yang dibatasi path
plus ringkasan child langsung.
Edit langsung
Edit ~/.openclaw/openclaw.json secara langsung. Gateway memantau file tersebut dan menerapkan perubahan secara otomatis (lihat hot reload).
Validasi ketat
openclaw config schema mencetak JSON Schema kanonis yang digunakan oleh UI Kontrol
dan validasi. config.schema.lookup mengambil satu node yang dibatasi path plus
ringkasan child untuk tooling penelusuran bertingkat. Metadata dokumentasi field
title/description diteruskan melalui objek bersarang, wildcard (*), item
array ([]), dan cabang anyOf/oneOf/allOf. Skema plugin dan channel runtime
digabungkan ketika registry manifes dimuat.
Ketika validasi gagal:
- Gateway tidak melakukan boot
- Hanya perintah diagnostik yang berfungsi (
openclaw doctor,openclaw logs,openclaw health,openclaw status) - Jalankan
openclaw doctoruntuk melihat masalah yang persis - Jalankan
openclaw doctor --fix(atau--yes) untuk menerapkan perbaikan
Gateway menyimpan salinan terpercaya terakhir yang diketahui baik setelah setiap
startup yang berhasil, tetapi startup dan hot reload tidak memulihkannya secara
otomatis. Jika openclaw.json gagal validasi (termasuk validasi lokal plugin),
startup Gateway gagal atau reload dilewati dan runtime saat ini mempertahankan
konfigurasi terakhir yang diterima. Jalankan openclaw doctor --fix (atau
--yes) untuk memperbaiki konfigurasi yang diberi prefiks/tertindih atau
memulihkan salinan terakhir yang diketahui baik. Promosi ke salinan terakhir yang
diketahui baik dilewati ketika kandidat berisi placeholder rahasia yang disunting
seperti ***.
Tugas umum
Menyiapkan channel (WhatsApp, Telegram, Discord, dll.)
Setiap channel memiliki bagian konfigurasinya sendiri di bawah channels.<provider>. Lihat halaman channel khusus untuk langkah penyiapan:
- WhatsApp -
channels.whatsapp - Telegram -
channels.telegram - Discord -
channels.discord - Feishu -
channels.feishu - Google Chat -
channels.googlechat - Microsoft Teams -
channels.msteams - Slack -
channels.slack - Signal -
channels.signal - iMessage -
channels.imessage - Mattermost -
channels.mattermost
Semua channel berbagi pola kebijakan DM yang sama:
{
channels: {
telegram: {
enabled: true,
botToken: "123:abc",
dmPolicy: "pairing", // pairing | allowlist | open | disabled
allowFrom: ["tg:123"], // only for allowlist/open
},
},
}
Memilih dan mengonfigurasi model
Atur model utama dan fallback opsional:
{
agents: {
defaults: {
model: {
primary: "anthropic/claude-sonnet-4-6",
fallbacks: ["openai/gpt-5.4"],
},
models: {
"anthropic/claude-sonnet-4-6": { alias: "Sonnet" },
"openai/gpt-5.4": { alias: "GPT" },
},
},
},
}
agents.defaults.modelsmendefinisikan katalog model dan bertindak sebagai allowlist untuk/model.- Gunakan
openclaw config set agents.defaults.models '<json>' --strict-json --mergeuntuk menambahkan entri allowlist tanpa menghapus model yang sudah ada. Penggantian biasa yang akan menghapus entri ditolak kecuali Anda meneruskan--replace. - Referensi model menggunakan format
provider/model(misalnyaanthropic/claude-opus-4-6). agents.defaults.imageMaxDimensionPxmengontrol downscaling gambar transkrip/tool (default1200); nilai yang lebih rendah biasanya mengurangi penggunaan vision-token pada run yang banyak screenshot.- Lihat CLI Model untuk mengganti model dalam chat dan Failover Model untuk rotasi auth dan perilaku fallback.
- Untuk penyedia kustom/self-hosted, lihat Penyedia kustom di referensi.
Kontrol siapa yang dapat mengirim pesan ke bot
Akses DM dikontrol per saluran melalui dmPolicy:
"pairing"(default): pengirim yang tidak dikenal mendapatkan kode pairing sekali pakai untuk disetujui"allowlist": hanya pengirim diallowFrom(atau penyimpanan izin yang sudah dipasangkan)"open": izinkan semua DM masuk (memerlukanallowFrom: ["*"])"disabled": abaikan semua DM
Untuk grup, gunakan groupPolicy + groupAllowFrom atau daftar izin khusus saluran.
Lihat referensi lengkap untuk detail per saluran.
Siapkan gating penyebutan obrolan grup
Pesan grup secara default memerlukan penyebutan. Konfigurasikan pola pemicu per agen, dan pertahankan balasan ruang yang terlihat pada jalur message-tool default kecuali Anda memang menginginkan balasan akhir otomatis lama:
{
messages: {
visibleReplies: "automatic", // set "message_tool" to require message-tool sends everywhere
groupChat: {
visibleReplies: "message_tool", // default; use "automatic" for legacy room replies
},
},
agents: {
list: [
{
id: "main",
groupChat: {
mentionPatterns: ["@openclaw", "openclaw"],
},
},
],
},
channels: {
whatsapp: {
groups: { "*": { requireMention: true } },
},
},
}
- Penyebutan metadata: @-mention native (WhatsApp tap-to-mention, Telegram @bot, dll.)
- Pola teks: pola regex aman di
mentionPatterns - Balasan terlihat:
messages.visibleRepliesdapat mewajibkan pengiriman message-tool secara global;messages.groupChat.visibleRepliesmenimpanya untuk grup/saluran. - Lihat referensi lengkap untuk mode balasan terlihat, penimpaan per saluran, dan mode obrolan mandiri.
Batasi Skills per agen
Gunakan agents.defaults.skills sebagai baseline bersama, lalu timpa agen tertentu dengan agents.list[].skills:
{
agents: {
defaults: {
skills: ["github", "weather"],
},
list: [
{ id: "writer" }, // inherits github, weather
{ id: "docs", skills: ["docs-search"] }, // replaces defaults
{ id: "locked-down", skills: [] }, // no skills
],
},
}
- Hilangkan
agents.defaults.skillsuntuk Skills yang tidak dibatasi secara default. - Hilangkan
agents.list[].skillsuntuk mewarisi default. - Tetapkan
agents.list[].skills: []untuk tanpa Skills. - Lihat Skills, konfigurasi Skills, dan Referensi Konfigurasi.
Sesuaikan pemantauan kesehatan saluran Gateway
Kontrol seberapa agresif Gateway memulai ulang saluran yang tampak stale:
{
gateway: {
channelHealthCheckMinutes: 5,
channelStaleEventThresholdMinutes: 30,
channelMaxRestartsPerHour: 10,
},
channels: {
telegram: {
healthMonitor: { enabled: false },
accounts: {
alerts: {
healthMonitor: { enabled: true },
},
},
},
},
}
- Tetapkan
gateway.channelHealthCheckMinutes: 0untuk menonaktifkan restart pemantauan kesehatan secara global. channelStaleEventThresholdMinutesharus lebih besar dari atau sama dengan interval pemeriksaan.- Gunakan
channels.<provider>.healthMonitor.enabledatauchannels.<provider>.accounts.<id>.healthMonitor.enableduntuk menonaktifkan restart otomatis bagi satu saluran atau akun tanpa menonaktifkan pemantau global. - Lihat Pemeriksaan Kesehatan untuk debugging operasional dan referensi lengkap untuk semua bidang.
Sesuaikan timeout handshake WebSocket Gateway
Beri klien lokal lebih banyak waktu untuk menyelesaikan handshake WebSocket pra-auth pada host yang sedang terbebani atau berdaya rendah:
{
gateway: {
handshakeTimeoutMs: 30000,
},
}
- Default-nya adalah
15000milidetik. OPENCLAW_HANDSHAKE_TIMEOUT_MStetap diprioritaskan untuk penimpaan layanan atau shell sekali jalan.- Utamakan memperbaiki stall startup/event-loop terlebih dahulu; knob ini untuk host yang sehat tetapi lambat selama warmup.
Konfigurasikan sesi dan reset
Sesi mengontrol kontinuitas dan isolasi percakapan:
{
session: {
dmScope: "per-channel-peer", // recommended for multi-user
threadBindings: {
enabled: true,
idleHours: 24,
maxAgeHours: 0,
},
reset: {
mode: "daily",
atHour: 4,
idleMinutes: 120,
},
},
}
dmScope:main(bersama) |per-peer|per-channel-peer|per-account-channel-peerthreadBindings: default global untuk perutean sesi berbasis thread (Discord mendukung/focus,/unfocus,/agents,/session idle, dan/session max-age).- Lihat Manajemen Sesi untuk cakupan, tautan identitas, dan kebijakan pengiriman.
- Lihat referensi lengkap untuk semua bidang.
Aktifkan sandboxing
Jalankan sesi agen dalam runtime sandbox terisolasi:
{
agents: {
defaults: {
sandbox: {
mode: "non-main", // off | non-main | all
scope: "agent", // session | agent | shared
},
},
},
}
Build image terlebih dahulu - dari checkout sumber jalankan scripts/sandbox-setup.sh, atau dari instalasi npm lihat perintah inline docker build di Sandboxing § Image dan penyiapan.
Lihat Sandboxing untuk panduan lengkap dan referensi lengkap untuk semua opsi.
Aktifkan push berbasis relay untuk build iOS resmi
Push berbasis relay dikonfigurasi di openclaw.json.
Atur ini di konfigurasi gateway:
{
gateway: {
push: {
apns: {
relay: {
baseUrl: "https://relay.example.com",
// Optional. Default: 10000
timeoutMs: 10000,
},
},
},
},
}
Padanan CLI:
openclaw config set gateway.push.apns.relay.baseUrl https://relay.example.com
Yang dilakukan ini:
- Memungkinkan gateway mengirim
push.test, dorongan bangun, dan bangun sambung ulang melalui relay eksternal. - Menggunakan izin kirim berskala registrasi yang diteruskan oleh aplikasi iOS yang dipasangkan. Gateway tidak memerlukan token relay untuk seluruh deployment.
- Mengikat setiap registrasi berbasis relay ke identitas gateway yang dipasangkan dengan aplikasi iOS, sehingga gateway lain tidak dapat menggunakan ulang registrasi tersimpan.
- Mempertahankan build iOS lokal/manual pada APNs langsung. Pengiriman berbasis relay hanya berlaku untuk build terdistribusi resmi yang mendaftar melalui relay.
- Harus cocok dengan URL dasar relay yang disematkan ke build iOS resmi/TestFlight, sehingga lalu lintas registrasi dan pengiriman mencapai deployment relay yang sama.
Alur end-to-end:
- Instal build iOS resmi/TestFlight yang dikompilasi dengan URL dasar relay yang sama.
- Konfigurasikan
gateway.push.apns.relay.baseUrlpada gateway. - Pasangkan aplikasi iOS ke gateway dan biarkan sesi node dan operator terhubung.
- Aplikasi iOS mengambil identitas gateway, mendaftar ke relay menggunakan App Attest plus tanda terima aplikasi, lalu menerbitkan payload
push.apns.registerberbasis relay ke gateway yang dipasangkan. - Gateway menyimpan handle relay dan izin kirim, lalu menggunakannya untuk
push.test, dorongan bangun, dan bangun sambung ulang.
Catatan operasional:
- Jika Anda mengalihkan aplikasi iOS ke gateway lain, sambungkan ulang aplikasi agar dapat menerbitkan registrasi relay baru yang terikat ke gateway tersebut.
- Jika Anda mengirim build iOS baru yang mengarah ke deployment relay berbeda, aplikasi menyegarkan registrasi relay yang di-cache alih-alih menggunakan ulang asal relay lama.
Catatan kompatibilitas:
OPENCLAW_APNS_RELAY_BASE_URLdanOPENCLAW_APNS_RELAY_TIMEOUT_MSmasih berfungsi sebagai override env sementara.OPENCLAW_APNS_RELAY_ALLOW_HTTP=truetetap menjadi jalan keluar pengembangan khusus loopback; jangan simpan URL relay HTTP di konfigurasi.
Lihat Aplikasi iOS untuk alur end-to-end dan Alur autentikasi dan kepercayaan untuk model keamanan relay.
Siapkan Heartbeat (check-in berkala)
{
agents: {
defaults: {
heartbeat: {
every: "30m",
target: "last",
},
},
},
}
every: string durasi (30m,2h). Atur0muntuk menonaktifkan.target:last|none|<channel-id>(misalnyadiscord,matrix,telegram, atauwhatsapp)directPolicy:allow(default) ataublockuntuk target Heartbeat bergaya DM- Lihat Heartbeat untuk panduan lengkap.
Konfigurasikan tugas Cron
{
cron: {
enabled: true,
maxConcurrentRuns: 2, // cron dispatch + isolated cron agent-turn execution
sessionRetention: "24h",
runLog: {
maxBytes: "2mb",
keepLines: 2000,
},
},
}
sessionRetention: pangkas sesi eksekusi terisolasi yang selesai darisessions.json(default24h; aturfalseuntuk menonaktifkan).runLog: pangkascron/runs/<jobId>.jsonlberdasarkan ukuran dan baris yang dipertahankan.- Lihat Tugas Cron untuk ringkasan fitur dan contoh CLI.
Siapkan Webhook (hook)
Aktifkan endpoint Webhook HTTP pada Gateway:
{
hooks: {
enabled: true,
token: "shared-secret",
path: "/hooks",
defaultSessionKey: "hook:ingress",
allowRequestSessionKey: false,
allowedSessionKeyPrefixes: ["hook:"],
mappings: [
{
match: { path: "gmail" },
action: "agent",
agentId: "main",
deliver: true,
},
],
},
}
Catatan keamanan:
- Perlakukan semua konten payload hook/Webhook sebagai input tidak tepercaya.
- Gunakan
hooks.tokenkhusus; jangan gunakan ulang token Gateway bersama. - Autentikasi hook hanya melalui header (
Authorization: Bearer ...ataux-openclaw-token); token query-string ditolak. hooks.pathtidak boleh berupa/; tempatkan ingress Webhook pada subpath khusus seperti/hooks.- Biarkan flag bypass konten tidak aman tetap nonaktif (
hooks.gmail.allowUnsafeExternalContent,hooks.mappings[].allowUnsafeExternalContent) kecuali saat melakukan debugging dengan cakupan ketat. - Jika Anda mengaktifkan
hooks.allowRequestSessionKey, atur jugahooks.allowedSessionKeyPrefixesuntuk membatasi kunci sesi yang dipilih pemanggil. - Untuk agen yang digerakkan hook, pilih tingkat model modern yang kuat dan kebijakan alat yang ketat (misalnya hanya messaging plus sandboxing jika memungkinkan).
Lihat referensi lengkap untuk semua opsi mapping dan integrasi Gmail.
Konfigurasikan routing multi-agen
Jalankan beberapa agen terisolasi dengan workspace dan sesi terpisah:
{
agents: {
list: [
{ id: "home", default: true, workspace: "~/.openclaw/workspace-home" },
{ id: "work", workspace: "~/.openclaw/workspace-work" },
],
},
bindings: [
{ agentId: "home", match: { channel: "whatsapp", accountId: "personal" } },
{ agentId: "work", match: { channel: "whatsapp", accountId: "biz" } },
],
}
Lihat Multi-Agen dan referensi lengkap untuk aturan binding dan profil akses per agen.
Pisahkan konfigurasi menjadi beberapa file ($include)
Gunakan $include untuk mengatur konfigurasi besar:
// ~/.openclaw/openclaw.json
{
gateway: { port: 18789 },
agents: { $include: "./agents.json5" },
broadcast: {
$include: ["./clients/a.json5", "./clients/b.json5"],
},
}
- File tunggal: mengganti objek yang memuatnya
- Array file: digabung mendalam secara berurutan (yang terakhir menang)
- Kunci sejajar: digabung setelah include (menimpa nilai yang di-include)
- Include bersarang: didukung hingga 10 level
- Path relatif: diselesaikan relatif terhadap file yang melakukan include
- Penulisan milik OpenClaw: ketika penulisan hanya mengubah satu bagian tingkat atas
yang didukung oleh include file tunggal seperti
plugins: { $include: "./plugins.json5" }, OpenClaw memperbarui file yang di-include tersebut dan membiarkanopenclaw.jsontetap utuh - Write-through tidak didukung: include root, array include, dan include dengan override kunci sejajar gagal tertutup untuk penulisan milik OpenClaw alih-alih meratakan konfigurasi
- Pembatasan: path
$includeharus diselesaikan di bawah direktori yang memuatopenclaw.json. Untuk berbagi tree lintas mesin atau pengguna, aturOPENCLAW_INCLUDE_ROOTSke daftar path (:di POSIX,;di Windows) dari direktori tambahan yang dapat dirujuk oleh include. Symlink diselesaikan dan diperiksa ulang, sehingga path yang secara leksikal berada di dir konfigurasi tetapi target nyatanya keluar dari setiap root yang diizinkan tetap ditolak. - Penanganan error: error yang jelas untuk file hilang, error parse, dan include melingkar
Hot reload konfigurasi
Gateway memantau ~/.openclaw/openclaw.json dan menerapkan perubahan secara otomatis - tidak diperlukan restart manual untuk sebagian besar pengaturan.
Edit file langsung diperlakukan sebagai tidak tepercaya hingga lolos validasi. Watcher menunggu
gejolak temp-write/rename editor mereda, membaca file final, dan menolak
edit eksternal yang tidak valid tanpa menulis ulang openclaw.json. Penulisan konfigurasi
milik OpenClaw menggunakan gate skema yang sama sebelum menulis; clobber destruktif seperti
menghapus gateway.mode atau mengecilkan file lebih dari separuh ditolak dan
disimpan sebagai .rejected.* untuk diperiksa.
Jika Anda melihat config reload skipped (invalid config) atau startup melaporkan Invalid config, periksa konfigurasi, jalankan openclaw config validate, lalu jalankan openclaw doctor --fix untuk perbaikan. Lihat Pemecahan masalah Gateway
untuk checklist.
Mode reload
| Mode | Perilaku |
|---|---|
hybrid (default) |
Menerapkan perubahan aman secara hot dengan segera. Merestart otomatis untuk perubahan kritis. |
hot |
Hanya menerapkan perubahan aman secara hot. Mencatat peringatan saat restart diperlukan - Anda yang menanganinya. |
restart |
Merestart Gateway pada perubahan konfigurasi apa pun, aman atau tidak. |
off |
Menonaktifkan pemantauan file. Perubahan berlaku pada restart manual berikutnya. |
{
gateway: {
reload: { mode: "hybrid", debounceMs: 300 },
},
}
Apa yang diterapkan secara hot vs apa yang memerlukan restart
Sebagian besar field diterapkan secara hot tanpa downtime. Dalam mode hybrid, perubahan yang memerlukan restart ditangani secara otomatis.
| Kategori | Field | Perlu restart? |
|---|---|---|
| Channel | channels.*, web (WhatsApp) - semua channel bawaan dan Plugin |
Tidak |
| Agen & model | agent, agents, models, routing |
Tidak |
| Otomasi | hooks, cron, agent.heartbeat |
Tidak |
| Sesi & pesan | session, messages |
Tidak |
| Alat & media | tools, browser, skills, mcp, audio, talk |
Tidak |
| UI & lain-lain | ui, logging, identity, bindings |
Tidak |
| Server Gateway | gateway.* (port, bind, auth, tailscale, TLS, HTTP) |
Ya |
| Infrastruktur | discovery, plugins |
Ya |
Perencanaan reload
Saat Anda mengedit file sumber yang dirujuk melalui $include, OpenClaw merencanakan
pemuatan ulang dari tata letak yang ditulis di sumber, bukan tampilan dalam memori
yang telah diratakan. Ini menjaga keputusan hot-reload (hot-apply vs restart)
tetap dapat diprediksi bahkan ketika satu bagian tingkat atas berada dalam file
tersertakan tersendiri seperti plugins: { $include: "./plugins.json5" }.
Perencanaan pemuatan ulang gagal tertutup jika tata letak sumber ambigu.
Config RPC (pembaruan terprogram)
Untuk perkakas yang menulis config melalui API Gateway, pilih alur ini:
config.schema.lookupuntuk memeriksa satu subtree (node skema dangkal + ringkasan anak)config.getuntuk mengambil snapshot saat ini besertahashconfig.patchuntuk pembaruan parsial (JSON merge patch: objek digabungkan,nullmenghapus, array menggantikan)config.applyhanya ketika Anda bermaksud mengganti seluruh configupdate.rununtuk self-update eksplisit beserta restart; sertakancontinuationMessageketika sesi pasca-restart harus menjalankan satu giliran lanjutanupdate.statusuntuk memeriksa sentinel restart pembaruan terbaru dan memverifikasi versi yang berjalan setelah restart
Agent harus memperlakukan config.schema.lookup sebagai tempat pertama untuk dokumentasi
dan batasan tingkat field yang tepat. Gunakan Referensi konfigurasi
ketika mereka memerlukan peta config yang lebih luas, default, atau tautan ke referensi
subsistem khusus.
Contoh patch parsial:
openclaw gateway call config.get --params '{}' # capture payload.hash
openclaw gateway call config.patch --params '{
"raw": "{ channels: { telegram: { groups: { \"*\": { requireMention: false } } } } }",
"baseHash": "<hash>"
}'
Baik config.apply maupun config.patch menerima raw, baseHash, sessionKey,
note, dan restartDelayMs. baseHash wajib untuk kedua metode ketika config
sudah ada.
Variabel lingkungan
OpenClaw membaca env vars dari proses induk ditambah:
.envdari direktori kerja saat ini (jika ada)~/.openclaw/.env(fallback global)
Tidak satu pun dari kedua file tersebut menimpa env vars yang sudah ada. Anda juga dapat mengatur env vars inline di config:
{
env: {
OPENROUTER_API_KEY: "sk-or-...",
vars: { GROQ_API_KEY: "gsk-..." },
},
}
Impor env shell (opsional)
Jika diaktifkan dan key yang diharapkan belum diatur, OpenClaw menjalankan shell login Anda dan hanya mengimpor key yang hilang:
{
env: {
shellEnv: { enabled: true, timeoutMs: 15000 },
},
}
Padanan env var: OPENCLAW_LOAD_SHELL_ENV=1
Substitusi env var dalam nilai config
Rujuk env vars dalam nilai string config apa pun dengan ${VAR_NAME}:
{
gateway: { auth: { token: "${OPENCLAW_GATEWAY_TOKEN}" } },
models: { providers: { custom: { apiKey: "${CUSTOM_API_KEY}" } } },
}
Aturan:
- Hanya nama huruf besar yang dicocokkan:
[A-Z_][A-Z0-9_]* - Var yang hilang/kosong memunculkan error saat waktu pemuatan
- Escape dengan
$${VAR}untuk output literal - Berfungsi di dalam file
$include - Substitusi inline:
"${BASE}/v1"→"https://api.example.com/v1"
Ref rahasia (env, file, exec)
Untuk field yang mendukung objek SecretRef, Anda dapat menggunakan:
{
models: {
providers: {
openai: { apiKey: { source: "env", provider: "default", id: "OPENAI_API_KEY" } },
},
},
skills: {
entries: {
"image-lab": {
apiKey: {
source: "file",
provider: "filemain",
id: "/skills/entries/image-lab/apiKey",
},
},
},
},
channels: {
googlechat: {
serviceAccountRef: {
source: "exec",
provider: "vault",
id: "channels/googlechat/serviceAccount",
},
},
},
}
Detail SecretRef (termasuk secrets.providers untuk env/file/exec) ada di Manajemen Rahasia.
Jalur kredensial yang didukung tercantum di Permukaan Kredensial SecretRef.
Lihat Lingkungan untuk prioritas dan sumber lengkap.
Referensi lengkap
Untuk referensi lengkap field demi field, lihat Referensi Konfigurasi.
Terkait: Contoh Konfigurasi · Referensi Konfigurasi · Doctor