Ana içeriğe atla

Documentation Index

Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

agents.*, multiAgent.*, session.*, messages.* ve talk.* altındaki aracı kapsamlı yapılandırma anahtarları. Kanallar, araçlar, Gateway çalışma zamanı ve diğer üst düzey anahtarlar için Yapılandırma başvurusu bölümüne bakın.

Aracı varsayılanları

agents.defaults.workspace

Varsayılan: ~/.openclaw/workspace.
{
  agents: { defaults: { workspace: "~/.openclaw/workspace" } },
}

agents.defaults.repoRoot

Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ayarlanmazsa OpenClaw, çalışma alanından yukarı doğru ilerleyerek otomatik algılar.
{
  agents: { defaults: { repoRoot: "~/Projects/openclaw" } },
}

agents.defaults.skills

agents.list[].skills ayarlamayan aracılar için isteğe bağlı varsayılan Skills izin listesi.
{
  agents: {
    defaults: { skills: ["github", "weather"] },
    list: [
      { id: "writer" }, // inherits github, weather
      { id: "docs", skills: ["docs-search"] }, // replaces defaults
      { id: "locked-down", skills: [] }, // no skills
    ],
  },
}
  • Varsayılan olarak sınırsız Skills için agents.defaults.skills öğesini atlayın.
  • Varsayılanları devralmak için agents.list[].skills öğesini atlayın.
  • Skills olmaması için agents.list[].skills: [] olarak ayarlayın.
  • Boş olmayan bir agents.list[].skills listesi, o aracı için nihai kümedir; 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ını yazmaya devam ederken seçilen 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 enjekte edileceğini denetler. Varsayılan: "always".
  • "continuation-skip": güvenli devam turları (tamamlanmış bir asistan yanıtından sonra), istem boyutunu azaltmak için çalışma alanı önyüklemesinin yeniden enjekte edilmesini atlar. Heartbeat çalıştırmaları ve Compaction sonrası yeniden denemeler yine de bağlamı yeniden oluşturur.
  • "never": her turda çalışma alanı önyüklemesini ve bağlam dosyası enjeksiyonunu devre dışı bırakır. Bunu yalnızca istem yaşam döngüsünün tümünü sahiplenen aracılar için kullanın (özel bağlam motorları, kendi bağlamını oluşturan yerel çalışma zamanları veya özel önyüklemesiz iş akışları). Heartbeat ve Compaction kurtarma turları da enjeksiyonu atlar.
{
  agents: { defaults: { contextInjection: "continuation-skip" } },
}

agents.defaults.bootstrapMaxChars

Kesmeden önce çalışma alanı önyükleme dosyası başına azami karakter sayısı. Varsayılan: 12000.
{
  agents: { defaults: { bootstrapMaxChars: 12000 } },
}

agents.defaults.bootstrapTotalMaxChars

Tüm çalışma alanı önyükleme dosyaları genelinde enjekte edilen azami toplam karakter sayısı. Varsayılan: 60000.
{
  agents: { defaults: { bootstrapTotalMaxChars: 60000 } },
}

agents.defaults.bootstrapPromptTruncationWarning

Önyükleme bağlamı kesildiğinde aracı tarafından görülebilen sistem istemi bildirimini denetler. Varsayılan: "once".
  • "off": kesme bildirimi metnini sistem istemine asla enjekte etmez.
  • "once": her benzersiz kesme imzası için bir kez kısa bir bildirim enjekte eder (önerilir).
  • "always": kesme mevcut olduğunda her çalıştırmada kısa bir bildirim enjekte eder.
