Gateway
Yapılandırma — ajanlar
agents.*, multiAgent.*, session.*,
messages.* ve talk.* altındaki ajan kapsamlı yapılandırma anahtarları.
Kanallar, araçlar, Gateway çalışma zamanı ve diğer üst düzey anahtarlar için
Yapılandırma referansına bakın.
Ajan varsayılanları
agents.defaults.workspace
Varsayılan: ayarlanmışsa OPENCLAW_WORKSPACE_DIR, aksi takdirde ~/.openclaw/workspace (OPENCLAW_PROFILE varsayılan olmayan bir profile ayarlanmışsa ~/.openclaw/workspace-<profile>).
{ agents: { defaults: { workspace: "~/.openclaw/workspace" } },}Açıkça belirtilen bir agents.defaults.workspace değeri,
OPENCLAW_WORKSPACE_DIR değerine göre önceliklidir. Bu yolu yapılandırmaya yazmak
istemediğinizde varsayılan ajanları bağlanmış bir çalışma alanına yönlendirmek için
ortam değişkenini kullanın.
agents.defaults.repoRoot
Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ayarlanmamışsa OpenClaw, çalışma alanından yukarı doğru ilerleyerek otomatik olarak algılar.
{ agents: { defaults: { repoRoot: "~/Projects/openclaw" } },}agents.defaults.skills
agents.list[].skills değerini ayarlamayan ajanlar için isteğe bağlı varsayılan
beceri izin listesi.
{ agents: { defaults: { skills: ["github", "weather"] }, list: [ { id: "writer" }, // github ve weather değerlerini devralır { id: "docs", skills: ["docs-search"] }, // varsayılanların yerini alır { id: "locked-down", skills: [] }, // beceri yok ], },}- Varsayılan olarak sınırsız beceriler için
agents.defaults.skillsdeğerini belirtmeyin. - Varsayılanları devralmak için
agents.list[].skillsdeğerini belirtmeyin. - Hiçbir beceri olmaması için
agents.list[].skills: []değerini ayarlayın. - Boş olmayan bir
agents.list[].skillslistesi, söz konusu ajanın nihai kümesidir; varsayılanlarla birleştirilmez.
agents.defaults.skipBootstrap
Çalışma alanı önyükleme dosyalarının (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md) otomatik oluşturulmasını devre dışı bırakır.
{ agents: { defaults: { skipBootstrap: true } },}agents.defaults.skipOptionalBootstrapFiles
Gerekli önyükleme dosyaları (AGENTS.md, TOOLS.md, BOOTSTRAP.md) yazılmaya devam ederken seçili isteğe bağlı çalışma alanı dosyalarının oluşturulmasını atlar. Geçerli değerler: SOUL.md, USER.md, HEARTBEAT.md ve IDENTITY.md.
{ agents: { defaults: { skipOptionalBootstrapFiles: ["SOUL.md", "USER.md"], }, },}agents.defaults.contextInjection
Çalışma alanı önyükleme dosyalarının sistem istemine ne zaman ekleneceğini denetler. Varsayılan: "always".
"continuation-skip": güvenli devam turları (tamamlanmış bir asistan yanıtından sonra), çalışma alanı önyüklemesinin yeniden eklenmesini atlayarak istem boyutunu küçültür. Heartbeat çalıştırmaları ve Compaction sonrası yeniden denemeler bağlamı yine yeniden oluşturur."never": her turda çalışma alanı önyüklemesini ve bağlam dosyası eklemeyi devre dışı bırakır. Bunu yalnızca istem yaşam döngüsünü tamamen yöneten ajanlar (özel bağlam motorları, kendi bağlamını oluşturan yerel çalışma zamanları veya önyüklemesiz özel iş akışları) için kullanın. Heartbeat ve Compaction kurtarma turları da eklemeyi atlar.
{ agents: { defaults: { contextInjection: "continuation-skip" } },}Ajan başına geçersiz kılma: agents.list[].contextInjection. Belirtilmeyen değerler
agents.defaults.contextInjection değerini devralır.
agents.defaults.bootstrapMaxChars
Kesilmeden önce çalışma alanı önyükleme dosyası başına azami karakter sayısı. Varsayılan: 20000.
{ agents: { defaults: { bootstrapMaxChars: 20000 } },}Ajan başına geçersiz kılma: agents.list[].bootstrapMaxChars. Belirtilmeyen değerler
agents.defaults.bootstrapMaxChars değerini devralır.
agents.defaults.bootstrapTotalMaxChars
Tüm çalışma alanı önyükleme dosyalarından eklenen toplam azami karakter sayısı. Varsayılan: 60000.
{ agents: { defaults: { bootstrapTotalMaxChars: 60000 } },}Ajan başına geçersiz kılma: agents.list[].bootstrapTotalMaxChars. Belirtilmeyen değerler
agents.defaults.bootstrapTotalMaxChars değerini devralır.
Ajan başına önyükleme profili geçersiz kılmaları
Bir ajanın paylaşılan varsayılanlardan farklı istem ekleme davranışına
ihtiyacı olduğunda ajan başına önyükleme profili geçersiz kılmalarını kullanın.
Belirtilmeyen alanlar agents.defaults değerinden devralınır.
{ agents: { defaults: { contextInjection: "continuation-skip", bootstrapMaxChars: 20000, bootstrapTotalMaxChars: 60000, }, list: [ { id: "strict-worker", contextInjection: "always", bootstrapMaxChars: 50000, bootstrapTotalMaxChars: 300000, }, ], },}agents.defaults.bootstrapPromptTruncationWarning
Önyükleme bağlamı kesildiğinde ajan tarafından görülebilen sistem istemi bildirimini denetler.
Varsayılan: "always".
"off": sistem istemine hiçbir zaman kesilme bildirimi metni eklemez."once": her benzersiz kesilme imzası için bir kez kısa bir bildirim ekler."always": kesilme olduğunda her çalıştırmada kısa bir bildirim ekler (önerilir).
Ayrıntılı ham/eklenen sayımlar ve yapılandırma ayarlama alanları, bağlam/durum raporları ve günlükler gibi tanılama yüzeylerinde kalır; rutin WebChat kullanıcı/çalışma zamanı bağlamına yalnızca kısa kurtarma bildirimi eklenir.
{ agents: { defaults: { bootstrapPromptTruncationWarning: "always" } }, // off | once | always}Bağlam bütçesi sahiplik haritası
OpenClaw birden fazla yüksek hacimli istem/bağlam bütçesine sahiptir ve bunlar, tümü tek bir genel ayardan geçmek yerine kasıtlı olarak alt sistemlere ayrılmıştır.
| Bütçe | Kapsam |
|---|---|
agents.defaults.bootstrapMaxChars / bootstrapTotalMaxChars |
Normal çalışma alanı önyükleme ekleme |
agents.defaults.startupContext.* |
Son günlük memory/*.md dosyaları dahil olmak üzere tek seferlik sıfırlama/başlatma model çalıştırması ön bilgisi. Yalın sohbet /new ve /reset komutları, model çağrılmadan onaylanır |
skills.limits.* |
Sistem istemine eklenen kompakt beceri listesi |
agents.defaults.contextLimits.* |
Sınırlandırılmış çalışma zamanı alıntıları ve çalışma zamanının sahip olduğu eklenmiş bloklar |
memory.qmd.limits.* |
Dizinlenmiş bellek arama parçacığı ve ekleme boyutlandırması |
Eşleşen ajan başına geçersiz kılmalar:
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextInjectionagents.list[].bootstrapMaxCharsagents.list[].bootstrapTotalMaxCharsagents.list[].contextLimits.*
agents.defaults.startupContext
Sıfırlama/başlatma model çalıştırmalarında ilk tura eklenen başlangıç ön bilgisini
denetler. Yalın sohbet /new ve /reset komutları, model çağrılmadan
sıfırlamayı onayladığından bu ön bilgiyi yüklemez.
{ agents: { defaults: { startupContext: { enabled: true, applyOn: ["new", "reset"], dailyMemoryDays: 2, maxFileBytes: 16384, maxFileChars: 1200, maxTotalChars: 2800, }, }, },}agents.defaults.contextLimits
Sınırlandırılmış çalışma zamanı bağlam yüzeyleri için paylaşılan varsayılanlar.
{ agents: { defaults: { contextLimits: { memoryGetMaxChars: 12000, memoryGetDefaultLines: 120, postCompactionMaxChars: 1800, }, }, },}memoryGetMaxChars: kesilme meta verileri ve devam bildirimi eklenmeden önceki varsayılanmemory_getalıntı sınırı.memoryGetDefaultLines:linesbelirtilmediğinde varsayılanmemory_getsatır penceresi.toolResultMaxChars: kalıcı sonuçlar ve taşma kurtarması için kullanılan gelişmiş canlı araç sonucu üst sınırı. Model bağlamı otomatik sınırı için ayarlamadan bırakın: 100K tokenın altında16000karakter, 100K+ tokenda32000karakter ve 200K+ tokenda64000karakter. Uzun bağlamlı modeller için1000000değerine kadar açık değerler kabul edilir, ancak etkin sınır yine model bağlam penceresinin yaklaşık %30'u ile sınırlıdır.openclaw doctor --deepetkin sınırı yazdırır ve doctor yalnızca açıkça belirtilen bir geçersiz kılma eskimişse veya etkisizse uyarır.postCompactionMaxChars: Compaction sonrası yenileme eklemesi sırasında kullanılan AGENTS.md alıntı sınırı.
agents.list[].contextLimits
Paylaşılan contextLimits ayarları için ajan başına geçersiz kılma. Belirtilmeyen alanlar
agents.defaults.contextLimits değerinden devralınır.
{ agents: { defaults: { contextLimits: { memoryGetMaxChars: 12000 }, }, list: [ { id: "tiny-local", contextLimits: { memoryGetMaxChars: 6000, toolResultMaxChars: 8000, // bu ajan için gelişmiş üst sınır }, }, ], },}skills.limits.maxSkillsPromptChars
Sistem istemine eklenen kompakt beceri listesi için genel sınır. Bu,
SKILL.md dosyalarının gerektiğinde okunmasını etkilemez.
{ skills: { limits: { maxSkillsPromptChars: 18000 } },}agents.list[].skillsLimits.maxSkillsPromptChars
Beceri istemi bütçesi için ajan başına geçersiz kılma.
{ agents: { list: [{ id: "tiny-local", skillsLimits: { maxSkillsPromptChars: 6000 } }], },}agents.defaults.imageMaxDimensionPx
Sağlayıcı çağrılarından önce transkript/araç görüntü bloklarında görüntünün en uzun kenarı için azami piksel boyutu.
Varsayılan: 1200.
Daha düşük değerler, ekran görüntüsü ağırlıklı çalıştırmalarda genellikle görüntü tokenı kullanımını ve istek yükü boyutunu azaltır. Daha yüksek değerler daha fazla görsel ayrıntıyı korur.
{ agents: { defaults: { imageMaxDimensionPx: 1200 } },}agents.defaults.imageQuality
Dosya yollarından, URL'lerden ve medya referanslarından yüklenen görüntüler için görüntü aracı sıkıştırma/ayrıntı tercihi.
Varsayılan: auto.
OpenClaw, yeniden boyutlandırma kademesini seçilen görüntü modeline uyarlar. Örneğin Claude Opus 4.8, OpenAI GPT-5.6 Sol, Qwen VL ve barındırılan Llama 4 görüntü modelleri eski/varsayılan yüksek ayrıntılı görüntü yollarından daha büyük görüntüler kullanabilirken, token ve gecikme maliyetini denetlemek için çok görüntülü turlar auto modunda daha agresif biçimde sıkıştırılır.
Değerler:
auto: model sınırlarına ve görüntü sayısına uyarlanır.efficient: daha düşük token ve bayt kullanımı için daha küçük görüntüleri tercih eder.balanced: standart orta yol kademesini kullanır.high: ekran görüntüleri, diyagramlar ve belge görüntüleri için daha fazla ayrıntıyı korur.
{ agents: { defaults: { imageQuality: "auto" } },}agents.defaults.userTimezone
Sistem istemi bağlamı için saat dilimi (ileti zaman damgaları için değil). Ana makinenin saat dilimine geri döner.
{ agents: { defaults: { userTimezone: "America/Chicago" } },}agents.defaults.timeFormat
Sistem istemindeki saat biçimi. Varsayılan: auto (işletim sistemi tercihi).
{ agents: { defaults: { timeFormat: "auto" } }, // auto | 12 | 24}agents.defaults.model
{ agents: { defaults: { models: { "anthropic/claude-opus-4-6": { alias: "opus" }, "minimax/MiniMax-M2.7": { alias: "minimax" }, }, model: { primary: "anthropic/claude-opus-4-6", fallbacks: ["minimax/MiniMax-M2.7"], }, utilityModel: "openai/gpt-5.4-mini", imageModel: { primary: "openrouter/qwen/qwen-2.5-vl-72b-instruct:free", fallbacks: ["openrouter/google/gemini-2.0-flash-vision:free"], }, imageGenerationModel: { primary: "openai/gpt-image-2", fallbacks: ["google/gemini-3.1-flash-image-preview"], }, videoGenerationModel: { primary: "qwen/wan2.6-t2v", fallbacks: ["qwen/wan2.6-i2v"], }, pdfModel: { primary: "anthropic/claude-opus-4-6", fallbacks: ["openai/gpt-5.4-mini"], }, params: { cacheRetention: "long" }, // genel varsayılan sağlayıcı parametreleri pdfMaxBytesMb: 10, pdfMaxPages: 20, thinkingDefault: "low", verboseDefault: "off", toolProgressDetail: "explain", reasoningDefault: "off", elevatedDefault: "on", timeoutSeconds: 600, mediaMaxMb: 5, contextTokens: 200000, maxConcurrent: 4, }, },}model: bir dizeyi ("provider/model") veya bir nesneyi ({ primary, fallbacks }) kabul eder.- Dize biçimi yalnızca birincil modeli ayarlar.
- Nesne biçimi, birincil modeli ve sıralı yük devretme modellerini ayarlar.
utilityModel: kısa dahili görevler için isteğe bağlıprovider/modelreferansı veya diğer adı. Şu anda oluşturulan Control UI oturum başlıklarını, Telegram DM konu başlıklarını, Discord otomatik ileti dizisi başlıklarını ve ilerleme taslağı anlatımını destekler. Ayarlanmadığında OpenClaw, varsa birincil sağlayıcının bildirdiği küçük model varsayılanını türetir (OpenAI →gpt-5.6-luna, Anthropic →claude-haiku-4-5); aksi durumda başlık görevleri aracının birincil modeline geri döner ve anlatım kapalı kalır. Yardımcı yönlendirmeyi tamamen devre dışı bırakmak içinutilityModel: ""ayarlayın.agents.list[].utilityModelvarsayılanı geçersiz kılar (boş bir aracı başına değer, ilgili aracı için bunu devre dışı bırakır) ve işleme özgü model geçersiz kılması her ikisinden de önceliklidir. Yardımcı görevler ayrı model çağrıları yapar ve göreve özgü içeriği seçilen model sağlayıcısına gönderir. Pano başlığı oluşturma, komut olmayan ilk iletinin en fazla ilk 1.000 karakterini gönderir; anlatım ise gelen isteği ve kısa, hassas bilgileri çıkarılmış araç özetlerini gönderir. Maliyet ve veri işleme gereksinimlerinize uygun bir sağlayıcı seçin.imageModel: bir dizeyi ("provider/model") veya bir nesneyi ({ primary, fallbacks }) kabul eder.- Etkin model görüntüleri kabul edemediğinde,
imagearaç yolu tarafından görüntü modeli yapılandırması olarak kullanılır. Bunun yerine yerel görüntü yetenekli modeller, yüklenen görüntü baytlarını doğrudan alır. - Seçilen/varsayılan model görüntü girdisini kabul edemediğinde yedek yönlendirme olarak da kullanılır.
- Açık
provider/modelreferanslarını tercih edin. Çıplak kimlikler uyumluluk amacıyla kabul edilir; çıplak bir kimlik,models.providers.*.modelsiçinde yapılandırılmış görüntü yetenekli tek bir girişle benzersiz biçimde eşleşirse OpenClaw bunu ilgili sağlayıcıyla niteler. Birden fazla yapılandırılmış eşleşme, açık bir sağlayıcı öneki gerektirir.
- Etkin model görüntüleri kabul edemediğinde,
imageGenerationModel: bir dizeyi ("provider/model") veya bir nesneyi ({ primary, fallbacks }) kabul eder.- Paylaşılan görüntü oluşturma yeteneği ve görüntü oluşturan gelecekteki tüm araç/plugin yüzeyleri tarafından kullanılır.
- Tipik değerler: yerel Gemini görüntü oluşturma için
google/gemini-3.1-flash-image-preview, fal içinfal/fal-ai/flux/dev, OpenAI Images içinopenai/gpt-image-2veya şeffaf arka planlı OpenAI PNG/WebP çıktısı içinopenai/gpt-image-1.5. - Bir sağlayıcı/modeli doğrudan seçerseniz eşleşen sağlayıcı kimlik doğrulamasını da yapılandırın (örneğin
google/*içinGEMINI_API_KEYveyaGOOGLE_API_KEY,openai/gpt-image-2/openai/gpt-image-1.5içinOPENAI_API_KEYveya OpenAI Codex OAuth,fal/*içinFAL_KEY). - Belirtilmezse
image_generate, kimlik doğrulamasıyla desteklenen bir sağlayıcı varsayılanını yine de belirleyebilir. Önce mevcut varsayılan sağlayıcıyı, ardından kayıtlı diğer görüntü oluşturma sağlayıcılarını sağlayıcı kimliği sırasıyla dener.
musicGenerationModel: bir dizeyi ("provider/model") veya bir nesneyi ({ primary, fallbacks }) kabul eder.- Paylaşılan müzik oluşturma yeteneği ve yerleşik
music_generatearacı tarafından kullanılır. - Tipik değerler:
google/lyria-3-clip-preview,google/lyria-3-pro-previewveyaminimax/music-2.6. - Belirtilmezse
music_generate, kimlik doğrulamasıyla desteklenen bir sağlayıcı varsayılanını yine de belirleyebilir. Önce mevcut varsayılan sağlayıcıyı, ardından kayıtlı diğer müzik oluşturma sağlayıcılarını sağlayıcı kimliği sırasıyla dener. - Bir sağlayıcı/modeli doğrudan seçerseniz eşleşen sağlayıcı kimlik doğrulamasını/API anahtarını da yapılandırın.
- Paylaşılan müzik oluşturma yeteneği ve yerleşik
videoGenerationModel: bir dizeyi ("provider/model") veya bir nesneyi ({ primary, fallbacks }) kabul eder.- Paylaşılan video oluşturma yeteneği ve yerleşik
video_generatearacı tarafından kullanılır. - Tipik değerler:
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flashveyaqwen/wan2.7-r2v. - Belirtilmezse
video_generate, kimlik doğrulamasıyla desteklenen bir sağlayıcı varsayılanını yine de belirleyebilir. Önce mevcut varsayılan sağlayıcıyı, ardından kayıtlı diğer video oluşturma sağlayıcılarını sağlayıcı kimliği sırasıyla dener. - Bir sağlayıcı/modeli doğrudan seçerseniz eşleşen sağlayıcı kimlik doğrulamasını/API anahtarını da yapılandırın.
- Resmî Qwen video oluşturma plugini en fazla 1 çıktı videosunu, 1 girdi görüntüsünü, 4 girdi videosunu, 10 saniye süreyi ve sağlayıcı düzeyindeki
size,aspectRatio,resolution,audiovewatermarkseçeneklerini destekler.
- Paylaşılan video oluşturma yeteneği ve yerleşik
pdfModel: bir dizeyi ("provider/model") veya bir nesneyi ({ primary, fallbacks }) kabul eder.- Model yönlendirmesi için
pdfaracı tarafından kullanılır. - Belirtilmezse PDF aracı önce
imageModeldeğerine, ardından çözümlenen oturum/varsayılan modele geri döner.
- Model yönlendirmesi için
pdfMaxBytesMb: çağrı sırasındamaxBytesMbiletilmediğindepdfaracı için varsayılan PDF boyutu sınırı.pdfMaxPages:pdfaracındaki ayıklama yedek modunun dikkate aldığı varsayılan azami sayfa sayısı.verboseDefault: aracılar için varsayılan ayrıntı düzeyi. Değerler:"off","on","full". Varsayılan:"off".toolProgressDetail:/verbosearaç özetleri ve ilerleme taslağı araç satırları için ayrıntı modu. Değerler:"explain"(varsayılan, kısa ve kullanıcı dostu etiketler) veya"raw"(mevcut olduğunda ham komutu/ayrıntıyı sona ekler). Aracı başınaagents.list[].toolProgressDetailbu varsayılanı geçersiz kılar.reasoningDefault: aracılar için varsayılan akıl yürütme görünürlüğü. Değerler:"off","on","stream". Aracı başınaagents.list[].reasoningDefaultbu varsayılanı geçersiz kılar. Yapılandırılmış akıl yürütme varsayılanları, yalnızca ileti veya oturum başına bir akıl yürütme geçersiz kılması ayarlanmamışsa sahipler, yetkili gönderenler veya operatör-yönetici Gateway bağlamları için uygulanır.elevatedDefault: aracılar için varsayılan yükseltilmiş çıktı düzeyi. Değerler:"off","on","ask","full". Varsayılan:"on".model.primary: biçimprovider/model(ör. Codex OAuth erişimi içinopenai/gpt-5.6-sol). Sağlayıcıyı belirtmezseniz OpenClaw önce bir diğer adı, ardından bu tam model kimliği için benzersiz bir yapılandırılmış sağlayıcı eşleşmesini dener ve ancak bundan sonra yapılandırılmış varsayılan sağlayıcıya geri döner (kullanımdan kaldırılmış uyumluluk davranışı; bu nedenle açıkprovider/modeltercih edin). Bu sağlayıcı artık yapılandırılmış varsayılan modeli sunmuyorsa OpenClaw, kaldırılmış bir sağlayıcıya ait geçersiz varsayılanı göstermek yerine yapılandırılmış ilk sağlayıcı/modele geri döner.models:/modeliçin yapılandırılmış model kataloğu ve izin listesi. Her girişalias(kısayol) veparams(sağlayıcıya özgü; örneğintemperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold, OpenRouterprovideryönlendirmesi,chat_template_kwargs,extra_body/extraBody) içerebilir.- Her model kimliğini elle listelemeden seçilen sağlayıcılar için keşfedilen tüm modelleri göstermek üzere
"openai/*": {}veya"vllm/*": {}gibiprovider/*girişlerini kullanın. - İlgili sağlayıcı için dinamik olarak keşfedilen her modelin aynı çalışma zamanını kullanması gerekiyorsa bir
provider/*girişineagentRuntimeekleyin. Tamprovider/modelçalışma zamanı ilkesi yine de joker karakterden önceliklidir. - Güvenli düzenlemeler: giriş eklemek için
openclaw config set agents.defaults.models '<json>' --strict-json --mergekullanın.--replaceiletmediğiniz sürececonfig set, mevcut izin listesi girişlerini kaldıracak değiştirmeleri reddeder. - Sağlayıcı kapsamlı yapılandırma/ilk katılım akışları, seçilen sağlayıcı modellerini bu haritayla birleştirir ve önceden yapılandırılmış ilgisiz sağlayıcıları korur.
- Doğrudan OpenAI Responses modellerinde sunucu tarafı Compaction otomatik olarak etkinleştirilir.
context_managementeklenmesini durdurmak içinparams.responsesServerCompaction: false, eşiği geçersiz kılmak içinparams.responsesCompactThresholdkullanın. Bkz. OpenAI sunucu tarafı Compaction.
- Her model kimliğini elle listelemeden seçilen sağlayıcılar için keşfedilen tüm modelleri göstermek üzere
params: tüm modellere uygulanan genel varsayılan sağlayıcı parametreleri.agents.defaults.paramskonumunda ayarlanır (ör.{ cacheRetention: "long" }).paramsbirleştirme önceliği (yapılandırma):agents.defaults.params(genel temel),agents.defaults.models["provider/model"].params(model başına) tarafından geçersiz kılınır; ardındanagents.list[].params(eşleşen aracı kimliği) anahtara göre geçersiz kılar. Ayrıntılar için İstem Önbelleğe Alma bölümüne bakın.models.providers.openrouter.params.provider: OpenRouter genelindeki varsayılan sağlayıcı yönlendirme ilkesi. OpenClaw bunu OpenRouter isteğininprovidernesnesine iletir; model başınaagents.defaults.models["openrouter/<model>"].params.providerve aracı parametreleri anahtara göre geçersiz kılar. Bkz. OpenRouter sağlayıcı yönlendirmesi.params.extra_body/params.extraBody: OpenAI uyumlu proxy'ler içinapi: "openai-completions"istek gövdelerine birleştirilen gelişmiş doğrudan iletim JSON'u. Oluşturulan istek anahtarlarıyla çakışırsa ek gövde öncelikli olur; yerel olmayan tamamlama yolları daha sonra yalnızca OpenAI'a özgüstorealanını yine de kaldırır.params.chat_template_kwargs: üst düzeyapi: "openai-completions"istek gövdelerine birleştirilen vLLM/OpenAI uyumlu sohbet şablonu bağımsız değişkenleri. Düşünme kapalıykenvllm/nemotron-3-*için paketlenmiş vLLM plugini otomatik olarakenable_thinking: falseveforce_nonempty_content: truegönderir; açıkchat_template_kwargsdeğerleri oluşturulan varsayılanları geçersiz kılar veextra_body.chat_template_kwargsyine son önceliğe sahiptir. Yapılandırılmış vLLM Qwen ve Nemotron düşünme modelleri, çok düzeyli efor ölçeği yerine ikili/thinkseçenekleri (off,on) sunar.compat.thinkingFormat: OpenAI uyumlu düşünme yükü biçimi. Together tarzıreasoning.enablediçin"together", Qwen tarzı üst düzeyenable_thinkingiçin"qwen"veya vLLM gibi istek düzeyinde sohbet şablonu anahtar sözcük bağımsız değişkenlerini destekleyen Qwen ailesi arka uçlarındachat_template_kwargs.enable_thinkingiçin"qwen-chat-template"kullanın. OpenClaw, devre dışı bırakılmış düşünmeyifalse, etkinleştirilmiş düşünmeyitrueolarak eşler ve yapılandırılmış vLLM Qwen modelleri bu biçimler için ikili/thinkseçenekleri sunar.compat.supportedReasoningEfforts: model başına OpenAI uyumlu akıl yürütme eforu listesi. Bunu gerçekten kabul eden özel uç noktalar için"xhigh"ekleyin; OpenClaw daha sonra ilgili yapılandırılmış sağlayıcı/model için komut menülerinde, Gateway oturum satırlarında, oturum yaması doğrulamasında, aracı CLI doğrulamasında vellm-taskdoğrulamasında/think xhighseçeneğini sunar. Arka uç, standart bir düzey için sağlayıcıya özgü bir değer istiyorsacompat.reasoningEffortMapkullanın.params.preserveThinking: korunan düşünme için yalnızca Z.AI'a özgü isteğe bağlı etkinleştirme. Etkinleştirildiğinde ve düşünme açık olduğunda OpenClawthinking.clear_thinking: falsegönderir ve öncekireasoning_contentöğelerini yeniden oynatır; bkz. Z.AI düşünme ve korunan düşünme.localService: yerel/kendi barındırdığınız model sunucuları için isteğe bağlı sağlayıcı düzeyinde süreç yöneticisi. Seçilen model ilgili sağlayıcıya ait olduğunda OpenClawhealthUrl(veyabaseUrl + "/models") uç noktasını yoklar; uç nokta çalışmıyorsacommandöğesiniargsile başlatır,readyTimeoutMssüresine kadar bekler ve ardından model isteğini gönderir.commandmutlak bir yol olmalıdır.idleStopMs: 0, OpenClaw kapanana kadar süreci çalışır durumda tutar; pozitif bir değer, OpenClaw tarafından başlatılan süreci belirtilen sayıda milisaniye boşta kaldıktan sonra durdurur. Bkz. Yerel model hizmetleri.- Çalışma zamanı politikası
agents.defaultsüzerinde değil, sağlayıcılarda veya modellerde tanımlanmalıdır. Sağlayıcı genelindeki kurallar içinmodels.providers.<provider>.agentRuntime, modele özgü kurallar için iseagents.defaults.models["provider/model"].agentRuntime/agents.list[].models["provider/model"].agentRuntimekullanın. Sağlayıcı/model öneki tek başına hiçbir zaman bir harness seçmez. Çalışma zamanı ayarlanmamışsa veyaautoise OpenAI, yalnızca kullanıcı tarafından oluşturulmuş bir istek geçersiz kılması bulunmayan tam bir resmî HTTPS Platform Responses veya ChatGPT Responses rotası için Codex'i örtük olarak seçebilir. Bkz. OpenAI örtük agent çalışma zamanı. - Bu alanları değiştiren yapılandırma yazıcıları (örneğin
/models set,/models set-imageve fallback ekleme/kaldırma komutları), kurallı nesne biçiminde kaydeder ve mümkün olduğunda mevcut fallback listelerini korur. maxConcurrent: oturumlar arasındaki maksimum paralel agent çalıştırması sayısı (her oturum yine de seri olarak işlenir). Varsayılan:4.
Çalışma zamanı politikası
{ models: { providers: { openai: { agentRuntime: { id: "codex" }, }, }, }, agents: { defaults: { model: "openai/gpt-5.6-sol", models: { "anthropic/claude-opus-4-8": { agentRuntime: { id: "claude-cli" }, }, "vllm/*": { agentRuntime: { id: "openclaw" }, }, }, }, },}id:"auto","openclaw", kayıtlı bir plugin altyapısı kimliği veya desteklenen bir CLI arka uç diğer adı. Birlikte gelen Codex pluginicodexdeğerini kaydeder; birlikte gelen Anthropic pluginiclaude-cliCLI arka ucunu sağlar.id: "auto", kayıtlı plugin altyapılarının destek sözleşmelerini bildiren veya başka şekilde karşılayan etkin rotaları üstlenmesine olanak tanır ve hiçbir altyapı eşleşmediğinde OpenClaw kullanır.id: "codex"gibi açık bir plugin çalışma zamanı, söz konusu altyapıyı ve uyumlu bir etkin rotayı gerektirir; bunlardan biri kullanılamıyorsa veya yürütme başarısız olursa kapalı biçimde başarısız olur.id: "pi", v2026.5.22 ve önceki sürümlerden yayımlanmış yapılandırmaları korumak için yalnızcaopenclawdeğerinin kullanımdan kaldırılmış diğer adı olarak kabul edilir. Yeni yapılandırmaopenclawkullanmalıdır.- Çalışma zamanı önceliği önce tam model politikası (
agents.list[].models["provider/model"],agents.defaults.models["provider/model"]veyamodels.providers.<provider>.models[]), ardındanagents.list[]/agents.defaults.models["provider/*"], son olarakmodels.providers.<provider>.agentRuntimekonumundaki sağlayıcı geneli politikası şeklindedir. - Tüm ajanı kapsayan çalışma zamanı anahtarları eskidir.
agents.defaults.agentRuntime,agents.list[].agentRuntime, oturum çalışma zamanı sabitlemeleri veOPENCLAW_AGENT_RUNTIMEçalışma zamanı seçiminde yok sayılır. Eski değerleri kaldırmak içinopenclaw doctor --fixkomutunu çalıştırın. - Yazılmış bir istek geçersiz kılması bulunmayan uygun, tam ve resmî HTTPS OpenAI Responses/ChatGPT rotaları Codex altyapısını örtük olarak kullanabilir. Sağlayıcı/model
agentRuntime.id: "codex", Codex'i kapalı biçimde başarısız olan bir gereksinim hâline getirir ancak uyumsuz bir rotayı uyumlu hâle getirmez. - Claude CLI dağıtımları için
model: "anthropic/claude-opus-4-8"ile model kapsamlıagentRuntime.id: "claude-cli"kullanımını tercih edin. Eskiclaude-cli/<model>başvuruları uyumluluk amacıyla çalışmaya devam eder ancak yeni yapılandırma, sağlayıcı/model seçimini standart biçimde tutmalı ve yürütme arka ucunu sağlayıcı/model çalışma zamanı politikasına yerleştirmelidir. - Bu yalnızca metin ajan turu yürütmesini denetler. Medya üretimi, görsel algılama, PDF, müzik, video ve TTS kendi sağlayıcı/model ayarlarını kullanmaya devam eder.
Yerleşik diğer ad kısaltmaları (yalnızca model agents.defaults.models içinde olduğunda geçerlidir):
| Diğer ad | Model |
|---|---|
opus |
anthropic/claude-opus-4-8 |
sonnet |
anthropic/claude-sonnet-4-6 |
gpt |
openai/gpt-5.4 |
gpt-mini |
openai/gpt-5.4-mini |
gpt-nano |
openai/gpt-5.4-nano |
gemini |
google/gemini-3.1-pro-preview |
gemini-flash |
google/gemini-3-flash-preview |
gemini-flash-lite |
google/gemini-3.1-flash-lite |
Yapılandırdığınız diğer adlar her zaman varsayılanlardan önceliklidir.
Z.AI GLM-4.x modelleri, --thinking off ayarlanmadıkça veya agents.defaults.models["zai/<model>"].params.thinking sizin tarafınızdan tanımlanmadıkça düşünme modunu otomatik olarak etkinleştirir.
Z.AI modelleri, araç çağrısı akışı için varsayılan olarak tool_stream değerini etkinleştirir. Devre dışı bırakmak için agents.defaults.models["zai/<model>"].params.tool_stream değerini false olarak ayarlayın.
Anthropic Claude Opus 4.8'de düşünme, OpenClaw içinde varsayılan olarak kapalıdır; uyarlanabilir düşünme açıkça etkinleştirildiğinde Anthropic'in sağlayıcı tarafından yönetilen varsayılan çaba düzeyi high olur. Açık bir düşünme düzeyi ayarlanmadığında Claude 4.6 modelleri varsayılan olarak adaptive kullanır.
agents.defaults.cliBackends
Yalnızca metin içeren geri dönüş çalıştırmaları için isteğe bağlı CLI arka uçları (araç çağrısı yoktur). API sağlayıcıları başarısız olduğunda yedek olarak kullanışlıdır.
{ agents: { defaults: { cliBackends: { "claude-cli": { command: "/opt/homebrew/bin/claude", }, "my-cli": { command: "my-cli", args: ["--json"], output: "json", modelArg: "--model", sessionArg: "--session", sessionMode: "existing", systemPromptArg: "--system", // Veya CLI bir istem dosyası bayrağını kabul ettiğinde systemPromptFileArg kullanın. systemPromptWhen: "first", imageArg: "--image", imageMode: "repeat", }, }, }, },}- CLI arka uçları öncelikle metin içindir; araçlar her zaman devre dışıdır.
- Oturumlar,
sessionArgayarlandığında desteklenir. - Görüntü aktarımı,
imageArgdosya yollarını kabul ettiğinde desteklenir. reseedFromRawTranscriptWhenUncompacted: true, ilk Compaction özeti oluşmadan önce bir arka ucun, sınırlandırılmış ham OpenClaw transkript kuyruğundan güvenli biçimde geçersiz kılınmış oturumları kurtarmasına olanak tanır. Kimlik doğrulama profili veya kimlik bilgisi dönemi değişiklikleri yine de hiçbir zaman ham veriden yeniden başlangıç yapmaz.
agents.defaults.promptOverlays
OpenClaw tarafından oluşturulan istem yüzeylerine model ailesine göre uygulanan, sağlayıcıdan bağımsız istem katmanları. GPT-5 ailesi model kimlikleri, paylaşılan davranış sözleşmesini OpenClaw/sağlayıcı rotalarının tamamında alır; personality yalnızca samimi etkileşim tarzı katmanını denetler. Yerel Codex uygulama sunucusu rotaları, bu OpenClaw GPT-5 katmanı yerine Codex tarafından yönetilen temel/model talimatlarını korur ve OpenClaw, yerel iş parçacıkları için Codex'in yerleşik kişiliğini devre dışı bırakır.
{ agents: { defaults: { promptOverlays: { gpt5: { personality: "friendly", // friendly | on | off }, }, }, },}"friendly"(varsayılan) ve"on", samimi etkileşim tarzı katmanını etkinleştirir."off"yalnızca samimi katmanı devre dışı bırakır; etiketli GPT-5 davranış sözleşmesi etkin kalır.- Bu paylaşılan ayar yapılandırılmadığında eski
plugins.entries.openai.config.personalityhâlâ okunur.
agents.defaults.heartbeat
Düzenli Heartbeat çalıştırmaları.
{ agents: { defaults: { heartbeat: { every: "30m", // 0m devre dışı bırakır model: "openai/gpt-5.4-mini", includeReasoning: false, includeSystemPromptSection: true, // varsayılan: true; false, Heartbeat bölümünü sistem isteminden çıkarır lightContext: false, // varsayılan: false; true, çalışma alanı önyükleme dosyalarından yalnızca HEARTBEAT.md dosyasını korur isolatedSession: false, // varsayılan: false; true, her Heartbeat'i yeni bir oturumda çalıştırır (konuşma geçmişi yoktur) skipWhenBusy: false, // varsayılan: false; true, bu ajanın alt ajan/iç içe hatlarını da bekler session: "main", to: "+15555550123", directPolicy: "allow", // allow (varsayılan) | block target: "none", // varsayılan: none | seçenekler: last | whatsapp | telegram | discord | ... prompt: "Varsa HEARTBEAT.md dosyasını okuyun...", ackMaxChars: 300, suppressToolErrorWarnings: false, timeoutSeconds: 45, }, }, },}every: süre dizesi (ms/s/m/h). Varsayılan:30m(API anahtarıyla kimlik doğrulama) veya1h(OAuth kimlik doğrulaması). Devre dışı bırakmak için0molarak ayarlayın.includeSystemPromptSection: false olduğunda Heartbeat bölümünü sistem isteminden çıkarır veHEARTBEAT.mddeğerinin önyükleme bağlamına eklenmesini atlar. Varsayılan:true.suppressToolErrorWarnings: true olduğunda Heartbeat çalıştırmaları sırasında araç hatası uyarı yüklerini bastırır.timeoutSeconds: bir Heartbeat ajan turu durdurulmadan önce izin verilen saniye cinsinden azami süre. Ayarlanmışsaagents.defaults.timeoutSecondsdeğerini kullanmak, aksi takdirde 600 saniyeyle sınırlandırılmış Heartbeat sıklığını kullanmak için ayarlamadan bırakın.directPolicy: doğrudan/DM teslimat politikası.allow(varsayılan), doğrudan hedefe teslimata izin verir.block, doğrudan hedefe teslimatı engeller vereason=dm-blockedüretir.lightContext: true olduğunda Heartbeat çalıştırmaları hafif önyükleme bağlamı kullanır ve çalışma alanı önyükleme dosyalarından yalnızcaHEARTBEAT.mddeğerini korur.isolatedSession: true olduğunda her Heartbeat, önceki konuşma geçmişi olmadan yeni bir oturumda çalışır. CronsessionTarget: "isolated"ile aynı yalıtım düzenidir. Heartbeat başına token maliyetini ~100K'dan ~2-5K tokena düşürür.skipWhenBusy: true olduğunda Heartbeat çalıştırmaları, söz konusu ajanın ek meşgul hatlarında ertelenir: kendi oturum anahtarlı alt ajanı veya iç içe komut çalışması. Cron hatları, bu bayrak olmasa bile Heartbeat'leri her zaman erteler.- Ajan başına:
agents.list[].heartbeatayarlayın. Herhangi bir ajanheartbeattanımladığında Heartbeat'leri yalnızca bu ajanlar çalıştırır. - Heartbeat'ler tam ajan turlarını çalıştırır — daha kısa aralıklar daha fazla token tüketir.
agents.defaults.compaction
{ agents: { defaults: { compaction: { mode: "safeguard", // default | safeguard provider: "my-provider", // kayıtlı bir Compaction sağlayıcı plugininin kimliği (isteğe bağlı) timeoutSeconds: 180, reserveTokensFloor: 24000, keepRecentTokens: 50000, recentTurnsPreserve: 3, maxHistoryShare: 0.7, identifierPolicy: "strict", // strict | off | custom identifierInstructions: "Dağıtım kimliklerini, destek kaydı kimliklerini ve ana makine:bağlantı noktası çiftlerini aynen koruyun.", // identifierPolicy=custom olduğunda kullanılır qualityGuard: { enabled: true, maxRetries: 1 }, midTurnPrecheck: { enabled: false }, // isteğe bağlı araç döngüsü baskısı denetimi postIndexSync: "async", // off | async | await postCompactionSections: ["Session Startup", "Red Lines"], // AGENTS.md bölümlerinin yeniden eklenmesini etkinleştirin model: "openrouter/anthropic/claude-sonnet-4-6", // isteğe bağlı, yalnızca Compaction için model geçersiz kılması truncateAfterCompaction: true, // Compaction sonrasında daha küçük bir ardıl JSONL dosyasına döndür maxActiveTranscriptBytes: "20mb", // isteğe bağlı ön kontrol yerel Compaction tetikleyicisi notifyUser: true, // Compaction başladığında/tamamlandığında ve bellek boşaltma bozulmasında bildirimler (varsayılan: false) memoryFlush: { enabled: true, model: "ollama/qwen3:8b", // isteğe bağlı, yalnızca bellek boşaltma için model geçersiz kılması softThresholdTokens: 6000, forceFlushTranscriptBytes: "2mb", systemPrompt: "Oturum Compaction aşamasına yaklaşıyor. Kalıcı anıları şimdi saklayın.", prompt: "Kalıcı notları memory/YYYY-MM-DD.md dosyasına yazın; saklanacak bir şey yoksa tam sessiz token olan NO_REPLY ile yanıt verin.", }, }, }, },}mode:defaultveyasafeguard(uzun geçmişler için parçalı özetleme). Bkz. Compaction.provider: kayıtlı bir Compaction sağlayıcı Plugin'inin kimliği. Ayarlandığında, yerleşik LLM özetlemesi yerine sağlayıcınınsummarize()işlevi çağrılır. Başarısızlık durumunda yerleşik yönteme geri döner. Bir sağlayıcı ayarlamakmode: "safeguard"kullanımını zorunlu kılar. Bkz. Compaction.timeoutSeconds: OpenClaw'ın tek bir Compaction işlemini iptal etmeden önce izin verdiği azami saniye sayısı. Varsayılan:180.reserveTokens: Compaction sonrasında model çıktısı ve gelecekteki araç sonuçları için kullanılabilir tutulan token payı. Modelin bağlam penceresi biliniyorsa OpenClaw, istem bütçesini tüketmemesi için etkin rezervi sınırlar.reserveTokensFloor: gömülü çalışma zamanı tarafından uygulanan asgari rezerv. Alt sınırı devre dışı bırakmak için0olarak ayarlayın. Alt sınır, etkin bağlam penceresi sınırına tabi olmaya devam eder.keepRecentTokens: en son transkript son bölümünü kelimesi kelimesine korumaya yönelik agent kesim noktası bütçesi. Açıkça ayarlandığında manuel/compactbuna uyar; aksi takdirde manuel Compaction katı bir denetim noktasıdır.recentTurnsPreserve: koruma amaçlı özetlemenin dışında kelimesi kelimesine tutulan en son kullanıcı/asistan konuşma sırası sayısı. Varsayılan:3.maxHistoryShare: Compaction sonrasında korunan geçmiş için izin verilen toplam bağlam bütçesinin azami oranı (0.1-0.9aralığı).identifierPolicy:strict(varsayılan),offveyacustom.strict, Compaction özetlemesi sırasında yerleşik opak tanımlayıcı koruma yönergelerini başa ekler.identifierInstructions:identifierPolicy=customolduğunda kullanılan isteğe bağlı özel tanımlayıcı koruma metni.qualityGuard: koruma özetleri için hatalı biçimlendirilmiş çıktıda yeniden deneme kontrolleri. Koruma modunda varsayılan olarak etkindir; denetimi atlamak içinenabled: falseolarak ayarlayın.midTurnPrecheck: isteğe bağlı araç döngüsü baskı kontrolü.enabled: trueolduğunda OpenClaw, araç sonuçları eklendikten sonra ve bir sonraki model çağrısından önce bağlam baskısını kontrol eder. Bağlam artık sığmıyorsa istemi göndermeden önce mevcut denemeyi iptal eder ve araç sonuçlarını kısaltmak ya da Compaction uygulayıp yeniden denemek için mevcut ön kontrol kurtarma yolunu yeniden kullanır. Hemdefaulthem desafeguardCompaction modlarıyla çalışır. Varsayılan: devre dışı.postIndexSync: Compaction sonrası oturum belleğini yeniden indeksleme modu. Varsayılan:"async". En yüksek güncellik için"await", daha düşük Compaction gecikmesi için"async"veya yalnızca oturum belleği eşitlemesi başka bir yerde gerçekleştiriliyorsa"off"kullanın.postCompactionSections: Compaction sonrasında yeniden eklenecek isteğe bağlı AGENTS.md H2/H3 bölüm adları. Ayarlanmadığında veya[]olarak ayarlandığında yeniden ekleme devre dışıdır. Açıkça["Session Startup", "Red Lines"]olarak ayarlamak bu çifti etkinleştirir ve eskiEvery Session/Safetygeri dönüşünü korur. Bunu yalnızca ek bağlam, Compaction özetinde zaten yakalanmış proje yönergelerini çoğaltma riskine değiyorsa etkinleştirin.model: yalnızca Compaction özetlemesi için isteğe bağlıprovider/model-idveyaagents.defaults.modelsiçinden yalın takma ad. Yalın takma adlar yönlendirmeden önce çözümlenir; yapılandırılmış değişmez model kimlikleri çakışmalarda önceliğini korur. Ana oturumun bir modeli kullanmaya devam etmesi, ancak Compaction özetlerinin başka bir modelde çalışması gerektiğinde bunu kullanın; ayarlanmadığında Compaction, oturumun birincil modelini kullanır.truncateAfterCompaction: Compaction sonrasında etkin oturum transkriptini döndürür; böylece gelecekteki konuşma sıraları yalnızca özeti ve özetlenmemiş son bölümü yüklerken önceki tam transkript arşivlenmiş olarak kalır. Uzun süre çalışan oturumlarda etkin transkriptin sınırsız büyümesini önler. Varsayılan:false.maxActiveTranscriptBytes: transkript geçmişi eşiği aştığında bir çalıştırmadan önce normal yerel Compaction işlemini tetikleyen isteğe bağlı bayt eşiği (numberveya"20mb"gibi dizeler). Başarılı Compaction işleminin daha küçük bir ardıl transkripte dönebilmesi içintruncateAfterCompactiongerekir. Ayarlanmadığında veya0olduğunda devre dışıdır.notifyUser:trueolduğunda kullanıcıya kısa bağlam bakımı bildirimleri gönderir: Compaction başladığında ve tamamlandığında (örneğin, "Bağlam sıkıştırılıyor..." ve "Compaction tamamlandı") ve Compaction öncesi bellek boşaltma hakkı tükendiğinde, böylece yanıt bozulmuş durumda devam ettiğinde (örneğin, "Bellek bakımı geçici olarak başarısız oldu; yanıtınız sürdürülüyor."). Bu bildirimlerin sessiz kalması için varsayılan olarak devre dışıdır.memoryFlush: kalıcı anıları depolamak için otomatik Compaction öncesindeki sessiz agent konuşma sırası. Bu bakım konuşma sırasının yerel bir modelde kalması gerektiğindemodeldeğeriniollama/qwen3:8bgibi tam bir sağlayıcı/model olarak ayarlayın; geçersiz kılma, etkin oturumun geri dönüş zincirini devralmaz.forceFlushTranscriptBytes, token sayaçları güncel olmasa bile transkript boyutu eşiğe ulaştığında boşaltmayı zorunlu kılar. Çalışma alanı salt okunur olduğunda atlanır.
agents.defaults.runRetries
Hata kurtarma sırasında sonsuz yürütme döngülerini önlemek amacıyla gömülü agent çalışma zamanının dış çalıştırma döngüsü için yeniden deneme yineleme sınırları. Bu ayar yalnızca gömülü agent çalışma zamanı için geçerlidir; ACP veya CLI çalışma zamanları için geçerli değildir.
{ agents: { defaults: { runRetries: { base: 24, perProfile: 8, min: 32, max: 160, }, }, list: [ { id: "main", runRetries: { max: 50 }, // agent başına isteğe bağlı geçersiz kılmalar }, ], },}base: dış çalıştırma döngüsü için temel yeniden deneme yinelemesi sayısı. Varsayılan:24.perProfile: her geri dönüş profili adayı için verilen ek çalıştırma yeniden deneme yinelemesi sayısı. Varsayılan:8.min: çalıştırma yeniden deneme yinelemeleri için asgari mutlak sınır. Varsayılan:32.max: kontrolden çıkan yürütmeyi önlemek için çalıştırma yeniden deneme yinelemelerine ilişkin azami mutlak sınır. Varsayılan:160.
agents.defaults.contextPruning
LLM'ye göndermeden önce bellek içi bağlamdaki eski araç sonuçlarını budar. Diskteki oturum geçmişini değiştirmez. Varsayılan olarak devre dışıdır; etkinleştirmek için mode: "cache-ttl" olarak ayarlayın.
{ agents: { defaults: { contextPruning: { mode: "cache-ttl", // kapalı (varsayılan) | cache-ttl ttl: "1h", // süre (ms/s/m/h), varsayılan birim: dakika; varsayılan: 5m keepLastAssistants: 3, softTrimRatio: 0.3, hardClearRatio: 0.5, minPrunableToolChars: 50000, softTrim: { maxChars: 4000, headChars: 1500, tailChars: 1500 }, hardClear: { enabled: true, placeholder: "[Eski araç sonucu içeriği temizlendi]" }, tools: { deny: ["browser", "canvas"] }, }, }, },}cache-ttl modunun davranışı
mode: "cache-ttl", budama geçişlerini etkinleştirir.ttl, budamanın ne sıklıkta yeniden çalışabileceğini (son önbellek dokunuşundan sonra) denetler. Varsayılan:5m.- Budama, önce aşırı büyük araç sonuçlarını yumuşak biçimde kısaltır, ardından gerekirse eski araç sonuçlarını tamamen temizler.
softTrimRatiovehardClearRatio,0.0ile1.0arasındaki değerleri kabul eder; yapılandırma doğrulaması bu aralığın dışındaki değerleri reddeder.
Yumuşak kısaltma, başlangıcı + sonu korur ve ortaya ... ekler.
Tam temizleme, araç sonucunun tamamını yer tutucuyla değiştirir.
Notlar:
- Görüntü blokları hiçbir zaman kısaltılmaz/temizlenmez.
- Oranlar tam token sayılarına değil, karakterlere (yaklaşık olarak) dayanır.
keepLastAssistantsdeğerinden daha az asistan mesajı varsa budama atlanır.
Davranış ayrıntıları için Oturum Budama bölümüne bakın.
Blok akışı
{ agents: { defaults: { blockStreamingDefault: "off", // on | off blockStreamingBreak: "text_end", // text_end | message_end blockStreamingChunk: { minChars: 800, maxChars: 1200, breakPreference: "paragraph" }, blockStreamingCoalesce: { idleMs: 1000 }, humanDelay: { mode: "natural" }, // off (varsayılan) | natural | custom (minMs/maxMs kullanır) }, },}- Telegram dışındaki kanallarda blok yanıtlarını etkinleştirmek için açıkça
*.streaming.block.enabled: truegerekir. QQ Bot istisnadır:streaming.blockanahtarları yoktur vechannels.qqbot.streaming.mode,"off"olmadığı sürece blok yanıtlarını akış halinde gönderir. - Kanal geçersiz kılmaları:
channels.<channel>.streaming.block.coalesce(ve hesap başına değişkenleri). Discord, Google Chat, Mattermost, MS Teams, Signal ve Slack varsayılan olarakminChars: 1500/idleMs: 1000kullanır. blockStreamingChunk.breakPreference: tercih edilen parça sınırı ("paragraph" | "newline" | "sentence").humanDelay: blok yanıtları arasındaki rastgele bekleme. Varsayılan:off.natural= 800-2500ms.custom,minMs/maxMskullanır (ayarlanmamış sınırlar için doğal aralığa geri döner). Agent başına geçersiz kılma:agents.list[].humanDelay.
Davranış + parçalama ayrıntıları için Akış bölümüne bakın.
Yazıyor göstergeleri
{ agents: { defaults: { typingMode: "instant", // never | instant | thinking | message typingIntervalSeconds: 6, }, },}- Varsayılanlar: doğrudan sohbetler/bahsetmeler için
instant, bahsedilmemiş grup sohbetleri içinmessage. typingIntervalSecondsvarsayılanı:6.- Oturum başına geçersiz kılmalar:
session.typingMode,session.typingIntervalSeconds.
Bkz. Yazıyor Göstergeleri.
agents.defaults.sandbox
Gömülü agent için isteğe bağlı korumalı alan kullanımı. Tam kılavuz için Korumalı Alan Kullanımı bölümüne bakın.
{ agents: { defaults: { sandbox: { mode: "non-main", // off (varsayılan) | non-main | all backend: "docker", // docker (varsayılan) | ssh | openshell scope: "agent", // session | agent (varsayılan) | shared workspaceAccess: "none", // none (varsayılan) | ro | rw workspaceRoot: "~/.openclaw/sandboxes", docker: { image: "openclaw-sandbox:bookworm-slim", containerPrefix: "openclaw-sbx-", workdir: "/workspace", readOnlyRoot: true, tmpfs: ["/tmp", "/var/tmp", "/run"], network: "none", user: "1000:1000", capDrop: ["ALL"], env: { LANG: "C.UTF-8" }, setupCommand: "apt-get update && apt-get install -y git curl jq", pidsLimit: 256, memory: "1g", memorySwap: "2g", cpus: 1, gpus: "all", ulimits: { nofile: { soft: 1024, hard: 2048 }, nproc: 256, }, seccompProfile: "/path/to/seccomp.json", apparmorProfile: "openclaw-sandbox", dns: ["1.1.1.1", "8.8.8.8"], extraHosts: ["internal.service:10.0.0.5"], binds: ["/home/user/source:/source:rw"], }, ssh: { target: "user@gateway-host:22", command: "ssh", workspaceRoot: "/tmp/openclaw-sandboxes", strictHostKeyChecking: true, updateHostKeys: true, identityFile: "~/.ssh/id_ed25519", certificateFile: "~/.ssh/id_ed25519-cert.pub", knownHostsFile: "~/.ssh/known_hosts", // SecretRef'ler / satır içi içerikler de desteklenir: // identityData: { source: "env", provider: "default", id: "SSH_IDENTITY" }, // certificateData: { source: "env", provider: "default", id: "SSH_CERTIFICATE" }, // knownHostsData: { source: "env", provider: "default", id: "SSH_KNOWN_HOSTS" }, }, browser: { enabled: false, image: "openclaw-sandbox-browser:bookworm-slim", network: "openclaw-sandbox-browser", cdpPort: 9222, cdpSourceRange: "172.21.0.1/32", vncPort: 5900, noVncPort: 6080, headless: false, enableNoVnc: true, allowHostControl: false, autoStart: true, autoStartTimeoutMs: 12000, }, prune: { idleHours: 24, maxAgeDays: 7, }, }, }, }, tools: { sandbox: { tools: { allow: [ "exec", "process", "read", "write", "edit", "apply_patch", "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", ], deny: ["browser", "canvas", "nodes", "cron", "discord", "gateway"], }, }, },}Yukarıda gösterilen varsayılanlar (off/docker/agent/none/bookworm-slim görüntüsü/none ağı/vb.) yalnızca örnek değerler değil, gerçek OpenClaw varsayılanlarıdır.
Sandbox ayrıntıları
Arka uç:
docker: yerel Docker çalışma zamanı (varsayılan)ssh: genel SSH destekli uzak çalışma zamanıopenshell: OpenShell çalışma zamanı
backend: "openshell" seçildiğinde çalışma zamanına özgü ayarlar
plugins.entries.openshell.config konumuna taşınır.
SSH arka uç yapılandırması:
target:user@host[:port]biçimindeki SSH hedeficommand: SSH istemci komutu (varsayılan:ssh)workspaceRoot: kapsam başına çalışma alanları için kullanılan mutlak uzak kök (varsayılan:/tmp/openclaw-sandboxes)identityFile/certificateFile/knownHostsFile: OpenSSH'ye aktarılan mevcut yerel dosyalaridentityData/certificateData/knownHostsData: OpenClaw'ın çalışma zamanında geçici dosyalara dönüştürdüğü satır içi içerikler veya SecretRef'lerstrictHostKeyChecking/updateHostKeys: OpenSSH ana makine anahtarı ilkesi ayarları (her ikisinin varsayılanıtrue)
SSH kimlik doğrulama önceliği:
identityData,identityFiledeğerine göre önceliklidircertificateData,certificateFiledeğerine göre önceliklidirknownHostsData,knownHostsFiledeğerine göre önceliklidir- SecretRef destekli
*Datadeğerleri, sandbox oturumu başlamadan önce etkin gizli bilgiler çalışma zamanı anlık görüntüsünden çözümlenir
SSH arka uç davranışı:
- oluşturma veya yeniden oluşturma işleminden sonra uzak çalışma alanını bir kez başlangıç verileriyle doldurur
- ardından uzak SSH çalışma alanını kanonik olarak tutar
exec, dosya araçları ve medya yollarını SSH üzerinden yönlendirir- uzaktaki değişiklikleri otomatik olarak ana makineye geri eşitlemez
- sandbox tarayıcı konteynerlerini desteklemez
Çalışma alanı erişimi:
none:~/.openclaw/sandboxesaltında kapsam başına sandbox çalışma alanı (varsayılan)ro:/workspacekonumundaki sandbox çalışma alanı; ajan çalışma alanı/agentkonumuna salt okunur olarak bağlanırrw: ajan çalışma alanı/workspacekonumuna okuma/yazma erişimiyle bağlanır
Kapsam:
session: oturum başına konteyner + çalışma alanıagent: ajan başına bir konteyner + çalışma alanı (varsayılan)shared: paylaşılan konteyner ve çalışma alanı (oturumlar arası yalıtım yoktur)
OpenShell plugin yapılandırması:
{plugins: { entries: { openshell: { enabled: true, config: { mode: "mirror", // mirror (varsayılan) | remote command: "openshell", from: "openclaw", remoteWorkspaceDir: "/sandbox", remoteAgentWorkspaceDir: "/agent", gateway: "lab", // isteğe bağlı gatewayEndpoint: "https://lab.example", // isteğe bağlı policy: "strict", // isteğe bağlı OpenShell ilkesi kimliği providers: ["openai"], // isteğe bağlı autoProviders: true, timeoutSeconds: 120, }, }, },},}OpenShell modu:
mirror: çalıştırmadan önce uzağı yerelden başlangıç verileriyle doldurur, çalıştırmadan sonra geri eşitler; yerel çalışma alanı kanonik kalırremote: sandbox oluşturulduğunda uzağı bir kez başlangıç verileriyle doldurur, ardından uzak çalışma alanını kanonik olarak tutar
remote modunda, OpenClaw dışında ana makinede yapılan yerel düzenlemeler başlangıç verileriyle doldurma adımından sonra sandbox'a otomatik olarak eşitlenmez.
Aktarım, OpenShell sandbox'ına SSH üzerinden yapılır ancak sandbox yaşam döngüsünün ve isteğe bağlı yansıtma eşitlemesinin sahibi plugin'dir.
setupCommand, konteyner oluşturulduktan sonra (sh -lc aracılığıyla) bir kez çalışır. Ağ çıkışı, yazılabilir kök ve root kullanıcısı gerektirir.
Konteynerler varsayılan olarak network: "none" kullanır — ajanın dışarıya erişmesi gerekiyorsa "bridge" (veya özel bir köprü ağı) olarak ayarlayın.
"host" engellenir. Açıkça
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true (acil durum seçeneği) ayarlanmadığı sürece "container:<id>" varsayılan olarak engellenir.
Etkin bir OpenClaw sandbox'ındaki Codex uygulama sunucusu turları, yerel kod modu ağ erişimleri için aynı çıkış ayarını kullanır.
Gelen ekler, etkin çalışma alanındaki media/inbound/* konumuna hazırlanır.
docker.binds, ek ana makine dizinlerini bağlar; genel ve ajan başına bağlamalar birleştirilir.
Sandbox içindeki tarayıcı (sandbox.browser.enabled, varsayılan false): Bir konteyner içinde Chromium + CDP. noVNC URL'si sistem istemine eklenir. openclaw.json içinde browser.enabled gerektirmez.
noVNC gözlemci erişimi varsayılan olarak VNC kimlik doğrulamasını kullanır ve OpenClaw, parolayı paylaşılan URL'de göstermek yerine kısa ömürlü bir belirteç URL'si oluşturur.
allowHostControl: false(varsayılan), sandbox içindeki oturumların ana makine tarayıcısını hedeflemesini engeller.networkvarsayılan olarakopenclaw-sandbox-browserdeğerini kullanır (ayrılmış köprü ağı). Yalnızca genel köprü bağlantısını açıkça istediğinizdebridgeolarak ayarlayın."host"burada da engellenir.cdpSourceRange, isteğe bağlı olarak konteyner sınırındaki CDP girişini bir CIDR aralığıyla (örneğin172.21.0.1/32) kısıtlar.sandbox.browser.binds, ek ana makine dizinlerini yalnızca sandbox tarayıcı konteynerine bağlar. Ayarlandığında ([]dâhil), tarayıcı konteyneri içindocker.bindsdeğerinin yerini alır.- Sandbox tarayıcı konteynerinin Chromium'u her zaman
--no-sandbox --disable-setuid-sandboxile başlatılır (konteynerler, Chrome'un kendi sandbox'ının gerektirdiği çekirdek temel öğelerine sahip değildir); bunun için bir yapılandırma anahtarı yoktur. - Başlatma varsayılanları
scripts/sandbox-browser-entrypoint.shiçinde tanımlanır ve konteyner ana makineleri için ayarlanmıştır: --remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-dev-shm-usage--disable-background-networking--disable-breakpad--disable-crash-reporter--no-zygote--metrics-recording-only--password-store=basic--use-mock-keychain--disable-3d-apis,--disable-gpuve--disable-software-rasterizervarsayılan olarak etkindir ve WebGL/3D kullanımı gerektiriyorsaOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0ile devre dışı bırakılabilir.--disable-extensions(varsayılan olarak etkin); iş akışınız bunlara bağlıysaOPENCLAW_BROWSER_DISABLE_EXTENSIONS=0uzantıları yeniden etkinleştirir.- varsayılan olarak
--renderer-process-limit=2;OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>ile değiştirin, Chromium'un varsayılan işlem sınırını kullanmak için0ayarlayın. - yalnızca
headlessetkinleştirildiğinde--headless=new. - Varsayılanlar konteyner görüntüsünün temel değerleridir; konteyner varsayılanlarını değiştirmek için özel bir giriş noktasına sahip özel tarayıcı görüntüsü kullanın.
Tarayıcı sandbox'ı ve sandbox.docker.binds yalnızca Docker'da kullanılabilir.
Görüntüleri derleme (kaynak kullanıma alma kopyasından):
scripts/sandbox-setup.sh # ana sandbox görüntüsüscripts/sandbox-browser-setup.sh # isteğe bağlı tarayıcı görüntüsüKaynak kullanıma alma kopyası olmadan yapılan npm kurulumları için satır içi docker build komutları hakkında Sandbox § Görüntüler ve kurulum bölümüne bakın.
agents.list (ajan başına geçersiz kılmalar)
Bir ajana kendi TTS sağlayıcısını, sesini, modelini, stilini veya otomatik TTS
modunu vermek için agents.list[].tts kullanın. Ajan bloğu, genel
messages.tts üzerine derin birleştirme uygular; böylece paylaşılan kimlik bilgileri tek bir yerde
kalırken her ajan yalnızca ihtiyaç duyduğu ses veya sağlayıcı alanlarını geçersiz
kılabilir. Etkin ajanın geçersiz kılması otomatik sesli yanıtlara, /tts audio, /tts status ve
tts ajan aracına uygulanır. Sağlayıcı örnekleri ve öncelik sırası için
Metinden konuşmaya bölümüne bakın.
{ agents: { list: [ { id: "main", default: true, name: "Ana Agent", workspace: "~/.openclaw/workspace", agentDir: "~/.openclaw/agents/main/agent", model: "anthropic/claude-opus-4-6", // veya { primary, fallbacks } utilityModel: "openai/gpt-5.4-mini", thinkingDefault: "high", // agent başına düşünme düzeyi geçersiz kılma ayarı reasoningDefault: "on", // agent başına akıl yürütme görünürlüğü geçersiz kılma ayarı fastModeDefault: false, // agent başına hızlı mod geçersiz kılma ayarı params: { cacheRetention: "none" }, // eşleşen defaults.models parametrelerini anahtara göre geçersiz kılar tts: { providers: { elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL" }, }, }, skills: ["docs-search"], // ayarlandığında agents.defaults.skills değerinin yerini alır identity: { name: "Samantha", theme: "yardımsever tembel hayvan", emoji: "🦥", avatar: "avatars/samantha.png", }, groupChat: { mentionPatterns: ["@openclaw"] }, sandbox: { mode: "off" }, runtime: { type: "acp", acp: { agent: "codex", backend: "acpx", mode: "persistent", // persistent | oneshot cwd: "/workspace/openclaw", }, }, subagents: { allowAgents: ["*"] }, tools: { profile: "coding", allow: ["browser"], deny: ["canvas"], elevated: { enabled: true }, }, }, ], },}id: kararlı agent kimliği (zorunlu).default: birden fazlası ayarlandığında ilki geçerli olur (uyarı günlüğe kaydedilir). Hiçbiri ayarlanmamışsa listedeki ilk girdi varsayılandır.model: dize biçimi, model geri dönüşü olmayan katı bir agent başına birincil model ayarlar;{ primary }nesne biçimi defallbackseklenmediği sürece katıdır. Bu agent için geri dönüşü etkinleştirmek üzere{ primary, fallbacks: [...] }, katı davranışı açıkça belirtmek üzere{ primary, fallbacks: [] }kullanın. Yalnızcaprimarydeğerini geçersiz kılan Cron işleri,fallbacks: []ayarlanmadığı sürece varsayılan geri dönüşleri devralmaya devam eder.utilityModel: oluşturulan oturum ve ileti dizisi başlıkları gibi kısa dahili görevler için isteğe bağlı agent başına geçersiz kılma ayarı. Sırasıylaagents.defaults.utilityModel, birincil sağlayıcının bildirdiği küçük model varsayılanı ve ardından bu agent'ın birincil modeli kullanılır. Boş bir dize, bu agent için yardımcı yönlendirmeyi devre dışı bırakır.params:agents.defaults.modelsiçindeki seçili model girdisinin üzerine birleştirilen agent başına akış parametreleri. Model kataloğunun tamamını çoğaltmadancacheRetention,temperatureveyamaxTokensgibi agent'a özgü geçersiz kılmalar için bunu kullanın.tts: isteğe bağlı agent başına metinden konuşmaya geçersiz kılma ayarları. Blok,messages.ttsüzerine derinlemesine birleştirilir; bu nedenle paylaşılan sağlayıcı kimlik bilgilerini ve geri dönüş politikasınımessages.ttsiçinde tutun ve burada yalnızca sağlayıcı, ses, model, stil veya otomatik mod gibi kişiye özgü değerleri ayarlayın.skills: isteğe bağlı agent başına Skills izin listesi. Belirtilmezse agent, ayarlanmış olduğundaagents.defaults.skillsdeğerini devralır; açık bir liste, varsayılanlarla birleştirilmek yerine onların yerini alır ve[]hiçbir Skills olmadığı anlamına gelir.thinkingDefault: isteğe bağlı agent başına varsayılan düşünme düzeyi (off | minimal | low | medium | high | xhigh | adaptive | max). İleti veya oturum başına geçersiz kılma ayarı bulunmadığında bu agent içinagents.defaults.thinkingDefaultdeğerini geçersiz kılar. Hangi değerlerin geçerli olduğunu seçili sağlayıcı/model profili belirler; Google Gemini içinadaptive, sağlayıcı tarafından yönetilen dinamik düşünmeyi korur (Gemini 3/3.1'dethinkingLevelbelirtilmez, Gemini 2.5'tethinkingBudget: -1).reasoningDefault: isteğe bağlı agent başına varsayılan akıl yürütme görünürlüğü (on | off | stream). İleti veya oturum başına akıl yürütme geçersiz kılma ayarı bulunmadığında bu agent içinagents.defaults.reasoningDefaultdeğerini geçersiz kılar.fastModeDefault: hızlı mod için isteğe bağlı agent başına varsayılan ("auto" | true | false). İleti veya oturum başına hızlı mod geçersiz kılma ayarı bulunmadığında uygulanır.models: tamprovider/modelkimlikleriyle anahtarlanan isteğe bağlı agent başına model kataloğu/çalışma zamanı geçersiz kılmaları. Agent başına çalışma zamanı istisnaları içinmodels["provider/model"].agentRuntimekullanın.runtime: isteğe bağlı agent başına çalışma zamanı tanımlayıcısı. Agent'ın varsayılan olarak ACP yürütme ortamı oturumlarını kullanması gerektiğinderuntime.acpvarsayılanlarıyla (agent,backend,mode,cwd) birliktetype: "acp"kullanın.identity.avatar: çalışma alanına göreli yol,http(s)URL'si veyadata:URI'si.- Çalışma alanına göreli yerel
identity.avatargörüntü dosyaları 2 MB ile sınırlıdır.http(s)URL'leri vedata:URI'leri yerel dosya boyutu sınırına göre denetlenmez. identityvarsayılanları türetir:emojideğerindenackReaction,name/emojideğerlerindenmentionPatterns.subagents.allowAgents: açıksessions_spawn.agentIdhedefleri için yapılandırılmış agent kimliklerinin izin listesi (["*"]= yapılandırılmış herhangi bir hedef; varsayılan: yalnızca aynı agent). Kendi kendini hedefleyenagentIdçağrılarına izin verilmesi gerekiyorsa istekte bulunanın kimliğini ekleyin. Agent yapılandırması silinmiş eski girdilersessions_spawntarafından reddedilir veagents_listiçinde gösterilmez; bunları temizlemek içinopenclaw doctor --fixçalıştırın veya bu hedefin varsayılanları devralırken oluşturulabilir kalması gerekiyorsa asgari biragents.list[]girdisi ekleyin.- Sandbox devralma koruması: istekte bulunan oturum sandbox içindeyse
sessions_spawn, sandbox dışında çalışacak hedefleri reddeder. subagents.requireAgentId: true olduğunda,agentIdbelirtmeyensessions_spawnçağrılarını engeller (açık profil seçimini zorunlu kılar; varsayılan: false).subagents.maxConcurrent: alt agent yürütmesi genelinde eşzamanlı alt agent çalıştırmalarının azami sayısı. Varsayılan:8.subagents.maxChildrenPerAgent: tek bir agent oturumunun oluşturabileceği etkin alt öğelerin azami sayısı. Varsayılan:5.subagents.maxSpawnDepth: alt agent oluşturma için azami iç içe geçme derinliği (1-5). Varsayılan:1(iç içe geçme yok).subagents.archiveAfterMinutes: tamamlanmış alt agent durumunun arşivlenmesinden önceki süre. Varsayılan:60.
Çoklu agent yönlendirmesi
Tek bir Gateway içinde birden fazla yalıtılmış agent çalıştırın. Bkz. Çoklu Agent.
{ 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 eşleşme alanları
type(isteğe bağlı): normal yönlendirme içinroute(eksik tür varsayılan olarak route olur), kalıcı ACP konuşma bağlamaları içinacp.match.channel(zorunlu)match.accountId(isteğe bağlı;*= herhangi bir hesap; belirtilmezse = varsayılan hesap)match.peer(isteğe bağlı;{ kind: direct|group|channel, id })match.guildId/match.teamId(isteğe bağlı; kanala özgü)acp(isteğe bağlı; yalnızcatype: "acp"için):{ mode, label, cwd, backend }
Belirlenimci eşleşme sırası:
match.peermatch.guildIdmatch.teamIdmatch.accountId(tam, eş/kuruluş/ekip yok)match.accountId: "*"(kanal genelinde)- Varsayılan agent
Her katmanda, eşleşen ilk bindings girdisi geçerli olur.
OpenClaw, type: "acp" girdilerini tam konuşma kimliğine (match.channel + hesap + match.peer.id) göre çözümler ve yukarıdaki yönlendirme bağlama katmanı sırasını kullanmaz.
Agent başına erişim profilleri
Tam erişim (sandbox yok)
{agents: { list: [ { id: "personal", workspace: "~/.openclaw/workspace-personal", sandbox: { mode: "off" }, }, ],},}Salt okunur araçlar + çalışma alanı
{agents: { list: [ { id: "family", workspace: "~/.openclaw/workspace-family", sandbox: { mode: "all", scope: "agent", workspaceAccess: "ro" }, tools: { allow: [ "read", "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", ], deny: ["write", "edit", "apply_patch", "exec", "process", "browser"], }, }, ],},}Dosya sistemi erişimi yok (yalnızca mesajlaşma)
{agents: { list: [ { id: "public", workspace: "~/.openclaw/workspace-public", sandbox: { mode: "all", scope: "agent", workspaceAccess: "none" }, tools: { allow: [ "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", "whatsapp", "telegram", "slack", "discord", "gateway", ], deny: [ "read", "write", "edit", "apply_patch", "exec", "process", "browser", "canvas", "nodes", "cron", "gateway", "image", ], }, }, ],},}Öncelik ayrıntıları için Çoklu Agent Sandbox ve Araçları bölümüne bakın.
Oturum
{ session: { scope: "per-sender", dmScope: "main", // main | per-peer | per-channel-peer | per-account-channel-peer identityLinks: { alice: ["telegram:123456789", "discord:987654321012345678"], }, reset: { mode: "daily", // daily | idle atHour: 4, idleMinutes: 60, }, resetByType: { thread: { mode: "daily", atHour: 4 }, direct: { mode: "idle", idleMinutes: 240 }, group: { mode: "idle", idleMinutes: 120 }, }, resetByChannel: { discord: { mode: "idle", idleMinutes: 30 }, }, resetTriggers: ["/new", "/reset"], store: "~/.openclaw/agents/{agentId}/sessions/sessions.json", maintenance: { mode: "enforce", // enforce (varsayılan) | warn pruneAfter: "30d", maxEntries: 500, resetArchiveRetention: "30d", // süre veya false maxDiskBytes: "500mb", // isteğe bağlı kesin bütçe highWaterBytes: "400mb", // isteğe bağlı temizleme hedefi }, writeLock: { acquireTimeoutMs: 60000, staleMs: 1800000, maxHoldMs: 300000, }, threadBindings: { enabled: true, idleHours: 24, // saat cinsinden varsayılan hareketsizlik sonrası otomatik odaktan çıkarma (`0` devre dışı bırakır) maxAgeHours: 0, // saat cinsinden varsayılan kesin azami yaş (`0` devre dışı bırakır) }, mainKey: "main", // eski (çalışma zamanı her zaman "main" kullanır) agentToAgent: { maxPingPongTurns: 5 }, sendPolicy: { rules: [{ action: "deny", match: { channel: "discord", chatType: "group" } }], default: "allow", }, },}Oturum alanı ayrıntıları
scope: grup sohbeti bağlamları için temel oturum gruplandırma stratejisi.per-sender(varsayılan): her gönderici, bir kanal bağlamında yalıtılmış bir oturum edinir.global: bir kanal bağlamındaki tüm katılımcılar tek bir oturumu paylaşır (yalnızca paylaşılan bağlam amaçlandığında kullanın).dmScope: doğrudan mesajların nasıl gruplandırıldığı.main: tüm doğrudan mesajlar ana oturumu paylaşır.per-peer: kanallar arasında gönderici kimliğine göre yalıtır.per-channel-peer: kanal + gönderici başına yalıtır (çok kullanıcılı gelen kutuları için önerilir).per-account-channel-peer: hesap + kanal + gönderici başına yalıtır (çoklu hesap için önerilir).identityLinks: kanallar arası oturum paylaşımı için kurallı kimlikleri sağlayıcı ön ekli eşlere eşler./dock_discordgibi sabitleme komutları, etkin oturumun yanıt rotasını başka bir bağlantılı kanal eşine geçirmek için aynı eşlemeyi kullanır; bkz. Kanal sabitleme.reset: birincil sıfırlama ilkesi.daily, yerel saatleatHourolduğunda sıfırlar;idle,idleMinutessonrasında sıfırlar. Her ikisi de yapılandırıldığında, önce süresi dolan geçerli olur. Günlük sıfırlamanın güncelliği, oturum satırındakisessionStartedAtdeğerini; boşta kalma sıfırlamasının güncelliği iselastInteractionAtdeğerini kullanır. Heartbeat, Cron uyandırmaları, yürütme bildirimleri ve Gateway kayıt işlemleri gibi arka plan/sistem olayı yazmalarıupdatedAtdeğerini güncelleyebilir, ancak günlük/boşta oturumları güncel tutmaz.resetByType: tür başına geçersiz kılmalar (direct,group,thread). Eskidm,directiçin takma ad olarak kabul edilir.resetByChannel: sağlayıcı/kanal kimliğine göre anahtarlanan kanal başına sıfırlama geçersiz kılmaları. Oturumun kanalıyla eşleşen bir girdi bulunduğunda, bu oturum içinresetByType/resetdeğerlerine doğrudan üstün gelir. Yalnızca bir kanalın tür düzeyindeki ilkeden farklı bir sıfırlama davranışına ihtiyaç duyması durumunda kullanın.mainKey: eski alan. Çalışma zamanı, ana doğrudan sohbet grubu için her zaman"main"kullanır.agentToAgent.maxPingPongTurns: ajanlar arası alışverişlerde ajanlar arasındaki azami karşılıklı yanıt turu sayısı (tam sayı, aralık:0-20, varsayılan:5).0, karşılıklı zincirlemeyi devre dışı bırakır.sendPolicy:channel,chatType(direct|group|channel, eskidmtakma adıyla),keyPrefixveyarawKeyPrefixdeğerine göre eşleştirir. İlk ret geçerli olur.maintenance: oturum deposu temizleme + saklama denetimleri.mode:enforcetemizlemeyi uygular ve varsayılan değerdir;warnyalnızca uyarılar yayınlar.pruneAfter: eski girdiler için yaş sınırı (varsayılan30d).maxEntries: azami SQLite oturum girdisi sayısı (varsayılan500). Çalışma zamanı yazmaları, üretim ölçeğindeki sınırlar için küçük bir üst sınır tamponuyla toplu temizleme yapar;openclaw sessions cleanup --enforcesınırı hemen uygular.- Kısa ömürlü Gateway model çalıştırma yoklama oturumları sabit
24hsaklama süresini kullanır, ancak temizleme baskıya bağlıdır: yalnızca oturum girdisi bakımı/sınır baskısına ulaşıldığında eski ve katı model çalıştırma yoklama satırlarını kaldırır. Yalnızcaagent:*:explicit:model-run-<uuid>ile eşleşen açık ve katı yoklama anahtarları uygundur; normal doğrudan, grup, ileti dizisi, Cron, kanca, Heartbeat, ACP ve alt ajan oturumları bu 24 saatlik saklama süresini devralmaz. Model çalıştırma temizliği gerçekleştirildiğinde, daha geniş kapsamlıpruneAftereski girdi temizliğinden vemaxEntriessınırından önce çalışır. - Eski
rotateBytes, geçerli şema tarafından reddedilir;openclaw doctor --fixbunu eski yapılandırmalardan kaldırır. resetArchiveRetention: sıfırlanmış/silinmiş döküm arşivleri için yaşa dayalı saklama. Varsayılan olarak arşivler disk bütçesi tahliyesine kadar kalır; duvar saati süresine göre silmeyi etkinleştirmek için bir süre ayarlayın veya açıkça devre dışı bırakmak içinfalsekullanın.maxDiskBytes: isteğe bağlı oturum dizini disk bütçesi.warnmodunda uyarıları günlüğe kaydeder;enforcemodunda önce en eski yapıtları/oturumları kaldırır.highWaterBytes: bütçe temizliğinden sonra isteğe bağlı hedef. Varsayılan olarakmaxDiskBytesdeğerinin80%kadarıdır.writeLock: oturum dökümü yazma kilidi denetimleri. Yalnızca meşru döküm hazırlama, temizleme, Compaction veya yansıtma çalışmaları varsayılan ilkelerden daha uzun süre çekişmeye neden olduğunda ayarlayın.acquireTimeoutMs: oturumun meşgul olduğunu bildirmeden önce kilit alınırken beklenecek milisaniye. Varsayılan:60000; ortam değişkeni geçersiz kılmasıOPENCLAW_SESSION_WRITE_LOCK_ACQUIRE_TIMEOUT_MS.staleMs: mevcut bir kilidin eski sayılıp geri alınmasından önce geçecek milisaniye. Varsayılan:1800000; ortam değişkeni geçersiz kılmasıOPENCLAW_SESSION_WRITE_LOCK_STALE_MS.maxHoldMs: süreç içinde tutulan bir kilidin gözetmen tarafından serbest bırakılmadan önce tutulabileceği milisaniye. Varsayılan:300000; ortam değişkeni geçersiz kılmasıOPENCLAW_SESSION_WRITE_LOCK_MAX_HOLD_MS.threadBindings: ileti dizisine bağlı oturum özellikleri için genel varsayılanlar.enabled: ana varsayılan anahtar (sağlayıcılar geçersiz kılabilir; Discordchannels.discord.threadBindings.enabledkullanır)idleHours: saat cinsinden varsayılan hareketsizlik sonrası otomatik odaktan çıkarma (0devre dışı bırakır; sağlayıcılar geçersiz kılabilir)maxAgeHours: saat cinsinden varsayılan kesin azami yaş (0devre dışı bırakır; sağlayıcılar geçersiz kılabilir)spawnSessions:sessions_spawnve ACP ileti dizisi başlatmalarından ileti dizisine bağlı çalışma oturumları oluşturmak için varsayılan geçit. İleti dizisi bağlamaları etkinleştirildiğinde varsayılan değertrueolur; sağlayıcılar/hesaplar geçersiz kılabilir.defaultSpawnContext: ileti dizisine bağlı başlatmalar için varsayılan yerel alt ajan bağlamı ("fork"veya"isolated"). Varsayılan değer"fork"olur.
Mesajlar
{ messages: { responsePrefix: "🦞", // veya "auto" ackReaction: "👀", ackReactionScope: "group-mentions", // group-mentions | group-all | direct | all | off | none removeAckAfterReply: false, queue: { mode: "steer", // steer (varsayılan) | followup | collect | interrupt debounceMs: 500, cap: 20, drop: "summarize", // old | new | summarize (varsayılan) byChannel: { whatsapp: "followup", telegram: "followup", }, }, inbound: { debounceMs: 2000, // 0 devre dışı bırakır byChannel: { whatsapp: 5000, slack: 1500, }, }, },}Yanıt ön eki
Kanal/hesap başına geçersiz kılmalar: channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Çözümleme (en özel olan geçerli olur): hesap → kanal → genel. "" devre dışı bırakır ve basamaklandırmayı durdurur. "auto", [{identity.name}] değerini türetir.
Şablon değişkenleri:
| Değişken | Açıklama | Örnek |
|---|---|---|
{model} |
Kısa model adı | claude-opus-4-6 |
{modelFull} |
Tam model tanımlayıcısı | anthropic/claude-opus-4-6 |
{provider} |
Sağlayıcı adı | anthropic |
{thinkingLevel} |
Geçerli düşünme düzeyi | high, low, off |
{identity.name} |
Ajan kimliği adı | ("auto" ile aynı) |
Değişkenler büyük/küçük harfe duyarlı değildir. {think}, {thinkingLevel} için bir takma addır.
Alındı tepkisi
- Varsayılan olarak etkin ajanın
identity.emojideğeri, aksi takdirde"👀"kullanılır. Devre dışı bırakmak için""olarak ayarlayın. - Kanal başına geçersiz kılmalar:
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - Çözümleme sırası: hesap → kanal →
messages.ackReaction→ kimlik geri dönüşü. - Kapsam:
group-mentions(varsayılan),group-all,direct,allveyaoff/none(alındı tepkilerini tamamen devre dışı bırakır). removeAckAfterReply: Slack, Discord, Signal, Telegram, WhatsApp ve iMessage gibi tepki destekli kanallarda yanıttan sonra alındı tepkisini kaldırır.messages.statusReactions.enabled: Slack, Discord, Signal, Telegram ve WhatsApp üzerinde yaşam döngüsü durum tepkilerini etkinleştirir. Discord üzerinde ayarlanmamış olması, alındı tepkileri etkinken durum tepkilerini etkin tutar. Slack, Signal, Telegram ve WhatsApp üzerinde yaşam döngüsü durum tepkilerini etkinleştirmek için bunu açıkçatrueolarak ayarlayın. Slack, yapılandırılmış alındı tepkisini sabit tutarken ilerleme için varsayılan olarak yerel asistan ileti dizisi durumunu ve dönüşümlü yükleme mesajlarını kullanır.messages.statusReactions.emojis: yaşam döngüsü emoji anahtarlarını geçersiz kılar:queued,thinking,compacting,tool,coding,web,deploy,build,concierge,done,error,stallSoftvestallHard. Telegram yalnızca sabit bir tepki kümesine izin verir; bu nedenle desteklenmeyen yapılandırılmış emojiler söz konusu sohbet için en yakın desteklenen durum çeşidine geri döner.
Kuyruk
mode: bir oturum çalıştırması etkinken gelen iletiler için kuyruk stratejisi. Varsayılan:"steer".steer: yeni istemi etkin çalıştırmaya ekler.followup: etkin çalıştırma bittikten sonra yeni istemi çalıştırır.collect: uyumlu iletileri toplu hâle getirir ve daha sonra birlikte çalıştırır.interrupt: en yeni istemi başlatmadan önce etkin çalıştırmayı iptal eder.
debounceMs: kuyruğa alınmış/yönlendirilmiş bir ileti gönderilmeden önceki gecikme. Varsayılan:500.cap: bırakma ilkesi uygulanmadan önceki azami kuyruk iletisi sayısı. Varsayılan:20.drop: sınır aşıldığında uygulanacak strateji."summarize"(varsayılan) en eski girdileri bırakır ancak özetleri kompakt biçimde tutar;"old"en eski girdileri özet olmadan bırakır;"new"en yeni öğeyi reddeder.byChannel: sağlayıcı kimliğine göre anahtarlanan kanal başınamodegeçersiz kılmaları.debounceMsByChannel: sağlayıcı kimliğine göre anahtarlanan kanal başınadebounceMsgeçersiz kılmaları.
Gelen ileti bekletmesi
Aynı göndericiden hızlı bir şekilde gelen yalnızca metin içeren iletileri tek bir ajan turunda toplar. Medya/ekler hemen gönderilir. Denetim komutları bekletmeyi atlar. Varsayılan debounceMs: 2000.
Diğer ileti anahtarları
messages.messagePrefix: gelen kullanıcı iletileri ajan çalışma zamanına ulaşmadan önce başlarına eklenen metin. Kanal bağlamı işaretçileri için ölçülü kullanın.messages.visibleReplies: doğrudan, grup ve kanal konuşmalarındaki görünür kaynak yanıtlarını denetler ("message_tool", görünür çıktı içinmessage(action=send)gerektirir;"automatic", normal yanıtları eskisi gibi yayınlar).messages.usageTemplate/messages.responseUsage: özel/usagealt bilgi şablonu ve varsayılan yanıt başına kullanım modu (off | tokens | full, ayrıcatokensiçin eskiontakma adı).messages.groupChat.mentionPatterns/historyLimit: grup iletisi bahsetme tetikleyicileri ve geçmiş penceresi boyutlandırması.messages.suppressToolErrors:trueolduğunda, kullanıcıya gösterilen⚠️araç hatası uyarılarını engeller (ajan hataları bağlam içinde görmeye devam eder ve yeniden deneyebilir). Varsayılan:false.
TTS (metinden konuşmaya)
{ messages: { tts: { auto: "off", // off (varsayılan) | always | inbound | tagged mode: "final", // final | all provider: "elevenlabs", summaryModel: "openai/gpt-5.4-mini", modelOverrides: { enabled: true }, maxTextLength: 4000, timeoutMs: 30000, prefsPath: "~/.openclaw/settings/tts.json", providers: { elevenlabs: { apiKey: "elevenlabs_api_key", baseUrl: "https://api.elevenlabs.io", speakerVoiceId: "voice_id", modelId: "eleven_multilingual_v2", seed: 42, applyTextNormalization: "auto", languageCode: "en", voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0, }, }, microsoft: { speakerVoice: "en-US-MichelleNeural", lang: "en-US", outputFormat: "audio-24khz-48kbitrate-mono-mp3", }, openai: { apiKey: "openai_api_key", baseUrl: "https://api.openai.com/v1", model: "gpt-4o-mini-tts", speakerVoice: "coral", }, }, }, },}autovarsayılan otomatik TTS modunu denetler:off,always,inboundveyatagged./tts on|offyerel tercihleri geçersiz kılabilir ve/tts statusetkin durumu gösterir.summaryModel, otomatik özetleme içinagents.defaults.model.primarydeğerini geçersiz kılar.modelOverridesvarsayılan olarak etkindir (enabled !== false);modelOverrides.allowProvideristeğe bağlıdır.- API anahtarları,
ELEVENLABS_API_KEY/XI_API_KEYveOPENAI_API_KEYdeğerlerine geri döner. - Paketlenmiş konuşma sağlayıcılarının sahibi plugin'lerdir.
plugins.allowayarlanmışsa kullanmak istediğiniz her TTS sağlayıcı plugin'ini ekleyin; örneğin Edge TTS içinmicrosoft. Eskiedgesağlayıcı kimliği,microsoftiçin bir diğer ad olarak kabul edilir. providers.openai.baseUrl, OpenAI TTS uç noktasını geçersiz kılar. Çözümleme sırası yapılandırma, ardındanOPENAI_TTS_BASE_URL, ardındanhttps://api.openai.com/v1şeklindedir.providers.openai.baseUrl, OpenAI dışı bir uç noktayı gösterdiğinde OpenClaw bunu OpenAI uyumlu bir TTS sunucusu olarak değerlendirir ve model/ses doğrulamasını gevşetir.
Konuşma
Konuşma modu için varsayılanlar (macOS/iOS/Android ve tarayıcı Denetim Arayüzü).
{ talk: { provider: "elevenlabs", providers: { elevenlabs: { speakerVoiceId: "elevenlabs_voice_id", voiceAliases: { Clawd: "EXAVITQu4vr4xnSDxMaL", Roger: "CwhRBWXzGAHq8TQ4Fs17", }, modelId: "eleven_multilingual_v2", outputFormat: "mp3_44100_128", apiKey: "elevenlabs_api_key", }, mlx: { modelId: "mlx-community/Soprano-80M-bf16", }, system: {}, }, consultThinkingLevel: "low", consultFastMode: true, speechLocale: "ru-RU", silenceTimeoutMs: 1500, interruptOnSpeech: true, realtime: { provider: "openai", providers: { openai: { model: "gpt-realtime-2.1", speakerVoice: "cedar", }, }, instructions: "Sıcak bir üslupla konuş ve yanıtları kısa tut.", mode: "realtime", // realtime | stt-tts | transcription transport: "webrtc", // webrtc | provider-websocket | gateway-relay | managed-room vadThreshold: 0.5, silenceDurationMs: 500, prefixPaddingMs: 300, reasoningEffort: "medium", brain: "agent-consult", // agent-consult | direct-tools | none }, },}- Birden fazla Konuşma sağlayıcısı yapılandırıldığında
talk.provider,talk.providersiçindeki bir anahtarla eşleşmelidir. - Eski düz Konuşma anahtarları (
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey) yalnızca uyumluluk içindir. Kalıcı yapılandırmayıtalk.providers.<provider>biçiminde yeniden yazmak içinopenclaw doctor --fixkomutunu çalıştırın. - Ses kimlikleri,
ELEVENLABS_VOICE_IDveyaSAG_VOICE_IDdeğerlerine geri döner (macOS Konuşma istemcisi davranışı). providers.*.apiKey, düz metin dizelerini veya SecretRef nesnelerini kabul eder.ELEVENLABS_API_KEYgeri dönüşü yalnızca hiçbir Konuşma API anahtarı yapılandırılmadığında uygulanır.providers.*.voiceAliases, Konuşma yönergelerinde kolay anlaşılır adların kullanılmasını sağlar.providers.mlx.modelId, macOS yerel MLX yardımcısının kullandığı Hugging Face deposunu seçer. Belirtilmezse macOS,mlx-community/Soprano-80M-bf16kullanır.- macOS MLX oynatma, mevcutsa paketlenmiş
openclaw-mlx-ttsyardımcısı veyaPATHüzerindeki bir yürütülebilir dosya üzerinden çalışır;OPENCLAW_MLX_TTS_BIN, geliştirme amacıyla yardımcı yolunu geçersiz kılar. consultThinkingLevel, Denetim Arayüzü Konuşma gerçek zamanlıopenclaw_agent_consultçağrılarının arkasındaki tam OpenClaw ajan çalıştırmasının düşünme düzeyini denetler. Normal oturum/model davranışını korumak için ayarlamayın.consultFastMode, oturumun normal hızlı mod ayarını değiştirmeden Denetim Arayüzü Konuşma gerçek zamanlı danışmaları için tek seferlik bir hızlı mod geçersiz kılması ayarlar.speechLocale, iOS/macOS Konuşma ses tanımanın kullandığı BCP 47 yerel ayar kimliğini belirler. Cihaz varsayılanını kullanmak için ayarlamayın.silenceTimeoutMs, Konuşma modunun dökümü göndermeden önce kullanıcı sessizliğinden sonra ne kadar bekleyeceğini denetler. Ayarlanmaması, platformun varsayılan duraklama aralığını (700 ms on macOS and Android, 900 ms on iOS) korur.realtime.instructions, sağlayıcıya yönelik sistem yönergelerini OpenClaw'ın yerleşik gerçek zamanlı istemine ekler; böylece varsayılanopenclaw_agent_consultyönlendirmesi kaybedilmeden ses stili yapılandırılabilir.realtime.vadThreshold, sağlayıcının ses etkinliği eşiğini0(en hassas) ile1(en az hassas) arasında ayarlar. Ayarlanmaması, sağlayıcının varsayılanını korur.realtime.silenceDurationMs, sağlayıcının gerçek zamanlı bir kullanıcı sırasını kesinleştirmesinden önceki pozitif tam sayı sessizlik aralığını ayarlar. Ayarlanmaması, sağlayıcının varsayılanını korur.realtime.prefixPaddingMs, algılanan konuşma başlamadan önce tutulan negatif olmayan tam sayı ses miktarını ayarlar. Ayarlanmaması, sağlayıcının varsayılanını korur.realtime.reasoningEffort, gerçek zamanlı oturumlar için sağlayıcıya özgü akıl yürütme düzeyini ayarlar. Ayarlanmaması, sağlayıcının varsayılanını korur.realtime.consultRouting:"provider-direct"(varsayılan), gerçek zamanlı sağlayıcıopenclaw_agent_consultolmadan nihai bir kullanıcı dökümü ürettiğinde doğrudan sağlayıcı yanıtlarını korur. Bunun yerine"force-agent-consult", kesinleştirilmiş isteği OpenClaw üzerinden yönlendirir.
İlgili
- Yapılandırma başvurusu — diğer tüm yapılandırma anahtarları
- Yapılandırma — yaygın görevler ve hızlı kurulum
- Yapılandırma örnekleri