Configuration
OpenClaw,~/.openclaw/openclaw.json içinden isteğe bağlı bir yapılandırması okur.
Dosya yoksa OpenClaw güvenli varsayılanları kullanır. Yapılandırma eklemek için yaygın nedenler:
- Kanalları bağlamak ve bot’a kimlerin mesaj gönderebileceğini kontrol etmek
- Modelleri, araçları, sandbox kullanımını veya otomasyonu ayarlamak (cron, hook’lar)
- Oturumları, medyayı, ağı veya kullanıcı arayüzünü ince ayarlamak
Minimal yapılandırma
Yapılandırmayı düzenleme
- Etkileşimli sihirbaz
- CLI (tek satırlık komutlar)
- Kontrol UI
- Doğrudan düzenleme
Sıkı doğrulama
Şema araç notları:openclaw config schema, Kontrol UI ve yapılandırma doğrulaması tarafından kullanılan aynı JSON Schema ailesini yazdırır.- Alan
titlevedescriptiondeğerleri, düzenleyici ve form araçları için şema çıktısına taşınır. - İç içe nesne, joker (
*) ve dizi öğesi ([]) girişleri, eşleşen alan belgeleri bulunduğunda aynı belge meta verisini devralır. anyOf/oneOf/allOfbirleşim dalları da aynı belge meta verisini devralır; böylece union/intersection varyantları aynı alan yardımını korur.config.schema.lookup, bir normalize edilmiş yapılandırma yolunu; sığ bir şema düğümüyle (title,description,type,enum,const, yaygın sınırlar ve benzer doğrulama alanları), eşleşen UI ipucu meta verisiyle ve ayrıntılı araçlar için hemen alt çocuk özetleriyle döndürür.- Gateway mevcut manifest kaydını yükleyebildiğinde çalışma zamanı eklenti/kanal şemaları buna birleştirilir.
- Gateway açılmaz
- Yalnızca tanılama komutları çalışır (
openclaw doctor,openclaw logs,openclaw health,openclaw status) - Tam sorunları görmek için
openclaw doctorçalıştırın - Onarımları uygulamak için
openclaw doctor --fix(veya--yes) çalıştırın
Yaygın görevler
Bir kanal kurma (WhatsApp, Telegram, Discord vb.)
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:- 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
Modelleri seçme ve yapılandırma
Modelleri seçme ve yapılandırma
Birincil modeli ve isteğe bağlı geri dönüşleri ayarlayın:
agents.defaults.models, model kataloğunu tanımlar ve/modeliçin izin listesi görevi görür.- Model başvuruları
provider/modelbiçimini kullanır (ör.anthropic/claude-opus-4-6). agents.defaults.imageMaxDimensionPx, transkript/araç görüntüsü küçültmeyi denetler (varsayılan1200); daha düşük değerler genellikle ekran görüntüsü ağırlıklı çalıştırmalarda vision token kullanımını azaltır.- Sohbet içinde model değiştirme için Models CLI, kimlik doğrulama rotasyonu ve geri dönüş davranışı için Model Failover bölümüne bakın.
- Özel/self-hosted sağlayıcılar için başvurudaki Custom providers bölümüne bakın.
Bot'a kimlerin mesaj gönderebileceğini kontrol etme
Bot'a kimlerin mesaj gönderebileceğini kontrol etme
DM erişimi kanal başına
dmPolicy ile denetlenir:"pairing"(varsayılan): bilinmeyen göndericiler onay için tek kullanımlık bir eşleme kodu alır"allowlist": yalnızcaallowFromiçindeki göndericiler (veya eşlenmiş izin deposu)"open": tüm gelen DM’lere izin verilir (allowFrom: ["*"]gerektirir)"disabled": tüm DM’leri yok sayar
groupPolicy + groupAllowFrom veya kanala özgü izin listelerini kullanın.Kanal başına ayrıntılar için tam başvuruya bakın.Grup sohbeti mention geçitlemesini kurma
Grup sohbeti mention geçitlemesini kurma
Grup mesajları varsayılan olarak mention gerektirir. Ajan başına kalıpları yapılandırın:
- Meta veri mention’ları: yerel @-mention’lar (WhatsApp dokunarak mention, Telegram @bot vb.)
- Metin kalıpları:
mentionPatternsiçindeki güvenli regex kalıpları - Kanal başına geçersiz kılmalar ve self-chat modu için tam başvuruya bakın.
Ajan başına Skills kısıtlama
Ajan başına Skills kısıtlama
Paylaşılan bir temel için
agents.defaults.skills kullanın, ardından belirli
ajanları agents.list[].skills ile geçersiz kılın:- Varsayılan olarak kısıtlanmamış Skills için
agents.defaults.skillsdeğerini atlayın. - Varsayılanları devralmak için
agents.list[].skillsdeğerini atlayın. - Skill olmaması için
agents.list[].skills: []ayarlayın. - Skills, Skills config ve Configuration Reference bölümüne bakın.
Gateway kanal sağlık izlemeyi ayarlama
Gateway kanal sağlık izlemeyi ayarlama
Gateway’in eski görünümlü kanalları ne kadar agresif biçimde yeniden başlatacağını denetleyin:
- Sağlık izleme yeniden başlatmalarını küresel olarak devre dışı bırakmak için
gateway.channelHealthCheckMinutes: 0ayarlayın. channelStaleEventThresholdMinutes, denetim aralığından büyük veya ona eşit olmalıdır.- Küresel izleyiciyi kapatmadan tek bir kanal veya hesap için otomatik yeniden başlatmaları kapatmak amacıyla
channels.<provider>.healthMonitor.enabledveyachannels.<provider>.accounts.<id>.healthMonitor.enabledkullanın. - Operasyonel hata ayıklama için Health Checks ve tüm alanlar için tam başvuruya bakın.
Oturumları ve sıfırlamaları yapılandırma
Oturumları ve sıfırlamaları yapılandırma
Oturumlar, konuşmanın sürekliliğini ve yalıtımını denetler:
dmScope:main(paylaşılan) |per-peer|per-channel-peer|per-account-channel-peerthreadBindings: iş parçacığına bağlı oturum yönlendirmesi için küresel varsayılanlar (Discord/focus,/unfocus,/agents,/session idleve/session max-agedestekler).- Kapsamlama, kimlik bağlantıları ve gönderme ilkesi için Session Management bölümüne bakın.
- Tüm alanlar için tam başvuruya bakın.
Sandbox kullanımını etkinleştirme
Sandbox kullanımını etkinleştirme
Ajan oturumlarını yalıtılmış Docker kapsayıcılarında çalıştırın:Önce imajı oluşturun:
scripts/sandbox-setup.shTam kılavuz için Sandboxing, tüm seçenekler için tam başvuruya bakın.Resmi iOS sürümleri için relay destekli push'u etkinleştirme
Resmi iOS sürümleri için relay destekli push'u etkinleştirme
Relay destekli push, CLI eşdeğeri:Bunun yaptığı şey:
openclaw.json içinde yapılandırılır.Bunu gateway yapılandırmasında ayarlayın:- Gateway’in
push.test, uyandırma dürtmeleri ve yeniden bağlanma uyandırmalarını harici relay üzerinden göndermesine izin verir. - Eşlenmiş iOS uygulaması tarafından iletilen, kayıt kapsamlı bir gönderme izni kullanır. Gateway’in dağıtım genelinde bir relay belirtecine ihtiyacı yoktur.
- Her relay destekli kaydı, iOS uygulamasının eşlendiği gateway kimliğine bağlar; böylece başka bir gateway saklanan kaydı yeniden kullanamaz.
- Yerel/elle oluşturulmuş iOS sürümlerini doğrudan APNs üzerinde tutar. Relay destekli gönderimler yalnızca relay üzerinden kaydolmuş resmi dağıtılmış sürümlere uygulanır.
- Resmi/TestFlight iOS sürümüne gömülü relay temel URL’siyle eşleşmelidir; böylece kayıt ve gönderim trafiği aynı relay dağıtımına ulaşır.
- Aynı relay temel URL’siyle derlenmiş resmi/TestFlight iOS sürümünü yükleyin.
- Gateway üzerinde
gateway.push.apns.relay.baseUrlayarlayın. - iOS uygulamasını gateway ile eşleyin ve hem düğüm hem operatör oturumlarının bağlanmasına izin verin.
- iOS uygulaması gateway kimliğini alır, App Attest ile uygulama makbuzunu kullanarak relay’e kaydolur ve ardından relay destekli
push.apns.registeryükünü eşlenmiş gateway’e yayımlar. - Gateway relay tanıtıcısını ve gönderme iznini saklar, ardından bunları
push.test, uyandırma dürtmeleri ve yeniden bağlanma uyandırmaları için kullanır.
- iOS uygulamasını farklı bir gateway’e geçirirseniz, uygulamayı yeniden bağlayın ki bu gateway’e bağlı yeni bir relay kaydı yayımlayabilsin.
- Farklı bir relay dağıtımını işaret eden yeni bir iOS sürümü yayımlarsanız, uygulama eski relay kaynağını yeniden kullanmak yerine önbelleğe alınmış relay kaydını yeniler.
OPENCLAW_APNS_RELAY_BASE_URLveOPENCLAW_APNS_RELAY_TIMEOUT_MShâlâ geçici ortam değişkeni geçersiz kılmaları olarak çalışır.OPENCLAW_APNS_RELAY_ALLOW_HTTP=trueyalnızca loopback geliştirmesi için bir kaçış noktası olmaya devam eder; HTTP relay URL’lerini yapılandırmada kalıcı hale getirmeyin.
Heartbeat kurma (dönemsel yoklamalar)
Heartbeat kurma (dönemsel yoklamalar)
every: süre dizgesi (30m,2h). Devre dışı bırakmak için0mayarlayın.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ırma
Cron işlerini yapılandırma
sessionRetention: tamamlanmış yalıtılmış çalıştırma oturumlarınısessions.jsoniçinden budar (varsayılan24h; devre dışı bırakmak içinfalseayarlayın).runLog:cron/runs/<jobId>.jsonldosyasını boyut ve korunacak satır sayısına göre budar.- Özellik genel görünümü ve CLI örnekleri için Cron jobs bölümüne bakın.
Webhook'ları (hook'ları) kurma
Webhook'ları (hook'ları) kurma
Gateway üzerinde HTTP webhook uç noktalarını etkinleştirin:Güvenlik notu:
- Tüm hook/webhook yük içeriğini güvenilmez girdi olarak değerlendirin.
- Özel bir
hooks.tokenkullanın; paylaşılan Gateway belirtecini yeniden kullanmayın. - Hook kimlik doğrulaması yalnızca başlık temellidir (
Authorization: Bearer ...veyax-openclaw-token); sorgu dizgesi belirteçleri reddedilir. hooks.path,/olamaz; webhook girişini/hooksgibi özel bir alt yolda tutun.- Sıkı kapsamlı hata ayıklama yapmıyorsanız güvensiz içerik atlama bayraklarını (
hooks.gmail.allowUnsafeExternalContent,hooks.mappings[].allowUnsafeExternalContent) devre dışı bırakılmış halde tutun. hooks.allowRequestSessionKeyetkinse, çağıranın seçtiği oturum anahtarlarını sınırlamak içinhooks.allowedSessionKeyPrefixesde ayarlayın.- Hook tarafından sürülen ajanlar için güçlü modern model katmanlarını ve sıkı araç ilkesini tercih edin (örneğin mümkün olduğunda yalnızca mesajlaşma + sandbox).
Çok ajanlı yönlendirmeyi yapılandırma
Çok ajanlı yönlendirmeyi yapılandırma
Ayrı çalışma alanları ve oturumlarla birden fazla yalıtılmış ajan çalıştırın:Bağlama kuralları ve ajan başına erişim profilleri için Multi-Agent ve tam başvuruya bakın.
Yapılandırmayı birden fazla dosyaya bölme ($include)
Yapılandırmayı birden fazla dosyaya bölme ($include)
Büyük yapılandırmaları düzenlemek için
$include kullanın:- Tek dosya: kapsayan nesnenin yerini alır
- Dosya dizisi: sırayla derin birleştirilir (sonraki kazanır)
- Kardeş anahtarlar: include’lardan sonra birleştirilir (dahil edilen değerleri geçersiz kılar)
- İç içe include’lar: 10 düzeye kadar desteklenir
- Göreli yollar: include eden dosyaya göre çözülür
- Hata işleme: eksik dosyalar, ayrıştırma hataları ve döngüsel include’lar için açık hatalar
Yapılandırma anında 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.
Yeniden yükleme modları
| Mod | Davranış |
|---|---|
hybrid (varsayılan) | Güvenli değişiklikleri anında uygular. Kritik olanlar için otomatik olarak yeniden başlatır. |
hot | Yalnızca güvenli değişiklikleri anında uygular. Yeniden başlatma gerektiğinde bir uyarı kaydeder — bunu siz yaparsınız. |
restart | Güvenli olsun olmasın her 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 elle yeniden başlatmada etkili olur. |
Neler anında uygulanır, neler yeniden başlatma ister
Çoğu alan kesinti olmadan anında uygulanır.hybrid modunda, yeniden başlatma gerektiren değişiklikler otomatik olarak ele alınır.
| Kategori | Alanlar | Yeniden başlatma gerekir mi? |
|---|---|---|
| Kanallar | channels.*, web (WhatsApp) — tüm yerleşik ve uzantı kanalları | Hayır |
| Ajan ve modeller | agent, agents, models, routing | Hayır |
| Otomasyon | hooks, cron, agent.heartbeat | Hayır |
| Oturumlar ve mesajlar | session, messages | Hayır |
| Araçlar ve medya | tools, browser, skills, audio, talk | Hayır |
| UI ve diğerleri | ui, logging, identity, bindings | Hayır |
| Gateway sunucusu | gateway.* (port, bind, auth, tailscale, TLS, HTTP) | Evet |
| Altyapı | discovery, canvasHost, plugins | Evet |
gateway.reload ve gateway.remote istisnadır — bunları değiştirmek yeniden başlatmayı tetiklemez.Config RPC (programlı güncellemeler)
Kontrol düzlemi yazma RPC’leri (
config.apply, config.patch, update.run) deviceId+clientIp başına 60 saniyede 3 istek ile hız sınırlıdır. Sınır uygulandığında, RPC retryAfterMs ile birlikte UNAVAILABLE döndürür.config.schema.lookup: sığ bir şema düğümü, eşleşen ipucu meta verisi ve hemen alt çocuk özetleriyle tek bir yol kapsamlı yapılandırma alt ağacını inceleyinconfig.get: mevcut anlık görüntüyü + hash’i alınconfig.patch: tercih edilen kısmi güncelleme yoluconfig.apply: yalnızca tam yapılandırma değiştirme içinupdate.run: açık self-update + yeniden başlatma
config.schema.lookup
ardından config.patch tercih edin.
config.apply (tam değiştirme)
config.apply (tam değiştirme)
Tam yapılandırmayı tek adımda doğrular + yazar ve Gateway’i yeniden başlatır.Parametreler:
raw(string) — tüm yapılandırma için JSON5 yükübaseHash(isteğe bağlı) —config.getiçinden gelen yapılandırma hash’i (yapılandırma varsa gereklidir)sessionKey(isteğe bağlı) — yeniden başlatma sonrası uyandırma ping’i için oturum anahtarınote(isteğe bağlı) — yeniden başlatma sentinel’i için notrestartDelayMs(isteğe bağlı) — yeniden başlatma öncesi gecikme (varsayılan 2000)
config.patch (kısmi güncelleme)
config.patch (kısmi güncelleme)
Kısmi bir güncellemeyi mevcut yapılandırmayla birleştirir (JSON merge patch semantiği):
- Nesneler özyineli olarak birleştirilir
nullbir anahtarı siler- Diziler yer değiştirir
raw(string) — yalnızca değişecek anahtarları içeren JSON5baseHash(zorunlu) —config.getiçinden gelen yapılandırma hash’isessionKey,note,restartDelayMs—config.applyile aynı
config.apply ile aynıdır: bekleyen yeniden başlatmalar birleştirilir ve yeniden başlatma döngüleri arasında 30 saniyelik bir soğuma süresi vardır.Ortam değişkenleri
OpenClaw, üst süreçten gelen ortam değişkenlerini ve ayrıca şunları okur:- geçerli çalışma dizinindeki
.envdosyası (varsa) ~/.openclaw/.env(küresel geri dönüş)
Kabuk env içe aktarma (isteğe bağlı)
Kabuk env içe aktarma (isteğe bağlı)
Etkinleştirilirse ve beklenen anahtarlar ayarlı değilse, OpenClaw oturum açma kabuğunuzu çalıştırır ve yalnızca eksik anahtarları içe aktarır:Ortam değişkeni eşdeğeri:
OPENCLAW_LOAD_SHELL_ENV=1Yapılandırma değerlerinde ortam değişkeni yerine koyma
Yapılandırma değerlerinde ortam değişkeni yerine koyma
Herhangi bir yapılandırma string değerinde Kurallar:
${VAR_NAME} ile ortam değişkenlerine başvurun:- Yalnızca şu biçimle eşleşen büyük harf adları eşleştirilir:
[A-Z_][A-Z0-9_]* - Eksik/boş değişkenler yükleme sırasında hata verir
- Değişmez çıktı için
$${VAR}ile kaçırın $includedosyaları içinde de çalışır- Satır içi yerine koyma:
"${BASE}/v1"→"https://api.example.com/v1"
Secret refs (env, file, exec)
Secret refs (env, file, exec)
SecretRef nesnelerini destekleyen alanlar için şunları kullanabilirsiniz:
env/file/exec için secrets.providers dahil SecretRef ayrıntıları Secrets Management bölümündedir.
Desteklenen kimlik bilgisi yolları SecretRef Credential Surface bölümünde listelenmiştir.Tam başvuru
Alan alan tam başvuru için Configuration Reference bölümüne bakın.İlgili: Configuration Examples · Configuration Reference · Doctor