Ayrıntılı ham/enjekte edilmiş sayımlar ve yapılandırma ayarlama alanları, bağlam/durum raporları ve günlükler gibi tanı çıktılarında kalır; rutin WebChat kullanıcı/çalışma zamanı bağlamı yalnızca kısa kurtarma bildirimini alır.
{
  agents: { defaults: { bootstrapPromptTruncationWarning: "once" } }, // 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 tek bir genel ayar üzerinden akmak yerine bilerek alt sisteme göre ayrılmıştır.
  • agents.defaults.bootstrapMaxChars / agents.defaults.bootstrapTotalMaxChars: normal çalışma alanı önyükleme enjeksiyonu.
  • agents.defaults.startupContext.*: son günlük memory/*.md dosyaları dahil, tek seferlik sıfırlama/başlangıç model çalıştırması başlangıcı. Yalın sohbet /new ve /reset komutları, modeli çağırmadan onaylanır.
  • skills.limits.*: sistem istemine enjekte edilen kompakt Skills listesi.
  • agents.defaults.contextLimits.*: sınırlandırılmış çalışma zamanı alıntıları ve enjekte edilen, çalışma zamanına ait bloklar.
  • memory.qmd.limits.*: dizinlenmiş bellek arama parçacığı ve enjeksiyon boyutlandırması.
Eşleşen aracı başına geçersiz kılmayı yalnızca bir aracı farklı bir bütçeye ihtiyaç duyduğunda kullanın:
  • agents.list[].skillsLimits.maxSkillsPromptChars
  • agents.list[].contextLimits.*

agents.defaults.startupContext

Sıfırlama/başlangıç model çalıştırmalarında enjekte edilen ilk tur başlangıç başlangıcını denetler. Yalın sohbet /new ve /reset komutları, modeli çağırmadan sıfırlamayı onaylar; bu nedenle bu başlangıcı yüklemezler.
{
  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,
        toolResultMaxChars: 16000,
        postCompactionMaxChars: 1800,
      },
    },
  },
}
  • memoryGetMaxChars: kesme meta verileri ve devam bildirimi eklenmeden önce varsayılan memory_get alıntı üst sınırı.
  • memoryGetDefaultLines: lines atlandığında varsayılan memory_get satır penceresi.
  • toolResultMaxChars: kalıcı sonuçlar ve taşma kurtarma için kullanılan canlı araç sonucu üst sınırı.
  • postCompactionMaxChars: Compaction sonrası yenileme enjeksiyonu sırasında kullanılan AGENTS.md alıntı üst sınırı.

agents.list[].contextLimits

Paylaşılan contextLimits ayarları için aracı başına geçersiz kılma. Atlanan alanlar agents.defaults.contextLimits içinden devralınır.
{
  agents: {
    defaults: {
      contextLimits: {
        memoryGetMaxChars: 12000,
        toolResultMaxChars: 16000,
      },
    },
    list: [
      {
        id: "tiny-local",
        contextLimits: {
          memoryGetMaxChars: 6000,
          toolResultMaxChars: 8000,
        },
      },
    ],
  },
}

skills.limits.maxSkillsPromptChars

Sistem istemine enjekte edilen kompakt Skills listesi için genel üst sınır. Bu, SKILL.md dosyalarının gerektiğinde okunmasını etkilemez.
{
  skills: {
    limits: {
      maxSkillsPromptChars: 18000,
    },
  },
}

agents.list[].skillsLimits.maxSkillsPromptChars

Skills istem bütçesi için aracı 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 transcript/araç görsel bloklarında en uzun görsel 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örsel 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.userTimezone

Sistem istemi bağlamı için saat dilimi (mesaj zaman damgaları için değil). Ana makine 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"],
      },
      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" }, // global default provider params
      pdfMaxBytesMb: 10,
      pdfMaxPages: 20,
      thinkingDefault: "low",
      verboseDefault: "off",
      toolProgressDetail: "explain",
      reasoningDefault: "off",
      elevatedDefault: "on",
      timeoutSeconds: 600,
      mediaMaxMb: 5,
      contextTokens: 200000,
      maxConcurrent: 3,
    },
  },
}
  • model: bir dize ("provider/model") veya bir nesne ({ 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.
  • imageModel: bir dize ("provider/model") veya bir nesne ({ primary, fallbacks }) kabul eder.
    • image araç yolu tarafından görüntü modeli yapılandırması olarak kullanılır.
    • Seçilen/varsayılan model görüntü girdisini kabul edemediğinde yedek yönlendirme olarak da kullanılır.
    • Açık provider/model başvurularını tercih edin. Çıplak kimlikler uyumluluk için kabul edilir; çıplak bir kimlik models.providers.*.models içindeki yapılandırılmış, görüntü destekli bir girişle benzersiz şekilde eşleşirse OpenClaw onu bu sağlayıcıyla niteler. Belirsiz yapılandırılmış eşleşmeler açık bir sağlayıcı öneki gerektirir.
  • imageGenerationModel: bir dize ("provider/model") veya bir nesne ({ primary, fallbacks }) kabul eder.
    • Paylaşılan görüntü üretme yeteneği ve görüntü üreten gelecekteki herhangi bir araç/Plugin yüzeyi tarafından kullanılır.
    • Tipik değerler: yerel Gemini görüntü üretimi için google/gemini-3.1-flash-image-preview, fal için fal/fal-ai/flux/dev, OpenAI Images için openai/gpt-image-2 veya şeffaf arka planlı OpenAI PNG/WebP çıktısı için openai/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çin GEMINI_API_KEY veya GOOGLE_API_KEY, openai/gpt-image-2 / openai/gpt-image-1.5 için OPENAI_API_KEY veya OpenAI Codex OAuth, fal/* için FAL_KEY).
    • Atlanırsa image_generate yine de kimlik doğrulama destekli bir sağlayıcı varsayılanı çıkarımlayabilir. Önce geçerli varsayılan sağlayıcıyı, ardından kalan kayıtlı görüntü üretme sağlayıcılarını sağlayıcı kimliği sırasıyla dener.
  • musicGenerationModel: bir dize ("provider/model") veya bir nesne ({ primary, fallbacks }) kabul eder.
    • Paylaşılan müzik üretme yeteneği ve yerleşik music_generate aracı tarafından kullanılır.
    • Tipik değerler: google/lyria-3-clip-preview, google/lyria-3-pro-preview veya minimax/music-2.6.
    • Atlanırsa music_generate yine de kimlik doğrulama destekli bir sağlayıcı varsayılanı çıkarımlayabilir. Önce geçerli varsayılan sağlayıcıyı, ardından kalan kayıtlı müzik üretme 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.
  • videoGenerationModel: bir dize ("provider/model") veya bir nesne ({ primary, fallbacks }) kabul eder.
    • Paylaşılan video üretme yeteneği ve yerleşik video_generate aracı tarafından kullanılır.
    • Tipik değerler: qwen/wan2.6-t2v, qwen/wan2.6-i2v, qwen/wan2.6-r2v, qwen/wan2.6-r2v-flash veya qwen/wan2.7-r2v.
    • Atlanırsa video_generate yine de kimlik doğrulama destekli bir sağlayıcı varsayılanı çıkarımlayabilir. Önce geçerli varsayılan sağlayıcıyı, ardından kalan kayıtlı video üretme 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.
    • Paketle gelen Qwen video üretme sağlayıcısı en fazla 1 çıktı videosunu, 1 girdi görüntüsünü, 4 girdi videosunu, 10 saniye süreyi ve sağlayıcı düzeyinde size, aspectRatio, resolution, audio ve watermark seçeneklerini destekler.
  • pdfModel: bir dize ("provider/model") veya bir nesne ({ primary, fallbacks }) kabul eder.
    • Model yönlendirmesi için pdf aracı tarafından kullanılır.
    • Atlanırsa PDF aracı önce imageModel değerine, ardından çözümlenen oturum/varsayılan modele geri döner.
  • pdfMaxBytesMb: çağrı zamanında maxBytesMb geçirilmediğinde pdf aracı için varsayılan PDF boyutu sınırı.
  • pdfMaxPages: pdf aracında çıkarma yedek modu tarafından dikkate alınan varsayılan maksimum sayfa sayısı.
  • verboseDefault: ajanlar için varsayılan ayrıntılı düzeyi. Değerler: "off", "on", "full". Varsayılan: "off".
  • toolProgressDetail: /verbose araç özetleri ve ilerleme taslağı araç satırları için ayrıntı modu. Değerler: "explain" (varsayılan, kompakt insan etiketleri) veya "raw" (varsa ham komutu/ayrıntıyı ekler). Ajan başına agents.list[].toolProgressDetail bu varsayılanı geçersiz kılar.
  • reasoningDefault: ajanlar için varsayılan akıl yürütme görünürlüğü. Değerler: "off", "on", "stream". Ajan başına agents.list[].reasoningDefault bu varsayılanı geçersiz kılar. Yapılandırılmış akıl yürütme varsayılanları, yalnızca ileti veya oturum başına akıl yürütme geçersiz kılması ayarlanmamışsa sahipler, yetkili göndericiler veya operatör-yönetici Gateway bağlamları için uygulanır.
  • elevatedDefault: ajanlar için varsayılan yükseltilmiş çıktı düzeyi. Değerler: "off", "on", "ask", "full". Varsayılan: "on".
  • model.primary: biçim provider/model (örn. OpenAI API anahtarı veya Codex OAuth erişimi için openai/gpt-5.5). Sağlayıcıyı atlarsanız OpenClaw önce bir takma adı, ardından tam model kimliği için benzersiz 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ımı kaldırılmış uyumluluk davranışı; bu nedenle açık provider/model tercih edin). Bu sağlayıcı artık yapılandırılmış varsayılan modeli sunmuyorsa OpenClaw eski ve kaldırılmış sağlayıcı varsayılanını göstermek yerine ilk yapılandırılmış sağlayıcı/modele geri döner.
  • models: /model için yapılandırılmış model kataloğu ve izin listesi. Her giriş alias (kısayol) ve params (sağlayıcıya özgü, örneğin temperature, maxTokens, cacheRetention, context1m, responsesServerCompaction, responsesCompactThreshold, chat_template_kwargs, extra_body/extraBody) içerebilir.
    • Her model kimliğini elle listelemeden seçili sağlayıcılar için keşfedilen tüm modelleri göstermek üzere "openai-codex/*": {} veya "vllm/*": {} gibi provider/* girişleri kullanın.
    • Güvenli düzenlemeler: giriş eklemek için openclaw config set agents.defaults.models '<json>' --strict-json --merge kullanın. config set, --replace geçmediğiniz sürece mevcut izin listesi girişlerini kaldıracak değiştirmeleri reddeder.
    • Sağlayıcı kapsamlı yapılandırma/ilk kurulum akışları, seçili sağlayıcı modellerini bu haritaya birleştirir ve zaten yapılandırılmış ilgisiz sağlayıcıları korur.
    • Doğrudan OpenAI Responses modelleri için sunucu tarafı Compaction otomatik olarak etkinleştirilir. context_management eklemeyi durdurmak için params.responsesServerCompaction: false veya eşiği geçersiz kılmak için params.responsesCompactThreshold kullanın. Bkz. OpenAI sunucu tarafı Compaction.
  • params: tüm modellere uygulanan genel varsayılan sağlayıcı parametreleri. agents.defaults.params içinde ayarlanır (örn. { cacheRetention: "long" }).
  • params birleştirme önceliği (yapılandırma): agents.defaults.params (genel taban), agents.defaults.models["provider/model"].params (model başına) tarafından geçersiz kılınır; ardından agents.list[].params (eşleşen ajan kimliği) anahtara göre geçersiz kılar. Ayrıntılar için Prompt Önbelleğe Alma sayfasına bakın.
  • params.extra_body/params.extraBody: OpenAI uyumlu proxy’ler için api: "openai-completions" istek gövdelerine birleştirilen gelişmiş geçiş JSON’u. Üretilen istek anahtarlarıyla çakışırsa ek gövde kazanır; yerel olmayan completions rotaları yine de sonrasında yalnızca OpenAI’ye özgü store değerini çıkarır.
  • params.chat_template_kwargs: üst düzey api: "openai-completions" istek gövdelerine birleştirilen vLLM/OpenAI uyumlu sohbet şablonu bağımsız değişkenleri. Düşünme kapalıyken vllm/nemotron-3-* için paketle gelen vLLM Plugin otomatik olarak enable_thinking: false ve force_nonempty_content: true gönderir; açık chat_template_kwargs üretilen varsayılanları geçersiz kılar ve extra_body.chat_template_kwargs yine nihai önceliğe sahiptir. vLLM Qwen düşünme kontrolleri için o model girişinde params.qwenThinkingFormat değerini "chat-template" veya "top-level" olarak ayarlayın.
  • compat.thinkingFormat: OpenAI uyumlu düşünme yükü stili. Qwen stili üst düzey enable_thinking için "qwen" veya vLLM gibi istek düzeyinde sohbet şablonu kwargs destekleyen Qwen ailesi arka uçlarında chat_template_kwargs.enable_thinking için "qwen-chat-template" kullanın. OpenClaw devre dışı düşünmeyi false değerine, etkin düşünmeyi true değerine eşler.
  • compat.supportedReasoningEfforts: model başına OpenAI uyumlu akıl yürütme çabası listesi. Bunu gerçekten kabul eden özel uç noktalar için "xhigh" ekleyin; OpenClaw daha sonra bu yapılandırılmış sağlayıcı/model için komut menülerinde, Gateway oturum satırlarında, oturum yaması doğrulamasında, ajan CLI doğrulamasında ve llm-task doğrulamasında /think xhigh değerini sunar. Arka uç kanonik bir düzey için sağlayıcıya özgü bir değer istiyorsa compat.reasoningEffortMap kullanın.
  • params.preserveThinking: korunmuş düşünme için yalnızca Z.AI’ye özgü katılım seçeneği. Etkinleştirildiğinde ve düşünme açıkken OpenClaw thinking.clear_thinking: false gönderir ve önceki reasoning_content değerini yeniden oynatır; bkz. Z.AI düşünme ve korunmuş 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 bu sağlayıcıya ait olduğunda OpenClaw healthUrl (veya baseUrl + "/models") uç noktasını yoklar, uç nokta kapalıysa command değerini args ile başlatır, en fazla readyTimeoutMs kadar bekler ve ardından model isteğini gönderir. command mutlak bir yol olmalıdır. idleStopMs: 0, OpenClaw çıkana kadar süreci canlı tutar; pozitif bir değer, OpenClaw tarafından başlatılan süreci bu kadar boş milisaniyeden sonra durdurur. Bkz. Yerel model hizmetleri.
  • Çalışma zamanı ilkesi agents.defaults üzerinde değil, sağlayıcılar veya modeller üzerinde yer alır. Sağlayıcı genelindeki kurallar için models.providers.<provider>.agentRuntime veya modele özgü kurallar için agents.defaults.models["provider/model"].agentRuntime / agents.list[].models["provider/model"].agentRuntime kullanın. Resmi OpenAI sağlayıcısındaki OpenAI ajan modelleri varsayılan olarak Codex’i seçer.
  • Bu alanları değiştiren yapılandırma yazıcıları (örneğin /models set, /models set-image ve yedek ekleme/kaldırma komutları) kanonik nesne biçimini kaydeder ve mümkün olduğunda mevcut yedek listelerini korur.
  • maxConcurrent: oturumlar genelinde maksimum paralel ajan çalıştırması (her oturum yine de seri yürütülür). Varsayılan: 4.

Çalışma zamanı ilkesi

{
  models: {
    providers: {
      openai: {
        agentRuntime: { id: "codex" },
      },
    },
  },
  agents: {
    defaults: {
      model: "openai/gpt-5.5",
      models: {
        "anthropic/claude-opus-4-7": {
          agentRuntime: { id: "claude-cli" },
        },
      },
    },
  },
}
  • id: "auto", "pi", kayıtlı bir Plugin harness kimliği veya desteklenen bir CLI arka uç takma adı. Paketle gelen Codex Plugin codex kaydeder; paketle gelen Anthropic Plugin claude-cli CLI arka ucunu sağlar.
  • id: "auto" kayıtlı Plugin harness’larının desteklenen turları üstlenmesine izin verir ve hiçbir harness eşleşmediğinde PI kullanır. id: "codex" gibi açık bir Plugin çalışma zamanı bu harness’ı gerektirir ve kullanılamazsa veya başarısız olursa kapalı şekilde başarısız olur.
  • Tüm ajan çalışma zamanı anahtarları eski yöntemdir. agents.defaults.agentRuntime, agents.list[].agentRuntime, oturum çalışma zamanı sabitlemeleri ve OPENCLAW_AGENT_RUNTIME çalışma zamanı seçiminde yok sayılır. Eski değerleri kaldırmak için openclaw doctor --fix çalıştırın.
  • OpenAI ajan modelleri varsayılan olarak Codex harness’ını kullanır; bunu açık hale getirmek istediğinizde sağlayıcı/model agentRuntime.id: "codex" geçerli kalır.
  • Claude CLI dağıtımları için model: "anthropic/claude-opus-4-7" ile model kapsamlı agentRuntime.id: "claude-cli" tercih edin. Eski claude-cli/claude-opus-4-7 model başvuruları uyumluluk için hâlâ çalışır, ancak yeni yapılandırma sağlayıcı/model seçimini kanonik tutmalı ve yürütme arka ucunu sağlayıcı/model çalışma zamanı ilkesine koymalıdır.
  • Bu yalnızca metin ajan turu yürütmesini denetler. Medya üretimi, görüntü işleme, PDF, müzik, video ve TTS yine kendi sağlayıcı/model ayarlarını kullanır.
Yerleşik takma ad kısaltmaları (yalnızca model agents.defaults.models içinde olduğunda uygulanır):
Takma adModel
opusanthropic/claude-opus-4-6
sonnetanthropic/claude-sonnet-4-6
gptopenai/gpt-5.5
gpt-miniopenai/gpt-5.4-mini
gpt-nanoopenai/gpt-5.4-nano
geminigoogle/gemini-3.1-pro-preview
gemini-flashgoogle/gemini-3-flash-preview
gemini-flash-litegoogle/gemini-3.1-flash-lite-preview
Yapılandırdığınız takma adlar her zaman varsayılanlara göre önceliklidir. Z.AI GLM-4.x modelleri, --thinking off ayarlamadığınız veya agents.defaults.models["zai/<model>"].params.thinking değerini kendiniz tanımlamadığınız sürece düşünme modunu otomatik olarak etkinleştirir. Z.AI modelleri, araç çağrısı akışı için varsayılan olarak tool_stream özelliğini etkinleştirir. Devre dışı bırakmak için agents.defaults.models["zai/<model>"].params.tool_stream değerini false olarak ayarlayın. Anthropic Claude 4.6 modelleri, açık bir düşünme düzeyi ayarlanmadığında varsayılan olarak adaptive düşünmeyi kullanır.

agents.defaults.cliBackends

Yalnızca metin yedek çalıştırmaları için isteğe bağlı CLI arka uçları (araç çağrısı yok). API sağlayıcıları başarısız olduğunda yedek olarak kullanışlıdır.
{
  agents: {
    defaults: {
      cliBackends: {
        "codex-cli": {
          command: "/opt/homebrew/bin/codex",
        },
        "my-cli": {
          command: "my-cli",
          args: ["--json"],
          output: "json",
          modelArg: "--model",
          sessionArg: "--session",
          sessionMode: "existing",
          systemPromptArg: "--system",
          // Or use systemPromptFileArg when the CLI accepts a prompt file flag.
          systemPromptWhen: "first",
          imageArg: "--image",
          imageMode: "repeat",
        },
      },
    },
  },
}
  • CLI arka uçları metin önceliklidir; araçlar her zaman devre dışıdır.
  • Oturumlar, sessionArg ayarlandığında desteklenir.
  • Görsel aktarımı, imageArg dosya yollarını kabul ettiğinde desteklenir.
  • reseedFromRawTranscriptWhenUncompacted: true, bir arka ucun ilk Compaction özeti mevcut olmadan önce sınırlı ham OpenClaw transkript kuyruğundan güvenli geçersiz kılınmış oturumları kurtarmasına izin verir. Kimlik doğrulama profili veya kimlik bilgisi epoch değişiklikleri yine de asla ham yeniden tohumlama yapmaz.

agents.defaults.systemPromptOverride

OpenClaw tarafından birleştirilen sistem isteminin tamamını sabit bir dizeyle değiştirin. Varsayılan düzeyde (agents.defaults.systemPromptOverride) veya aracı başına (agents.list[].systemPromptOverride) ayarlayın. Aracıya özel değerler önceliklidir; boş veya yalnızca boşluk içeren değer yok sayılır. Denetimli istem deneyleri için kullanışlıdır.
{
  agents: {
    defaults: {
      systemPromptOverride: "You are a helpful assistant.",
    },
  },
}

agents.defaults.promptOverlays

Model ailesine göre uygulanan sağlayıcıdan bağımsız istem katmanları. GPT-5 ailesi model kimlikleri, sağlayıcılar genelinde paylaşılan davranış sözleşmesini alır; personality yalnızca arkadaşça etkileşim stili katmanını denetler.
{
  agents: {
    defaults: {
      promptOverlays: {
        gpt5: {
          personality: "friendly", // friendly | on | off
        },
      },
    },
  },
}
  • "friendly" (varsayılan) ve "on" arkadaşça etkileşim stili katmanını etkinleştirir.
  • "off" yalnızca arkadaşça katmanı devre dışı bırakır; etiketlenmiş GPT-5 davranış sözleşmesi etkin kalır.
  • Eski plugins.entries.openai.config.personality, bu paylaşılan ayar belirlenmemişse hâlâ okunur.

agents.defaults.heartbeat

Periyodik Heartbeat çalıştırmaları.
{
  agents: {
    defaults: {
      heartbeat: {
        every: "30m", // 0m disables
        model: "openai/gpt-5.4-mini",
        includeReasoning: false,
        includeSystemPromptSection: true, // default: true; false omits the Heartbeat section from the system prompt
        lightContext: false, // default: false; true keeps only HEARTBEAT.md from workspace bootstrap files
        isolatedSession: false, // default: false; true runs each heartbeat in a fresh session (no conversation history)
        skipWhenBusy: false, // default: false; true also waits for this agent's subagent/nested lanes
        session: "main",
        to: "+15555550123",
        directPolicy: "allow", // allow (default) | block
        target: "none", // default: none | options: last | whatsapp | telegram | discord | ...
        prompt: "Read HEARTBEAT.md if it exists...",
        ackMaxChars: 300,
        suppressToolErrorWarnings: false,
        timeoutSeconds: 45,
      },
    },
  },
}
  • every: süre dizesi (ms/s/m/h). Varsayılan: 30m (API anahtarı kimlik doğrulaması) veya 1h (OAuth kimlik doğrulaması). Devre dışı bırakmak için 0m olarak ayarlayın.
  • includeSystemPromptSection: false olduğunda Heartbeat bölümünü sistem isteminden çıkarır ve HEARTBEAT.md dosyasının bootstrap 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 aracı dönüşü iptal edilmeden önce izin verilen saniye cinsinden maksimum süre. agents.defaults.timeoutSeconds değerini kullanmak için ayarsız bırakın.
  • directPolicy: doğrudan/DM teslim politikası. allow (varsayılan) doğrudan hedef teslimine izin verir. block doğrudan hedef teslimini bastırır ve reason=dm-blocked yayar.
  • lightContext: true olduğunda Heartbeat çalıştırmaları hafif bootstrap bağlamı kullanır ve çalışma alanı bootstrap dosyalarından yalnızca HEARTBEAT.md dosyasını tutar.
  • isolatedSession: true olduğunda her Heartbeat, önceki konuşma geçmişi olmadan yeni bir oturumda çalışır. Cron sessionTarget: "isolated" ile aynı izolasyon kalıbıdır. Heartbeat başına token maliyetini yaklaşık 100K’dan yaklaşık 2-5K token’a düşürür.
  • skipWhenBusy: true olduğunda Heartbeat çalıştırmaları, ilgili aracının ek meşgul hatlarında ertelenir: kendi oturum anahtarlı alt aracısı veya iç içe komut işi. Cron hatları, bu bayrak olmasa bile Heartbeat’leri her zaman erteler.
  • Aracı başına: agents.list[].heartbeat ayarlayın. Herhangi bir aracı heartbeat tanımladığında, yalnızca bu aracılar Heartbeat çalıştırır.
  • Heartbeat’ler tam aracı dönüşleri ç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", // id of a registered compaction provider plugin (optional)
        timeoutSeconds: 900,
        reserveTokensFloor: 24000,
        keepRecentTokens: 50000,
        identifierPolicy: "strict", // strict | off | custom
        identifierInstructions: "Preserve deployment IDs, ticket IDs, and host:port pairs exactly.", // used when identifierPolicy=custom
        qualityGuard: { enabled: true, maxRetries: 1 },
        midTurnPrecheck: { enabled: false }, // optional Pi tool-loop pressure check
        postCompactionSections: ["Session Startup", "Red Lines"], // [] disables reinjection
        model: "openrouter/anthropic/claude-sonnet-4-6", // optional compaction-only model override
        truncateAfterCompaction: true, // rotate to a smaller successor JSONL after compaction
        maxActiveTranscriptBytes: "20mb", // optional preflight local compaction trigger
        notifyUser: true, // send brief notices when compaction starts and completes (default: false)
        memoryFlush: {
          enabled: true,
          model: "ollama/qwen3:8b", // optional memory-flush-only model override
          softThresholdTokens: 6000,
          systemPrompt: "Session nearing compaction. Store durable memories now.",
          prompt: "Write any lasting notes to memory/YYYY-MM-DD.md; reply with the exact silent token NO_REPLY if nothing to store.",
        },
      },
    },
  },
}
  • mode: default veya safeguard (uzun geçmişler için parçalı özetleme). Bkz. Compaction.
  • provider: kayıtlı bir Compaction sağlayıcı Plugin kimliği. Ayarlandığında, yerleşik LLM özetlemesi yerine sağlayıcının summarize() işlevi çağrılır. Hata durumunda yerleşik olana geri döner. Bir sağlayıcı ayarlamak mode: "safeguard" değerini zorunlu kılar. Bkz. Compaction.
  • timeoutSeconds: OpenClaw bir Compaction işlemini iptal etmeden önce tek bir Compaction işlemi için izin verilen maksimum saniye. Varsayılan: 900.
  • keepRecentTokens: en son transkript kuyruğunu bire bir tutmak için Pi kesme noktası bütçesi. Manuel /compact, açıkça ayarlandığında buna uyar; aksi halde manuel Compaction katı bir kontrol noktasıdır.
  • identifierPolicy: strict (varsayılan), off veya custom. strict, Compaction özetlemesi sırasında yerleşik opak tanımlayıcı saklama yönergelerini başa ekler.
  • identifierInstructions: identifierPolicy=custom olduğunda kullanılan isteğe bağlı özel tanımlayıcı koruma metni.
  • qualityGuard: safeguard özetleri için hatalı biçimlendirilmiş çıktı durumunda yeniden deneme kontrolleri. Safeguard modunda varsayılan olarak etkindir; denetimi atlamak için enabled: false ayarlayın.
  • midTurnPrecheck: isteğe bağlı Pi araç döngüsü baskı denetimi. enabled: true olduğunda OpenClaw, araç sonuçları eklendikten sonra ve bir sonraki model çağrısından önce bağlam baskısını denetler. Bağlam artık sığmıyorsa istemi göndermeden önce mevcut denemeyi iptal eder ve araç sonuçlarını kırpmak veya Compaction yapıp yeniden denemek için mevcut ön denetim kurtarma yolunu yeniden kullanır. Hem default hem de safeguard Compaction modlarıyla çalışır. Varsayılan: devre dışı.
  • postCompactionSections: Compaction sonrasında yeniden enjekte edilecek isteğe bağlı AGENTS.md H2/H3 bölüm adları. Varsayılan olarak ["Session Startup", "Red Lines"]; yeniden enjeksiyonu devre dışı bırakmak için [] ayarlayın. Ayarsız olduğunda veya açıkça bu varsayılan çifte ayarlandığında, eski Every Session/Safety başlıkları da geriye dönük yedek olarak kabul edilir.
  • model: yalnızca Compaction özetlemesi için isteğe bağlı provider/model-id geçersiz kılması. Ana oturumun bir modeli koruması, ancak Compaction özetlerinin başka bir modelde çalışması gerektiğinde bunu kullanın; ayarsız olduğunda Compaction oturumun birincil modelini kullanır.
  • maxActiveTranscriptBytes: etkin JSONL eşik değerini aştığında bir çalıştırmadan önce normal yerel Compaction tetikleyen isteğe bağlı bayt eşiği (number veya "20mb" gibi dizeler). Başarılı Compaction’ın daha küçük ardıl transkripte dönebilmesi için truncateAfterCompaction gerektirir. Ayarsız olduğunda veya 0 olduğunda devre dışıdır.
  • notifyUser: true olduğunda, Compaction başladığında ve tamamlandığında kullanıcıya kısa bildirimler gönderir (örneğin, “Compacting context…” ve “Compaction complete”). Compaction’ı sessiz tutmak için varsayılan olarak devre dışıdır.
  • memoryFlush: kalıcı bellekleri depolamak için otomatik Compaction öncesinde sessiz aracılı dönüş. Bu bakım dönüşü yerel bir modelde kalmalıysa model değerini ollama/qwen3:8b gibi tam bir sağlayıcı/model olarak ayarlayın; geçersiz kılma, etkin oturum yedek zincirini devralmaz. Ç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 için yerleşik Pi çalıştırıcısının dış çalıştırma döngüsü yeniden deneme yineleme sınırları. Bu ayarın şu anda ACP veya CLI çalışma zamanlarına değil, yalnızca yerleşik aracı çalışma zamanına uygulandığını unutmayın.
{
  agents: {
    defaults: {
      runRetries: {
        base: 24,
        perProfile: 8,
        min: 32,
        max: 160,
      },
    },
    list: [
      {
        id: "main",
        runRetries: { max: 50 }, // optional per-agent overrides
      },
    ],
  },
}
  • base: dış çalıştırma döngüsü için temel çalıştırma yeniden deneme yinelemesi sayısı. Varsayılan: 24.
  • perProfile: yedek profil adayı başına verilen ek çalıştırma yeniden deneme yinelemeleri. Varsayılan: 8.
  • min: çalıştırma yeniden deneme yinelemeleri için mutlak minimum sınır. Varsayılan: 32.
  • max: denetimsiz yürütmeyi önlemek için çalıştırma yeniden deneme yinelemeleri için mutlak maksimum sınır. Varsayılan: 160.

agents.defaults.contextPruning

LLM’ye göndermeden önce bellek içi bağlamdan eski araç sonuçlarını budar. Diskteki oturum geçmişini değiştirmez.
{
  agents: {
    defaults: {
      contextPruning: {
        mode: "cache-ttl", // off | cache-ttl
        ttl: "1h", // duration (ms/s/m/h), default unit: minutes
        keepLastAssistants: 3,
        softTrimRatio: 0.3,
        hardClearRatio: 0.5,
        minPrunableToolChars: 50000,
        softTrim: { maxChars: 4000, headChars: 1500, tailChars: 1500 },
        hardClear: { enabled: true, placeholder: "[Old tool result content cleared]" },
        tools: { deny: ["browser", "canvas"] },
      },
    },
  },
}
  • mode: "cache-ttl" budama geçişlerini etkinleştirir.
  • ttl, budamanın ne sıklıkla yeniden çalışabileceğini denetler (son cache dokunuşundan sonra).
  • Budama önce aşırı büyük araç sonuçlarını yumuşak biçimde kırpar, ardından gerekirse daha eski araç sonuçlarını tamamen temizler.
Yumuşak kırpma başlangıcı + sonu tutar ve ortaya ... ekler.Tam temizleme araç sonucunun tamamını yer tutucuyla değiştirir.Notlar:
  • Görüntü blokları hiçbir zaman kırpılmaz/temizlenmez.
  • Oranlar karakter tabanlıdır (yaklaşık), kesin token sayıları değildir.
  • keepLastAssistants değerinden daha az asistan mesajı varsa budama atlanır.
Davranış ayrıntıları için Oturum Budaması 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 },
      blockStreamingCoalesce: { idleMs: 1000 },
      humanDelay: { mode: "natural" }, // off | natural | custom (use minMs/maxMs)
    },
  },
}
  • Telegram dışı kanallar, blok yanıtları etkinleştirmek için açık *.blockStreaming: true gerektirir.
  • Kanal geçersiz kılmaları: channels.<channel>.blockStreamingCoalesce (ve hesap başına varyantlar). Signal/Slack/Discord/Google Chat varsayılanı minChars: 1500.
  • humanDelay: blok yanıtlar arasında rastgele duraklama. natural = 800-2500 ms. Ajan 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, bahsedilmeyen grup sohbetleri için message.
  • Oturum başına geçersiz kılmalar: session.typingMode, session.typingIntervalSeconds.
Yazıyor Göstergeleri bölümüne bakın.

agents.defaults.sandbox

Gömülü ajan için isteğe bağlı sandbox kullanımı. Tam kılavuz için Sandbox Kullanımı bölümüne bakın.
{
  agents: {
    defaults: {
      sandbox: {
        mode: "non-main", // off | non-main | all
        backend: "docker", // docker | ssh | openshell
        scope: "agent", // session | agent | shared
        workspaceAccess: "none", // none | 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,
          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",
          // SecretRefs / inline contents also supported:
          // 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"],
      },
    },
  },
}
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çiminde SSH hedefi
  • command: SSH istemci komutu (varsayılan: ssh)
  • workspaceRoot: kapsam başına çalışma alanları için kullanılan mutlak uzak kök
  • identityFile / certificateFile / knownHostsFile: OpenSSH’ye iletilen mevcut yerel dosyalar
  • identityData / certificateData / knownHostsData: OpenClaw’ın çalışma zamanında geçici dosyalara dönüştürdüğü satır içi içerikler veya SecretRef’ler
  • strictHostKeyChecking / updateHostKeys: OpenSSH ana makine anahtarı ilkesi ayarları
SSH kimlik doğrulama önceliği:
  • identityData, identityFile değerine göre önceliklidir
  • certificateData, certificateFile değerine göre önceliklidir
  • knownHostsData, knownHostsFile değerine göre önceliklidir
  • SecretRef destekli *Data değ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 sonrasında uzak çalışma alanını bir kez başlangıç verileriyle hazırlar
  • ardından uzak SSH çalışma alanını kanonik tutar
  • exec, dosya araçları ve medya yollarını SSH üzerinden yönlendirir
  • uzak değişiklikleri otomatik olarak ana makineye geri eşitlemez
  • sandbox tarayıcı konteynerlerini desteklemez
Çalışma alanı erişimi:
  • none: ~/.openclaw/sandboxes altında kapsam başına sandbox çalışma alanı
  • ro: /workspace konumunda sandbox çalışma alanı, /agent konumunda salt okunur bağlanmış ajan çalışma alanı
  • rw: /workspace konumunda okuma/yazma olarak bağlanmış ajan çalışma alanı
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 yok)
OpenShell Plugin yapılandırması:
{
  plugins: {
    entries: {
      openshell: {
        enabled: true,
        config: {
          mode: "mirror", // mirror | remote
          from: "openclaw",
          remoteWorkspaceDir: "/sandbox",
          remoteAgentWorkspaceDir: "/agent",
          gateway: "lab", // optional
          gatewayEndpoint: "https://lab.example", // optional
          policy: "strict", // optional OpenShell policy id
          providers: ["openai"], // optional
          autoProviders: true,
          timeoutSeconds: 120,
        },
      },
    },
  },
}
OpenShell modu:
  • mirror: exec öncesinde uzağı yerelden başlangıç verileriyle hazırlar, exec sonrasında geri eşitler; yerel çalışma alanı kanonik kalır
  • remote: sandbox oluşturulduğunda uzağı bir kez başlangıç verileriyle hazırlar, ardından uzak çalışma alanını kanonik tutar
remote modunda, OpenClaw dışında yapılan ana makine-yerel düzenlemeler başlangıç verisi adımından sonra otomatik olarak sandbox içine eşitlenmez. Aktarım, OpenShell sandbox içine SSH ile yapılır; ancak sandbox yaşam döngüsünün ve isteğe bağlı ayna eşitlemenin sahibi Plugin’dir.setupCommand konteyner oluşturulduktan sonra bir kez çalışır (sh -lc ile). Ağ çıkışı, yazılabilir kök ve root kullanıcı gerektirir.Konteynerler varsayılan olarak network: "none" kullanır — ajan dış erişime ihtiyaç duyuyorsa bunu "bridge" (veya özel bir bridge ağı) olarak ayarlayın. "host" engellenir. "container:<id>", açıkça sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true ayarlamadığınız sürece varsayılan olarak engellenir (acil durum seçeneği).Gelen ekler, etkin çalışma alanında media/inbound/* içine hazırlanır.docker.binds ek ana makine dizinlerini bağlar; global ve ajan başına bağlamalar birleştirilir.Sandbox içinde tarayıcı (sandbox.browser.enabled): bir konteyner içinde Chromium + CDP. noVNC URL’si sistem istemine enjekte edilir. openclaw.json içinde browser.enabled gerektirmez. noVNC gözlemci erişimi varsayılan olarak VNC kimlik doğrulaması kullanır ve OpenClaw, parolayı paylaşılan URL’de açığa çıkarmak yerine kısa ömürlü bir token URL’si üretir.
  • allowHostControl: false (varsayılan), sandbox oturumlarının ana makine tarayıcısını hedeflemesini engeller.
  • network varsayılan olarak openclaw-sandbox-browser değerini kullanır (ayrılmış bridge ağı). Yalnızca global bridge bağlantısını açıkça istediğinizde bridge olarak ayarlayın.
  • cdpSourceRange, isteğe bağlı olarak konteyner kenarında CDP girişini bir CIDR aralığıyla sınırlar (örneğin 172.21.0.1/32).
  • sandbox.browser.binds, ek ana makine dizinlerini yalnızca sandbox tarayıcı konteynerine bağlar. Ayarlandığında ([] dahil), tarayıcı konteyneri için docker.binds değerinin yerini alır.
  • Başlatma varsayılanları scripts/sandbox-browser-entrypoint.sh iç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-3d-apis
    • --disable-gpu
    • --disable-software-rasterizer
    • --disable-dev-shm-usage
    • --disable-background-networking
    • --disable-features=TranslateUI
    • --disable-breakpad
    • --disable-crash-reporter
    • --renderer-process-limit=2
    • --no-zygote
    • --metrics-recording-only
    • --disable-extensions (varsayılan olarak etkin)
    • --disable-3d-apis, --disable-software-rasterizer ve --disable-gpu varsayılan olarak etkindir ve WebGL/3D kullanımı gerektiriyorsa OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0 ile devre dışı bırakılabilir.
    • İş akışınız bunlara bağlıysa OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0 uzantıları yeniden etkinleştirir.
    • --renderer-process-limit=2, OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N> ile değiştirilebilir; Chromium’un varsayılan işlem sınırını kullanmak için 0 ayarlayın.
    • ayrıca noSandbox etkin olduğunda --no-sandbox.
    • Varsayılanlar konteyner imajı temelidir; konteyner varsayılanlarını değiştirmek için özel giriş noktası olan özel bir tarayıcı imajı kullanın.
Tarayıcı sandbox kullanımı ve sandbox.docker.binds yalnızca Docker’a özgüdür. İmajları derleyin (kaynak checkout’undan):
scripts/sandbox-setup.sh           # main sandbox image
scripts/sandbox-browser-setup.sh   # optional browser image
Kaynak checkout’u olmayan npm kurulumları için satır içi docker build komutları adına Sandbox Kullanımı § İmajlar ve kurulum bölümüne bakın.

agents.list (ajan başına geçersiz kılmalar)

agents.list[].tts kullanarak bir ajana kendi TTS sağlayıcısını, sesini, modelini, stilini veya otomatik TTS modunu verin. Ajan bloğu, genel messages.tts üzerine derin birleştirme uygular; böylece paylaşılan kimlik bilgileri tek bir yerde kalırken ayrı ajanlar yalnızca ihtiyaç duydukları ses veya sağlayıcı alanlarını geçersiz kılar. 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 için Metinden konuşmaya bölümüne bakın.
{
  agents: {
    list: [
      {
        id: "main",
        default: true,
        name: "Main Agent",
        workspace: "~/.openclaw/workspace",
        agentDir: "~/.openclaw/agents/main/agent",
        model: "anthropic/claude-opus-4-6", // or { primary, fallbacks }
        thinkingDefault: "high", // per-agent thinking level override
        reasoningDefault: "on", // per-agent reasoning visibility override
        fastModeDefault: false, // per-agent fast mode override
        params: { cacheRetention: "none" }, // overrides matching defaults.models params by key
        tts: {
          providers: {
            elevenlabs: { voiceId: "EXAVITQu4vr4xnSDxMaL" },
          },
        },
        skills: ["docs-search"], // replaces agents.defaults.skills when set
        identity: {
          name: "Samantha",
          theme: "helpful sloth",
          emoji: "🦥",
          avatar: "avatars/samantha.png",
        },
        groupChat: { mentionPatterns: ["@openclaw"] },
        sandbox: { mode: "off" },
        runtime: {
          type: "acp",
          acp: {
            agent: "codex",
            backend: "acpx",
            mode: "persistent",
            cwd: "/workspace/openclaw",
          },
        },
        subagents: { allowAgents: ["*"] },
        tools: {
          profile: "coding",
          allow: ["browser"],
          deny: ["canvas"],
          elevated: { enabled: true },
        },
      },
    ],
  },
}
  • id: kararlı ajan kimliği (zorunlu).
  • default: birden fazla ayarlanırsa ilk değer kazanır (uyarı günlüğe yazılır). Hiçbiri ayarlanmazsa listenin ilk girdisi varsayılandır.
  • model: dize biçimi, model fallback olmadan katı bir ajan başına birincil model ayarlar; { primary } nesne biçimi de fallbacks eklemediğiniz sürece katıdır. Bu ajanı fallback’e dahil etmek için { primary, fallbacks: [...] }, katı davranışı açık hale getirmek için { primary, fallbacks: [] } kullanın. Yalnızca primary geçersiz kılan Cron işleri, fallbacks: [] ayarlamadığınız sürece varsayılan fallback’leri devralmaya devam eder.
  • params: ajan başına akış parametreleri, agents.defaults.models içindeki seçili model girdisinin üzerine birleştirilir. Tüm model kataloğunu çoğaltmadan cacheRetention, temperature veya maxTokens gibi ajana özgü geçersiz kılmalar için bunu kullanın.
  • tts: isteğe bağlı ajan başına metinden konuşmaya geçersiz kılmaları. Blok, messages.tts üzerine derin birleştirme uygular; bu nedenle paylaşılan sağlayıcı kimlik bilgilerini ve fallback ilkesini messages.tts içinde tutun ve burada yalnızca sağlayıcı, ses, model, stil veya otomatik mod gibi kişiliğe özgü değerleri ayarlayın.
  • skills: isteğe bağlı ajan başına Skills izin listesi. Atlanırsa ajan, ayarlanmışsa agents.defaults.skills değerini devralır; açık bir liste, varsayılanlarla birleştirmek yerine onların yerini alır ve [] skills yok anlamına gelir.
  • thinkingDefault: isteğe bağlı ajan başına varsayılan düşünme seviyesi (off | minimal | low | medium | high | xhigh | adaptive | max). Mesaj başına veya oturum geçersiz kılması ayarlanmadığında bu ajan için agents.defaults.thinkingDefault değerini geçersiz kılar. Seçili sağlayıcı/model profili hangi değerlerin geçerli olduğunu kontrol eder; Google Gemini için adaptive, sağlayıcının sahip olduğu dinamik düşünmeyi korur (Gemini 3/3.1’de thinkingLevel atlanır, Gemini 2.5’te thinkingBudget: -1).
  • reasoningDefault: isteğe bağlı ajan başına varsayılan akıl yürütme görünürlüğü (on | off | stream). Mesaj başına veya oturum akıl yürütme geçersiz kılması ayarlanmadığında bu ajan için agents.defaults.reasoningDefault değerini geçersiz kılar.
  • fastModeDefault: hızlı mod için isteğe bağlı ajan başına varsayılan (true | false). Mesaj başına veya oturum hızlı mod geçersiz kılması ayarlanmadığında uygulanır.
  • models: tam provider/model kimlikleriyle anahtarlanmış isteğe bağlı ajan başına model kataloğu/çalışma zamanı geçersiz kılmaları. Ajan başına çalışma zamanı istisnaları için models["provider/model"].agentRuntime kullanın.
  • runtime: isteğe bağlı ajan başına çalışma zamanı tanımlayıcısı. Ajanın varsayılan olarak ACP harness oturumlarını kullanması gerektiğinde runtime.acp varsayılanlarıyla (agent, backend, mode, cwd) birlikte type: "acp" kullanın.
  • identity.avatar: çalışma alanına göreli yol, http(s) URL’si veya data: URI’si.
  • identity varsayılanları türetir: emoji üzerinden ackReaction, name/emoji üzerinden mentionPatterns.
  • subagents.allowAgents: açık sessions_spawn.agentId hedefleri için ajan kimlikleri izin listesi (["*"] = herhangi biri; varsayılan: yalnızca aynı ajan). Kendi kendine hedeflenen agentId çağrılarına izin verilmesi gerekiyorsa istekte bulunan kimliği ekleyin.
  • Sandbox devralma koruması: istekte bulunan oturum sandbox içindeyse sessions_spawn, sandbox olmadan çalışacak hedefleri reddeder.
  • subagents.requireAgentId: true olduğunda, agentId değerini atlayan sessions_spawn çağrılarını engeller (açık profil seçimini zorunlu kılar; varsayılan: false).

Çok ajanlı yönlendirme

Tek bir Gateway içinde birden çok yalıtılmış ajan çalıştırın. Bkz. Çok Ajanlı.
{
  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çin route (eksik tür varsayılan olarak route olur), kalıcı ACP konuşma bağlamaları için acp.
  • match.channel (zorunlu)
  • match.accountId (isteğe bağlı; * = herhangi bir hesap; atlanırsa = 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ızca type: "acp" için): { mode, label, cwd, backend }
Belirleyici eşleşme sırası:
  1. match.peer
  2. match.guildId
  3. match.teamId
  4. match.accountId (tam, peer/guild/team yok)
  5. match.accountId: "*" (kanal genelinde)
  6. Varsayılan ajan
Her kademede, eşleşen ilk bindings girdisi kazanır. type: "acp" girdileri için OpenClaw, tam konuşma kimliğine göre (match.channel + hesap + match.peer.id) çözümler ve yukarıdaki route bağlama kademe sırasını kullanmaz.

Ajan başına erişim profilleri

{
  agents: {
    list: [
      {
        id: "personal",
        workspace: "~/.openclaw/workspace-personal",
        sandbox: { mode: "off" },
      },
    ],
  },
}
{
  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"],
        },
      },
    ],
  },
}
{
  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 Çok Ajanlı 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 },
    },
    resetTriggers: ["/new", "/reset"],
    store: "~/.openclaw/agents/{agentId}/sessions/sessions.json",
    maintenance: {
      mode: "warn", // warn | enforce
      pruneAfter: "30d",
      maxEntries: 500,
      resetArchiveRetention: "30d", // duration or false
      maxDiskBytes: "500mb", // optional hard budget
      highWaterBytes: "400mb", // optional cleanup target
    },
    threadBindings: {
      enabled: true,
      idleHours: 24, // default inactivity auto-unfocus in hours (`0` disables)
      maxAgeHours: 0, // default hard max age in hours (`0` disables)
    },
    mainKey: "main", // legacy (runtime always uses "main")
    agentToAgent: { maxPingPongTurns: 5 },
    sendPolicy: {
      rules: [{ action: "deny", match: { channel: "discord", chatType: "group" } }],
      default: "allow",
    },
  },
}
  • scope: grup sohbeti bağlamları için temel oturum gruplama stratejisi.
    • per-sender (varsayılan): her gönderen, bir kanal bağlamı içinde yalıtılmış bir oturum alır.
    • 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: DM’lerin nasıl gruplandığı.
    • main: tüm DM’ler ana oturumu paylaşır.
    • per-peer: kanallar genelinde gönderen kimliğine göre yalıtır.
    • per-channel-peer: kanal + gönderen başına yalıtır (çok kullanıcılı gelen kutuları için önerilir).
    • per-account-channel-peer: hesap + kanal + gönderen başına yalıtır (çok hesaplı kullanım için önerilir).
  • identityLinks: kanallar arası oturum paylaşımı için kanonik kimlikleri sağlayıcı önekli eşlerle eşler. /dock_discord gibi dock komutları, etkin oturumun yanıt rotasını başka bir bağlı kanal eşine geçirmek için aynı eşlemeyi kullanır; bkz. Kanal kenetleme.
  • reset: birincil sıfırlama ilkesi. daily, atHour yerel saatinde sıfırlar; idle, idleMinutes sonrasında sıfırlar. İkisi de yapılandırıldığında, hangisinin süresi önce dolarsa o geçerli olur. Günlük sıfırlama güncelliği oturum satırının sessionStartedAt değerini kullanır; boşta sıfırlama güncelliği lastInteractionAt değerini kullanır. Heartbeat, Cron uyanmaları, exec bildirimleri ve Gateway defter tutma gibi arka plan/sistem olayı yazmaları updatedAt değ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). Eski dm, direct için takma ad olarak kabul edilir.
  • mainKey: eski alan. Çalışma zamanı, ana doğrudan sohbet kovası için her zaman "main" kullanır.
  • agentToAgent.maxPingPongTurns: ajandan ajana alışverişler sırasında ajanlar arasındaki en fazla yanıt-dönüş turu (tamsayı, aralık: 0-20, varsayılan: 5). 0, ping-pong zincirlemeyi devre dışı bırakır.
  • sendPolicy: channel, chatType (direct|group|channel, eski dm takma adıyla), keyPrefix veya rawKeyPrefix ile eşleştirir. İlk reddetme kazanır.
  • maintenance: oturum deposu temizliği + saklama denetimleri.
    • mode: warn yalnızca uyarılar yayınlar; enforce temizliği uygular.
    • pruneAfter: bayat girdiler için yaş eşiği (varsayılan 30d).
    • maxEntries: sessions.json içindeki en fazla girdi sayısı (varsayılan 500). Çalışma zamanı, üretim boyutlu sınırlar için küçük bir üst sınır tamponuyla toplu temizlik yazar; openclaw sessions cleanup --enforce sınırı hemen uygular.
    • rotateBytes: kullanımdan kaldırıldı ve yok sayılır; openclaw doctor --fix bunu eski yapılandırmalardan kaldırır.
    • resetArchiveRetention: *.reset.<timestamp> transkript arşivleri için saklama. Varsayılan olarak pruneAfter; devre dışı bırakmak için false olarak ayarlayın.
    • maxDiskBytes: isteğe bağlı oturumlar dizini disk bütçesi. warn modunda uyarıları günlüğe yazar; enforce modunda önce en eski yapıtları/oturumları kaldırır.
    • highWaterBytes: bütçe temizliğinden sonra isteğe bağlı hedef. Varsayılan olarak maxDiskBytes değerinin %80’i.
  • threadBindings: iş parçacığına bağlı oturum özellikleri için genel varsayılanlar.
    • enabled: ana varsayılan anahtar (sağlayıcılar geçersiz kılabilir; Discord channels.discord.threadBindings.enabled kullanır)
    • idleHours: saat cinsinden varsayılan hareketsizlikte otomatik odak kaldırma (0 devre dışı bırakır; sağlayıcılar geçersiz kılabilir)
    • maxAgeHours: saat cinsinden varsayılan katı en fazla yaş (0 devre dışı bırakır; sağlayıcılar geçersiz kılabilir)
    • spawnSessions: sessions_spawn ve ACP iş parçacığı spawn’larından iş parçacığına bağlı çalışma oturumları oluşturmak için varsayılan kapı. İş parçacığı bağlamaları etkinleştirildiğinde varsayılan olarak true; sağlayıcılar/hesaplar geçersiz kılabilir.
    • defaultSpawnContext: iş parçacığına bağlı spawn’lar için varsayılan yerel alt ajan bağlamı ("fork" veya "isolated"). Varsayılan olarak "fork".

Mesajlar

{
  messages: {
    responsePrefix: "🦞", // or "auto"
    ackReaction: "👀",
    ackReactionScope: "group-mentions", // group-mentions | group-all | direct | all
    removeAckAfterReply: false,
    queue: {
      mode: "steer", // steer | queue (legacy one-at-a-time) | followup | collect | steer-backlog | steer+backlog | interrupt
      debounceMs: 500,
      cap: 20,
      drop: "summarize", // old | new | summarize
      byChannel: {
        whatsapp: "steer",
        telegram: "steer",
      },
    },
    inbound: {
      debounceMs: 2000, // 0 disables
      byChannel: {
        whatsapp: 5000,
        slack: 1500,
      },
    },
  },
}

Yanıt öneki

Kanal/hesap başına geçersiz kılmalar: channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix. Çözümleme (en özgül olan kazanır): hesap → kanal → genel. "" devre dışı bırakır ve kademeyi durdurur. "auto", [{identity.name}] türetir. Şablon değişkenleri:
DeğişkenAçıklamaÖrnek
{model}Kısa model adıclaude-opus-4-6
{modelFull}Tam model tanımlayıcıanthropic/claude-opus-4-6
{provider}Sağlayıcı adıanthropic
{thinkingLevel}Geçerli düşünme düzeyihigh, 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.

Onay tepkisi

  • Varsayılan olarak etkin ajanın identity.emoji değeri, aksi halde "👀". 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 yedeği.
  • Kapsam: group-mentions (varsayılan), group-all, direct, all.
  • removeAckAfterReply: Slack, Discord, Telegram, WhatsApp ve iMessage gibi tepki destekleyen kanallarda yanıttan sonra onayı kaldırır.
  • messages.statusReactions.enabled: Slack, Discord ve Telegram üzerinde yaşam döngüsü durum tepkilerini etkinleştirir. Slack ve Discord üzerinde, ayarlanmamış olması onay tepkileri etkin olduğunda durum tepkilerini etkin tutar. Telegram üzerinde, yaşam döngüsü durum tepkilerini etkinleştirmek için bunu açıkça true olarak ayarlayın.

Gelen debounce

Aynı gönderenden gelen hızlı yalnızca metin mesajlarını tek bir ajan turunda toplar. Medya/ekler hemen boşaltılır. Denetim komutları debounce işleminden geçmez.

TTS (metinden konuşmaya)

{
  messages: {
    tts: {
      auto: "always", // off | always | inbound | tagged
      mode: "final", // final | all
      provider: "elevenlabs",
      summaryModel: "openai/gpt-4.1-mini",
      modelOverrides: { enabled: true },
      maxTextLength: 4000,
      timeoutMs: 30000,
      prefsPath: "~/.openclaw/settings/tts.json",
      providers: {
        elevenlabs: {
          apiKey: "elevenlabs_api_key",
          baseUrl: "https://api.elevenlabs.io",
          voiceId: "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: {
          voice: "en-US-AvaMultilingualNeural",
          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",
          voice: "alloy",
        },
      },
    },
  },
}
  • auto, varsayılan otomatik TTS modunu denetler: off, always, inbound veya tagged. /tts on|off yerel tercihleri geçersiz kılabilir ve /tts status etkin durumu gösterir.
  • summaryModel, otomatik özet için agents.defaults.model.primary değerini geçersiz kılar.
  • modelOverrides varsayılan olarak etkindir; modelOverrides.allowProvider varsayılan olarak false olur (isteğe bağlı etkinleştirme).
  • API anahtarları ELEVENLABS_API_KEY/XI_API_KEY ve OPENAI_API_KEY değerlerine geri döner.
  • Paketlenmiş konuşma sağlayıcıları Plugin’e aittir. plugins.allow ayarlanmışsa, kullanmak istediğiniz her TTS sağlayıcı Plugin’ini ekleyin; örneğin Edge TTS için microsoft. Eski edge sağlayıcı kimliği, microsoft için takma ad olarak kabul edilir.
  • providers.openai.baseUrl, OpenAI TTS uç noktasını geçersiz kılar. Çözümleme sırası yapılandırma, ardından OPENAI_TTS_BASE_URL, ardından https://api.openai.com/v1.
  • providers.openai.baseUrl OpenAI dışı bir uç noktaya işaret ettiğinde OpenClaw bunu OpenAI uyumlu bir TTS sunucusu olarak değerlendirir ve model/ses doğrulamasını gevşetir.

Talk

Talk modu için varsayılanlar (macOS/iOS/Android).
{
  talk: {
    provider: "elevenlabs",
    providers: {
      elevenlabs: {
        voiceId: "elevenlabs_voice_id",
        voiceAliases: {
          Clawd: "EXAVITQu4vr4xnSDxMaL",
          Roger: "CwhRBWXzGAHq8TQ4Fs17",
        },
        modelId: "eleven_v3",
        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",
          voice: "cedar",
        },
      },
      instructions: "Speak warmly and keep answers brief.",
      mode: "realtime",
      transport: "webrtc",
      brain: "agent-consult",
    },
  },
}
  • Birden fazla Talk sağlayıcısı yapılandırıldığında talk.provider, talk.providers içindeki bir anahtarla eşleşmelidir.
  • Eski düz Talk anahtarları (talk.voiceId, talk.voiceAliases, talk.modelId, talk.outputFormat, talk.apiKey) yalnızca uyumluluk içindir. Kalıcı yapılandırmayı talk.providers.<provider> içine yeniden yazmak için openclaw doctor --fix çalıştırın.
  • Ses kimlikleri ELEVENLABS_VOICE_ID veya SAG_VOICE_ID değerlerine geri döner.
  • providers.*.apiKey, düz metin dizelerini veya SecretRef nesnelerini kabul eder.
  • ELEVENLABS_API_KEY yedeği yalnızca hiçbir Talk API anahtarı yapılandırılmadığında uygulanır.
  • providers.*.voiceAliases, Talk yönergelerinin dostça adlar kullanmasını sağlar.
  • providers.mlx.modelId, macOS local MLX yardımcısı tarafından kullanılan Hugging Face deposunu seçer. Atlanırsa macOS mlx-community/Soprano-80M-bf16 kullanır.
  • macOS MLX oynatımı, mevcut olduğunda paketlenmiş openclaw-mlx-tts yardımcısı üzerinden veya PATH üzerindeki bir yürütülebilir dosya üzerinden çalışır; OPENCLAW_MLX_TTS_BIN geliştirme için yardımcı yolunu geçersiz kılar.
  • consultThinkingLevel, Control UI Talk gerçek zamanlı openclaw_agent_consult çağrılarının arkasındaki tam OpenClaw ajan çalıştırması için düşünme düzeyini denetler. Normal oturum/model davranışını korumak için ayarlamadan bırakın.
  • consultFastMode, oturumun normal hızlı mod ayarını değiştirmeden Control UI Talk gerçek zamanlı danışmaları için tek seferlik bir hızlı mod geçersiz kılması ayarlar.
  • speechLocale, iOS/macOS Talk konuşma tanıma tarafından kullanılan BCP 47 yerel ayar kimliğini belirler. Cihaz varsayılanını kullanmak için ayarlamadan bırakın.
  • silenceTimeoutMs, Talk modunun transkripti göndermeden önce kullanıcı sessizliğinden sonra ne kadar bekleyeceğini denetler. Ayarlanmamış olması platform varsayılan duraklama penceresini korur (macOS ve Android'de 700 ms, iOS'ta 900 ms).
  • realtime.instructions, sağlayıcıya yönelik sistem yönergelerini OpenClaw’ın yerleşik gerçek zamanlı istemine ekler; böylece ses stili, varsayılan openclaw_agent_consult rehberliği kaybedilmeden yapılandırılabilir.

İlgili