Gateway
Yapılandırma
OpenClaw, ~/.openclaw/openclaw.json konumundan isteğe bağlı bir JSON5 yapılandırması okur. Dosya yoksa OpenClaw güvenli varsayılanları kullanır.
Etkin yapılandırma yolu normal bir dosya olmalıdır. OpenClaw tarafından gerçekleştirilen yazma işlemleri dosyayı atomik olarak değiştirir (yolun üzerine yeniden adlandırır); bu nedenle sembolik bağlantı olan bir openclaw.json üzerinden yazmak yerine bağlantının hedefi değiştirilir. Sembolik bağlantılı yapılandırma düzenlerinden kaçının. Yapılandırmayı varsayılan durum dizininin dışında tutuyorsanız OPENCLAW_CONFIG_PATH değişkenini doğrudan gerçek dosyaya yönlendirin.
Yapılandırma eklemenin yaygın nedenleri:
- Kanalları bağlamak ve bota kimlerin mesaj gönderebileceğini denetlemek
- Modelleri, araçları, korumalı alanı veya otomasyonu (cron, kancalar) ayarlamak
- Oturumları, medyayı, ağı veya kullanıcı arayüzünü ayarlamak
Kullanılabilir tüm alanlar için tam başvuruya bakın.
Yapılandırma iki bölümlü bir kural izler: kök düzeyindeki eş düzey alanlar altyapıyı ve aracılar arası varsayılanları içerirken agents.defaults aracı döngüsü davranışını içerir. agents.entries altındaki girdiler, şemanın aracı başına geçersiz kılmayı desteklediği yerlerde iki bölümü de geçersiz kılabilir.
Aracılar ve otomasyon, yapılandırmayı düzenlemeden önce alan düzeyindeki kesin
belgeler için config.schema.lookup kullanmalıdır. Görev odaklı rehberlik için bu sayfayı,
daha geniş alan haritası ve varsayılanlar için
Yapılandırma başvurusunu kullanın.
Asgari yapılandırma
// ~/.openclaw/openclaw.json{ agents: { defaults: { workspace: "~/.openclaw/workspace" } }, channels: { whatsapp: { allowFrom: ["+15555550123"] } },}Yapılandırmayı düzenleme
Etkileşimli sihirbaz
openclaw onboard # eksiksiz ilk kullanım akışıopenclaw configure # yapılandırma sihirbazıCLI (tek satırlık komutlar)
openclaw config get agents.defaults.workspaceopenclaw config set agents.defaults.heartbeat.every "2h"openclaw config unset plugins.entries.brave.config.webSearch.apiKeyDenetim kullanıcı arayüzü
http://127.0.0.1:18789 adresini açın ve Config sekmesini kullanın.
Denetim kullanıcı arayüzü, varsa alan
title / description belge meta verilerinin yanı sıra plugin ve kanal şemalarını da içeren
canlı yapılandırma şemasından bir form oluşturur; gerektiğinde kullanılmak üzere bir Raw JSON düzenleyicisi de sunar. Ayrıntılı
kullanıcı arayüzleri ve diğer araçlar için Gateway ayrıca, yol kapsamlı tek bir şema
düğümünü ve doğrudan alt öğelerinin özetlerini getirmek üzere config.schema.lookup sunar.
Ayarlar önce yaygın alanları gösterir. Her bölüm, gelişmiş alanlarını
daraltılmış bir Advanced (N) grubunda tutar; tüm grupları genişletmek için Show advanced
seçeneğini kullanın. Ayarlar araması her zaman iki düzeyi de kapsar ve gerektiğinde
eşleşen gelişmiş grubu açar.
Doğrudan düzenleme
~/.openclaw/openclaw.json dosyasını doğrudan düzenleyin. Gateway dosyayı izler ve değişiklikleri otomatik olarak uygular (çalışırken yeniden yükleme bölümüne bakın).
Katı doğrulama
openclaw config schema, Denetim kullanıcı arayüzü ve doğrulama tarafından kullanılan standart JSON Schema'yı yazdırır.
config.schema.lookup, ayrıntılı inceleme araçları için yol kapsamlı tek bir düğümü ve
alt öğe özetlerini getirir. Alan title/description belge meta verileri;
iç içe nesneler, joker karakter (*), dizi öğesi ([]) ve anyOf/
oneOf/allOf dalları boyunca aktarılır. Bildirim kayıt defteri yüklendiğinde
çalışma zamanı plugin ve kanal şemaları birleştirilir.
Her yapılandırma yaprağının uiHints içinde yaygın veya gelişmiş bir sunum düzeyi vardır.
advanced: false yaygın ayarları, advanced: true ise gelişmiş
ayarları işaretler. Bir yaprağın doğrudan ipucu yoksa en yakın üst öğenin düzeyini devralır;
bildirilmiş bir üst öğesi olmayan yollar varsayılan olarak gelişmiş kabul edilir. Bu yalnızca sunumu
etkiler; doğrulamayı, varsayılanları, yeniden yükleme davranışını veya anahtarın ayarlanıp ayarlanamayacağını etkilemez.
Doğrulama başarısız olduğunda:
- Gateway başlatılmaz
- Yalnızca tanılama komutları çalışır (
openclaw doctor,openclaw logs,openclaw health,openclaw status) - Kesin sorunları görmek için
openclaw doctorkomutunu çalıştırın - Onarımları uygulamak için
openclaw doctor --fixkomutunu çalıştırın (--repairaynı bayraktır;--yesistemleri atlar)
Gateway, her başarılı başlangıçtan sonra güvenilir bir son bilinen iyi kopyayı saklar
ancak başlangıç ve çalışırken yeniden yükleme bu kopyayı otomatik olarak geri yüklemez; bunu yalnızca openclaw doctor --fix
yapar. openclaw.json doğrulamadan geçemezse (plugin içi doğrulama dâhil), Gateway
başlangıcı başarısız olur veya yeniden yükleme atlanır ve mevcut çalışma zamanı son kabul edilen
yapılandırmayı kullanmayı sürdürür. Reddedilen yazma işlemi, incelenebilmesi için <path>.rejected.<timestamp> olarak da kaydedilir.
Gateway; gateway.mode öğesinin kaldırılması, meta bloğunun kaybedilmesi veya dosyanın
yarıdan fazla küçültülmesi gibi yanlışlıkla üzerine yazma izlenimi veren yazma işlemlerini, işlem
yıkıcı değişikliklere açıkça izin vermediği sürece engeller. Bir aday *** veya [redacted] gibi
sansürlenmiş bir gizli bilgi yer tutucusu içeriyorsa son bilinen iyi sürüme yükseltilmez.
Yaygın görevler
Bir kanal kurma (WhatsApp, Telegram, Discord vb.)
Her kanalın channels.<provider> altında kendi yapılandırma bölümü vardır. Kurulum adımları için ilgili kanal sayfasına bakın:
- Discord -
channels.discord - Feishu -
channels.feishu - Google Chat -
channels.googlechat - iMessage -
channels.imessage - Mattermost -
channels.mattermost - Microsoft Teams -
channels.msteams - Signal -
channels.signal - Slack -
channels.slack - Telegram -
channels.telegram - WhatsApp -
channels.whatsapp
Tüm kanallar aynı DM ilkesi kalıbını paylaşır:
{ channels: { telegram: { enabled: true, botToken: "123:abc", dmPolicy: "pairing", // pairing | allowlist | open | disabled allowFrom: ["tg:123"], // yalnızca allowlist/open için }, },}Modelleri seçme ve yapılandırma
Birincil modeli ve isteğe bağlı yedek modelleri ayarlayın:
{ 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.modelstakma adları ve model başına ayarları saklar; bir girdi eklemek/modelveya--modelgeçersiz kılmalarını hiçbir zaman kısıtlamaz.agents.defaults.modelPolicy.allow, geçersiz kılmalar ve model seçiciler için açık izin listesidir. Kesin başvuruları veprovider/*joker karakterlerini kabul eder; herhangi bir modele izin vermek için bunu atlayın veya[]kullanın.- Model başvuruları
provider/modelbiçimini kullanır (ör.anthropic/claude-opus-4-6). agents.defaults.imageMaxDimensionPx, transkript/araç görüntülerinin küçültülmesini denetler (varsayılan1200); daha düşük değerler, ekran görüntüsü ağırlıklı çalıştırmalarda genellikle görsel token kullanımını azaltır.- Sohbette model değiştirmek için Modeller CLI'sına, kimlik doğrulama dönüşümü ve yedek davranışı için Model Yük Devretme sayfasına bakın.
- Özel/kendi barındırdığınız sağlayıcılar için başvurudaki Özel sağlayıcılar bölümüne bakın.
Bota kimlerin mesaj gönderebileceğini denetleme
DM erişimi, kanal başına dmPolicy aracılığıyla denetlenir (varsayılan "pairing"):
"pairing": bilinmeyen gönderenler, onaylanması için tek kullanımlık bir eşleştirme kodu alır"allowlist": yalnızcaallowFromiçindeki (veya eşleştirilmiş izin deposundaki) gönderenler"open": gelen tüm DM'lere izin verir (allowFrom: ["*"]gerektirir)"disabled": tüm DM'leri yok sayar
Gruplar için groupPolicy ("allowlist" | "open" | "disabled") ile birlikte groupAllowFrom veya kanala özgü izin listelerini kullanın.
Kanal başına ayrıntılar için tam başvuruya bakın.
Grup sohbeti bahsetme kapısını ayarlama
Grup mesajları varsayılan olarak bahsetme gerektirir. Tetikleyici kalıplarını aracı başına yapılandırın. Normal grup/kanal yanıtları otomatik olarak gönderilir; aracının ne zaman konuşacağına karar vermesi gereken paylaşımlı odalarda mesaj aracı yolunu etkinleştirin:
{ messages: { visibleReplies: "automatic", // her yerde mesaj aracı gönderimlerini zorunlu kılmak için "message_tool" olarak ayarlayın groupChat: { visibleReplies: "message_tool", // isteğe bağlı; görünür çıktı message(action=send) gerektirir unmentionedInbound: "room_event", // bahsetme içermeyen, sürekli grup konuşmaları sessiz bağlamdır }, }, agents: { list: [ { id: "main", groupChat: { mentionPatterns: ["@openclaw", "openclaw"], }, }, ], }, channels: { whatsapp: { groups: { "*": { requireMention: true } }, }, },}- Meta veri bahsetmeleri: yerel @bahsetmeleri (WhatsApp dokunarak bahsetme, Telegram @bot vb.)
- Metin kalıpları:
mentionPatternsiçindeki güvenli düzenli ifade kalıpları - Görünür yanıtlar:
messages.visibleRepliesmesaj aracı gönderimlerini genel olarak zorunlu kılabilir;messages.groupChat.visibleRepliesbunu gruplar/kanallar için geçersiz kılar. - Görünür yanıt modları, kanal başına geçersiz kılmalar ve kendi kendine sohbet modu için tam başvuruya bakın.
Aracı başına becerileri kısıtlama
Paylaşılan bir temel için agents.defaults.skills kullanın, ardından belirli
aracıları agents.entries.*.skills ile geçersiz kılın:
{ agents: { defaults: { skills: ["github", "weather"], }, list: [ { id: "writer" }, // github ve weather öğelerini devralır { id: "docs", skills: ["docs-search"] }, // varsayılanların yerini alır { id: "locked-down", skills: [] }, // Skills yok ], },}- Varsayılan olarak sınırsız Skills için
agents.defaults.skillsöğesini atlayın. - Varsayılanları devralmak için
agents.entries.*.skillsöğesini atlayın. - Skills olmaması için
agents.entries.*.skills: []ayarlayın. - Skills, Skills yapılandırması ve Yapılandırma Başvurusuna bakın.
Kanal başına sistem durumu izlemeyi yapılandırma
Bir kanal veya hesap için otomatik sistem durumu yeniden başlatmalarını devre dışı bırakın ya da etkinleştirin:
{ channels: { telegram: { healthMonitor: { enabled: false }, accounts: { alerts: { healthMonitor: { enabled: true }, }, }, }, },}- Bir kanal veya hesap için otomatik yeniden başlatmaları denetlemek üzere
channels.<provider>.healthMonitor.enabledya dachannels.<provider>.accounts.<id>.healthMonitor.enabledkullanın. - Operasyonel hata ayıklama için Sistem Durumu Denetimleri, tüm alanlar için tam başvuruya bakın.
Oturumları ve sıfırlamaları yapılandırın
Oturumlar, konuşma sürekliliğini ve yalıtımını denetler:
{ session: { dmScope: "per-channel-peer", // çok kullanıcılı kullanım için önerilir threadBindings: { enabled: true, idleHours: 24, maxAgeHours: 0, }, reset: { mode: "daily", atHour: 4, idleMinutes: 120, }, },}dmScope:main(paylaşılan) |per-peer|per-channel-peer|per-account-channel-peerthreadBindings: ileti dizisine bağlı oturum yönlendirmesinin genel varsayılanları./focus,/unfocus,/agents,/session idleve/session max-age, bunu her oturum için bağlar, bağlantısını kaldırır, listeler ve ayarlar (Discord ileti dizilerini, Telegram ise konuları/konuşmaları bağlar).- Kapsamlandırma, kimlik bağlantıları ve gönderim politikası için Oturum Yönetimi bölümüne bakın.
- Tüm alanlar için tam başvuruya bakın.
Korumalı alanı etkinleştirin
Aracı oturumlarını yalıtılmış korumalı alan çalışma zamanlarında çalıştırın:
{ agents: { defaults: { sandbox: { mode: "non-main", // off | non-main | all scope: "agent", // session | agent | shared }, }, },}Önce imajı oluşturun: kaynak kod deposundan çalışıyorsanız scripts/sandbox-setup.sh komutunu çalıştırın; npm kurulumundan çalışıyorsanız Korumalı Alan § İmajlar ve kurulum bölümündeki satır içi docker build komutuna bakın.
Tam kılavuz için Korumalı Alan, tüm seçenekler için tam başvuru bölümüne bakın.
Resmî iOS derlemeleri için aktarıcı destekli anlık bildirimleri etkinleştirin
Herkese açık App Store derlemelerinde aktarıcı destekli anlık bildirimler, barındırılan OpenClaw aktarıcısını kullanır: https://ios-push-relay.openclaw.ai.
Özel aktarıcı dağıtımları, aktarıcı URL'si gateway aktarıcı URL'siyle eşleşen, bilinçli olarak ayrı tutulmuş bir iOS derleme/dağıtım yolu gerektirir. Özel bir aktarıcı derlemesi kullanıyorsanız gateway yapılandırmasında şunu ayarlayın:
{ gateway: { push: { apns: { relay: { baseUrl: "https://relay.example.com", // İsteğe bağlı. Varsayılan: 10000 timeoutMs: 10000, }, }, }, },}CLI eşdeğeri:
openclaw config set gateway.push.apns.relay.baseUrl https://relay.example.comBunun yaptığı işlemler:
- Gateway'in
push.test, uyandırma dürtmeleri ve yeniden bağlantı uyandırmalarını haricî aktarıcı üzerinden göndermesini sağlar. - Eşleştirilmiş iOS uygulamasının ilettiği, kayıt kapsamlı bir gönderim izni kullanır. Gateway'in dağıtım genelinde geçerli bir aktarıcı belirtecine ihtiyacı yoktur.
- Aktarıcı destekli her kaydı, iOS uygulamasının eşleştirildiği gateway kimliğine bağlar; böylece başka bir gateway saklanan kaydı yeniden kullanamaz.
- Yerel/elle oluşturulan iOS derlemelerinin doğrudan APNs kullanmasını sürdürür. Aktarıcı destekli gönderimler yalnızca aktarıcı üzerinden kaydolmuş resmî dağıtım derlemelerine uygulanır.
- Kayıt ve gönderim trafiğinin aynı aktarıcı dağıtımına ulaşması için iOS derlemesine gömülü aktarıcı temel URL'siyle eşleşmelidir.
Uçtan uca akış:
- Resmî iOS uygulamasını yükleyin.
- İsteğe bağlı: yalnızca bilinçli olarak ayrı tutulmuş özel bir aktarıcı derlemesi kullanırken gateway üzerinde
gateway.push.apns.relay.baseUrlyapılandırmasını yapın. - iOS uygulamasını gateway ile eşleştirin ve hem Node hem de operatör oturumlarının bağlanmasına izin verin.
- iOS uygulaması gateway kimliğini alır, App Attest ve uygulama makbuzunu kullanarak aktarıcıya kaydolur, ardından aktarıcı destekli
push.apns.registeryükünü eşleştirilmiş gateway'e yayımlar. - Gateway, aktarıcı tanıtıcısını ve gönderim iznini saklar; ardından bunları
push.test, uyandırma dürtmeleri ve yeniden bağlantı uyandırmaları için kullanır.
İşletim notları:
- iOS uygulamasını farklı bir gateway'e geçirirseniz uygulamanın o gateway'e bağlı yeni bir aktarıcı kaydı yayımlayabilmesi için uygulamayı yeniden bağlayın.
- Farklı bir aktarıcı dağıtımına işaret eden yeni bir iOS derlemesi yayımlarsanız uygulama, eski aktarıcı kaynağını yeniden kullanmak yerine önbelleğe alınmış aktarıcı kaydını yeniler.
Uyumluluk notu:
OPENCLAW_APNS_RELAY_BASE_URLveOPENCLAW_APNS_RELAY_TIMEOUT_MS, geçici ortam değişkeni geçersiz kılmaları olarak çalışmaya devam eder.- Özel gateway aktarıcı URL'leri, iOS derlemesine gömülü aktarıcı temel URL'siyle eşleşmelidir; herkese açık App Store sürüm hattı, özel iOS aktarıcı URL'si geçersiz kılmalarını reddeder.
OPENCLAW_APNS_RELAY_ALLOW_HTTP=true, yalnızca geri döngüye yönelik bir geliştirme kaçış yolu olmaya devam eder; HTTP aktarıcı URL'lerini yapılandırmada kalıcı olarak saklamayın.
Uçtan uca akış için iOS Uygulaması, aktarıcı güvenlik modeli için Kimlik doğrulama ve güven akışı bölümüne bakın.
Heartbeat'i ayarlayın (düzenli yoklamalar)
{ agents: { defaults: { heartbeat: { every: "30m", target: "last", }, }, },}every: süre dizesi (30m,2h). Devre dışı bırakmak için0molarak ayarlayın. Varsayılan:30m.target:last|none|<channel-id>(örneğindiscord,matrix,telegramveyawhatsapp)directPolicy: DM tarzı heartbeat hedefleri içinallow(varsayılan) veyablock- Tam kılavuz için Heartbeat bölümüne bakın.
Cron işlerini yapılandırın
{ cron: { enabled: true, sessionRetention: "24h", },}sessionRetention: tamamlanan yalıtılmış çalıştırma oturumlarını SQLite oturum satırlarından temizler (varsayılan24h; devre dışı bırakmak içinfalseolarak ayarlayın).- Çalıştırma geçmişi, iş başına en yeni 2000 terminal satırını otomatik olarak tutar; kayıp satırlar 24 saatlik temizleme sürelerini korur.
- Özelliğe genel bakış ve CLI örnekleri için Cron işleri bölümüne bakın.
Webhook'ları (hook'ları) ayarlayın
Gateway üzerinde HTTP webhook uç noktalarını etkinleştirin:
{ 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, }, ], },}Güvenlik notu:
- Tüm hook/webhook yükü içeriğini güvenilmeyen girdi olarak değerlendirin.
- Özel bir
hooks.tokenkullanın; etkin Gateway kimlik doğrulama gizli bilgilerini (gateway.auth.token/OPENCLAW_GATEWAY_TOKENveyagateway.auth.password/OPENCLAW_GATEWAY_PASSWORD) yeniden kullanmayın. - Hook kimlik doğrulaması yalnızca üstbilgiyle yapılır (
Authorization: Bearer ...veyax-openclaw-token); sorgu dizesi belirteçleri reddedilir. hooks.path,/olamaz; webhook girişini/hooksgibi özel bir alt yolda tutun.- Sıkı kapsamlı hata ayıklama yapmadığınız sürece güvenli olmayan içerik atlama bayraklarını (
hooks.gmail.allowUnsafeExternalContent,hooks.mappings[].allowUnsafeExternalContent) devre dışı tutun. hooks.allowRequestSessionKeyözelliğini etkinleştirirseniz çağıranın seçtiği oturum anahtarlarını sınırlamak içinhooks.allowedSessionKeyPrefixesdeğerini de ayarlayın.- Hook ile çalıştırılan aracılar için güçlü ve modern model katmanlarını ve sıkı bir araç politikasını tercih edin (örneğin yalnızca mesajlaşma ve mümkün olduğunda korumalı alan).
Tüm eşleme seçenekleri ve Gmail entegrasyonu için tam başvuruya bakın.
Çok aracılı yönlendirmeyi yapılandırın
Ayrı çalışma alanları ve oturumları olan birden çok yalıtılmış aracı çalıştırın:
{ 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" } }, ],}Bağlama kuralları ve aracı başına erişim profilleri için Çok Aracılı ve tam başvuru bölümlerine bakın.
Yapılandırmayı birden çok dosyaya ayırın ($include)
Büyük yapılandırmaları düzenlemek için $include kullanın:
// ~/.openclaw/openclaw.json{ gateway: { port: 18789 }, agents: { $include: "./agents.json5" }, broadcast: { $include: ["./clients/a.json5", "./clients/b.json5"], },}- Tek dosya: kapsayıcı nesnenin yerini alır
- Dosya dizisi: sırayla derinlemesine birleştirilir (sonraki kazanır), en fazla 10 iç içe düzey
- Eş düzey anahtarlar: eklemelerden sonra birleştirilir (eklenen değerleri geçersiz kılar)
- Göreli yollar: eklemeyi yapan dosyaya göre çözümlenir
- Yol biçimi: ekleme yolları null baytları içermemeli ve çözümlemeden önce ve sonra kesinlikle 4096 karakterden kısa olmalıdır
- OpenClaw'a ait yazma işlemleri: bir yazma işlemi yalnızca
plugins: { $include: "./plugins.json5" }gibi tek dosyalı bir eklemeyle desteklenen bir üst düzey bölümü değiştirdiğinde OpenClaw, eklenen bu dosyayı günceller veopenclaw.jsondosyasını olduğu gibi bırakır - Desteklenmeyen doğrudan yazma: kök eklemeler, ekleme dizileri ve eş düzey geçersiz kılmaları olan eklemeler, yapılandırmayı düzleştirmek yerine OpenClaw'a ait yazma işlemlerinde güvenli biçimde başarısız olur
- Sınırlandırma:
$includeyolları,openclaw.jsondosyasını içeren dizinin altında çözümlenmelidir. Bir dizin ağacını makineler veya kullanıcılar arasında paylaşmak içinOPENCLAW_INCLUDE_ROOTSdeğerini, eklemelerin başvurabileceği ek dizinlerden oluşan bir yol listesine (POSIX'te:, Windows'ta;) ayarlayın. Sembolik bağlantılar çözümlenir ve yeniden denetlenir; bu nedenle sözcüksel olarak bir yapılandırma dizininde bulunan ancak gerçek hedefi izin verilen tüm köklerin dışına çıkan bir yol yine de reddedilir. - Hata işleme: eksik dosyalar, ayrıştırma hataları, döngüsel eklemeler, geçersiz yol biçimi ve aşırı uzunluk için açık hatalar
Yapılandırmayı çalışırken yeniden yükleme
Gateway, ~/.openclaw/openclaw.json dosyasını izler ve değişiklikleri otomatik olarak uygular; çoğu ayar için elle yeniden başlatma gerekmez.
Doğrudan dosya düzenlemeleri doğrulanana kadar güvenilmeyen olarak değerlendirilir. İzleyici,
düzenleyicinin geçici yazma/yeniden adlandırma hareketliliğinin durulmasını bekler, son dosyayı
okur ve geçersiz haricî düzenlemeleri openclaw.json dosyasını yeniden yazmadan reddeder.
OpenClaw'a ait yapılandırma yazma işlemleri de yazmadan önce aynı şema geçidini kullanır (her
yazmaya uygulanan üzerine yazma/geri alma kuralları için Sıkı doğrulama
bölümüne bakın).
config reload skipped (invalid config) görürseniz veya başlangıç sırasında Invalid config bildirilirse yapılandırmayı inceleyin, openclaw config validate komutunu ve ardından onarım için openclaw doctor --fix komutunu çalıştırın. Denetim listesi için Gateway sorun giderme
bölümüne bakın.
Yeniden yükleme modları
| Mod | Davranış |
|---|---|
hybrid (varsayılan) |
Güvenli değişiklikleri anında çalışırken uygular. Kritik değişikliklerde otomatik olarak yeniden başlatır. |
hot |
Yalnızca güvenli değişiklikleri çalışırken uygular. Yeniden başlatma gerektiğinde bir uyarı kaydeder; işlemi siz gerçekleştirirsiniz. |
restart |
Güvenli olsun veya olmasın, herhangi bir yapılandırma değişikliğinde Gateway'i yeniden başlatır. |
off |
Dosya izlemeyi devre dışı bırakır. Değişiklikler bir sonraki manuel yeniden başlatmada etkili olur. |
{ gateway: { reload: { mode: "hybrid", debounceMs: 300 }, },}Çalışırken uygulananlar ve yeniden başlatma gerektirenler
Çoğu alan kesinti olmadan çalışırken uygulanır; çalışırken uygulanan bazı bölümler ise tüm Gateway yerine yalnızca ilgili
alt sistemi (kanal, cron, heartbeat, sistem durumu izleyicisi) yeniden başlatır.
hybrid modunda, Gateway'in yeniden başlatılmasını gerektiren değişiklikler otomatik olarak işlenir.
| Kategori | Alanlar | Gateway'in yeniden başlatılması gerekiyor mu? |
|---|---|---|
| Kanallar | channels.*, web (WhatsApp) - tüm yerleşik kanallar ve plugin kanalları |
Hayır (ilgili kanalı yeniden başlatır) |
| Aracı ve modeller | agent, agents, models, routing |
Hayır |
| Otomasyon | hooks, cron, agent.heartbeat |
Hayır (ilgili alt sistemi yeniden başlatır) |
| Oturumlar ve mesajlar | session, messages |
Hayır |
| Araçlar ve medya | tools, skills, mcp, audio, talk |
Hayır |
| Plugin yapılandırması | plugins.entries.*, plugins.allow, plugins.deny, plugins.enabled |
Hayır (plugin çalışma zamanını yeniden yükler) |
| Kullanıcı arayüzü ve diğerleri | ui, logging, identity, bindings |
Hayır |
| Gateway sunucusu | gateway.* (bağlantı noktası, bağlama, kimlik doğrulama, tailscale, TLS, HTTP, gönderim) |
Evet |
| Altyapı | discovery, browser, plugins.load, plugins.installs |
Evet |
Yeniden yükleme planlaması
$include üzerinden başvurulan bir kaynak dosyayı düzenlediğinizde OpenClaw,
yeniden yüklemeyi düzleştirilmiş bellek içi görünümden değil, kaynakta yazıldığı düzenden planlar.
Bu, tek bir üst düzey bölüm plugins: { $include: "./plugins.json5" } gibi kendisine ait bir dahil edilen dosyada bulunsa bile
çalışırken yeniden yükleme kararlarının (çalışırken uygulama veya yeniden başlatma) öngörülebilir kalmasını sağlar.
Kaynak düzeni belirsizse yeniden yükleme planlaması güvenli biçimde başarısız olur.
Yapılandırma RPC'si (programatik güncellemeler)
Gateway API'si üzerinden yapılandırma yazan araçlar için şu akışı tercih edin:
config.schema.lookup: tek bir alt ağacı incelemek için (sığ şema düğümü + alt öğe özetleri)config.get: geçerli anlık görüntüyü vehashdeğerini almak içinconfig.patch: kısmi güncellemeler için (JSON birleştirme yaması: nesneler birleştirilir,nullsiler; girişler kaldırılacaksareplacePathsile açıkça onaylandığında diziler değiştirilir)config.apply: yalnızca yapılandırmanın tamamını değiştirmek istediğinizdeupdate.run: açık bir kendi kendini güncelleme ve ardından yeniden başlatma için; yeniden başlatma sonrası oturumun bir takip turu çalıştırması gerekiyorsacontinuationMessagedeğerini ekleyinupdate.status: en son güncelleme yeniden başlatma işaretçisini incelemek ve yeniden başlatma sonrasında çalışan sürümü doğrulamak için
Aracılar, alan düzeyindeki kesin belgeler ve kısıtlamalar için ilk olarak config.schema.lookup değerine başvurmalıdır.
Daha geniş yapılandırma haritasına, varsayılanlara veya özel alt sistem başvurularının bağlantılarına ihtiyaç duyduklarında
Yapılandırma başvurusu sayfasını kullanın.
Kısmi yama örneği:
openclaw gateway call config.get --params '{}' # payload.hash değerini yakalaopenclaw gateway call config.patch --params '{ "raw": "{ channels: { telegram: { groups: { \"*\": { requireMention: false } } } } }", "baseHash": "<hash>"}'Hem config.apply hem de config.patch; raw, baseHash, sessionKey,
note ve restartDelayMs değerlerini kabul eder. Bir yapılandırma dosyası zaten mevcut olduğunda
baseHash her iki yöntem için de gereklidir (mevcut yapılandırma olmadan yapılan ilk yazma denetimi atlar).
config.patch ayrıca, dizi değiştirme işleminin kasıtlı olduğu yapılandırma yollarını içeren
bir dizi olan replacePaths değerini kabul eder. Bir yama mevcut bir diziyi daha az giriş içeren bir diziyle
değiştirecek veya silecekse, tam olarak o yol replacePaths içinde yer almadığı sürece Gateway yazma işlemini reddeder;
dizi girişlerinin altındaki iç içe diziler, agents.entries.*.skills gibi [] kullanır.
Bu, kısaltılmış config.get anlık görüntülerinin yönlendirme veya izin listesi dizilerinin sessizce üzerine yazmasını önler.
Yapılandırmanın tamamını değiştirmek istediğinizde config.apply kullanın.
Ortam değişkenleri
OpenClaw, ortam değişkenlerini üst süreçten ve ayrıca şuralardan okur:
.env: geçerli çalışma dizininden (varsa)~/.openclaw/.env(genel geri dönüş)
İki dosya da mevcut ortam değişkenlerini geçersiz kılmaz. Yapılandırmada satır içi ortam değişkenleri de ayarlayabilirsiniz:
{ env: { OPENROUTER_API_KEY: "sk-or-...", vars: { GROQ_API_KEY: "gsk-..." }, },}Kabuk ortamını içe aktarma (isteğe bağlı)
Etkinleştirilmişse ve beklenen anahtarlar ayarlanmamışsa OpenClaw, oturum açma kabuğunuzu çalıştırır ve yalnızca eksik anahtarları içe aktarır:
{env: { shellEnv: { enabled: true, timeoutMs: 15000 },},}Ortam değişkeni eşdeğeri: OPENCLAW_LOAD_SHELL_ENV=1. Varsayılan timeoutMs: 15000.
Yapılandırma değerlerinde ortam değişkeni ikamesi
Herhangi bir yapılandırma dize değerinde ortam değişkenlerine ${VAR_NAME} ile başvurun:
{gateway: { auth: { token: "${OPENCLAW_GATEWAY_TOKEN}" } },models: { providers: { custom: { apiKey: "${CUSTOM_API_KEY}" } } },}Kurallar:
- Yalnızca büyük harfli adlar eşleştirilir:
[A-Z_][A-Z0-9_]* - Eksik/boş değişkenler yükleme sırasında hata oluşturur
- Değişmez çıktı için
$${VAR}ile kaçış uygulayın $includedosyalarının içinde çalışır- Satır içi ikame:
"${BASE}/v1"→"https://api.example.com/v1"
Gizli bilgi başvuruları (ortam, dosya, çalıştırma)
SecretRef nesnelerini destekleyen alanlarda şunları kullanabilirsiniz:
{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: { serviceAccount: { source: "exec", provider: "vault", id: "channels/googlechat/serviceAccount", }, },},}SecretRef ayrıntıları (env/file/exec için secrets.providers dahil) Gizli Bilgi Yönetimi sayfasındadır.
Desteklenen kimlik bilgisi yolları SecretRef Kimlik Bilgisi Yüzeyi sayfasında listelenmiştir.
Tam öncelik sırası ve kaynaklar için Ortam sayfasına bakın.
Tam başvuru
Alanların tamamını tek tek açıklayan başvuru için Yapılandırma Başvurusu sayfasına bakın.
İlgili: Yapılandırma Örnekleri · Yapılandırma Başvurusu · Doctor