Ключі конфігурації з областю дії агента в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.* і talk.*. Для каналів, інструментів, Gateway runtime та інших
ключів верхнього рівня див. Довідник конфігурації.
Типові значення агента
agents.defaults.workspace
Типово: ~/.openclaw/workspace.
agents.defaults.repoRoot
Необов’язковий корінь репозиторію, що показується в рядку Runtime системного промпта. Якщо не задано, OpenClaw автоматично визначає його, піднімаючись угору від робочої області.
agents.defaults.skills
Необов’язковий типовий allowlist Skills для агентів, які не задають
agents.list[].skills.
- Пропустіть
agents.defaults.skills, щоб типово дозволити Skills без обмежень. - Пропустіть
agents.list[].skills, щоб успадкувати типові значення. - Установіть
agents.list[].skills: [], щоб не мати Skills. - Непорожній список
agents.list[].skillsє остаточним набором для цього агента; він не об’єднується з типовими значеннями.
agents.defaults.skipBootstrap
Вимикає автоматичне створення bootstrap-файлів робочої області (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md).
agents.defaults.skipOptionalBootstrapFiles
Пропускає створення вибраних необов’язкових файлів робочої області, водночас усе ще записуючи обов’язкові bootstrap-файли. Допустимі значення: SOUL.md, USER.md, HEARTBEAT.md і IDENTITY.md.
agents.defaults.contextInjection
Керує тим, коли bootstrap-файли робочої області вставляються в системний промпт. Типово: "always".
"continuation-skip": безпечні ходи продовження (після завершеної відповіді асистента) пропускають повторне вставлення bootstrap-файлів робочої області, зменшуючи розмір промпта. Запуски Heartbeat і повторні спроби після Compaction усе ще перебудовують контекст."never": вимикає вставлення bootstrap-файлів робочої області та контекстних файлів на кожному ході. Використовуйте це лише для агентів, які повністю керують власним життєвим циклом промпта (власні контекстні рушії, нативні runtime, що будують власний контекст, або спеціалізовані робочі процеси без bootstrap). Ходи Heartbeat і відновлення після Compaction також пропускають вставлення.
agents.defaults.bootstrapMaxChars
Максимальна кількість символів на bootstrap-файл робочої області перед обрізанням. Типово: 12000.
agents.defaults.bootstrapTotalMaxChars
Максимальна загальна кількість символів, вставлена з усіх bootstrap-файлів робочої області. Типово: 60000.
agents.defaults.bootstrapPromptTruncationWarning
Керує видимим для агента системним сповіщенням у промпті, коли bootstrap-контекст обрізано.
Типово: "once".
"off": ніколи не вставляти текст сповіщення про обрізання в системний промпт."once": вставити стислий текст сповіщення один раз для кожного унікального підпису обрізання (рекомендовано)."always": вставляти стислий текст сповіщення під час кожного запуску, коли є обрізання.
Карта відповідальності за бюджет контексту
OpenClaw має кілька високовитратних бюджетів промпта/контексту, і вони навмисно розділені за підсистемами, а не всі проходять через один загальний регулятор.agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: звичайне вставлення bootstrap-файлів робочої області.agents.defaults.startupContext.*: одноразовий вступ для модельного запуску після reset/startup, включно з нещодавніми щоденними файламиmemory/*.md. Команди чату без аргументів/newі/resetпідтверджуються без виклику моделі.skills.limits.*: компактний список Skills, вставлений у системний промпт.agents.defaults.contextLimits.*: обмежені runtime-уривки та вставлені блоки, що належать runtime.memory.qmd.limits.*: розмір фрагмента індексованого пошуку в пам’яті та вставлення.
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextLimits.*
agents.defaults.startupContext
Керує вступом першого ходу під час запуску, який вставляється в модельні запуски reset/startup.
Команди чату без аргументів /new і /reset підтверджують скидання без виклику
моделі, тому вони не завантажують цей вступ.
agents.defaults.contextLimits
Спільні типові значення для обмежених runtime-поверхонь контексту.
memoryGetMaxChars: типова межа уривкаmemory_getперед додаванням метаданих обрізання та сповіщення про продовження.memoryGetDefaultLines: типове вікно рядківmemory_get, колиlinesпропущено.toolResultMaxChars: межа результатів live-інструментів, що використовується для збережених результатів і відновлення після переповнення.postCompactionMaxChars: межа уривка AGENTS.md, що використовується під час вставлення оновлення після Compaction.
agents.list[].contextLimits
Перевизначення для окремого агента для спільних регуляторів contextLimits. Пропущені поля успадковуються
з agents.defaults.contextLimits.
skills.limits.maxSkillsPromptChars
Глобальна межа для компактного списку Skills, вставленого в системний промпт. Це
не впливає на читання файлів SKILL.md на вимогу.
agents.list[].skillsLimits.maxSkillsPromptChars
Перевизначення бюджету промпта Skills для окремого агента.
agents.defaults.imageMaxDimensionPx
Максимальний розмір у пікселях для найдовшого боку зображення в блоках зображень транскрипта/інструмента перед викликами провайдера.
Типово: 1200.
Нижчі значення зазвичай зменшують використання vision-токенів і розмір payload запиту для запусків із великою кількістю скриншотів.
Вищі значення зберігають більше візуальних деталей.
agents.defaults.userTimezone
Часовий пояс для контексту системного промпта (не для часових позначок повідомлень). Повертається до часового поясу хоста.
agents.defaults.timeFormat
Формат часу в системному промпті. Типово: auto (налаштування ОС).
agents.defaults.model
model: приймає або рядок ("provider/model"), або об’єкт ({ primary, fallbacks }).- Рядкова форма задає лише основну модель.
- Об’єктна форма задає основну модель і впорядковані моделі аварійного перемикання.
imageModel: приймає або рядок ("provider/model"), або об’єкт ({ primary, fallbacks }).- Використовується шляхом інструмента
imageяк його конфігурація моделі зору. - Також використовується як резервна маршрутизація, коли вибрана/типова модель не може приймати вхідні зображення.
- Надавайте перевагу явним посиланням
provider/model. Голі ідентифікатори приймаються для сумісності; якщо голий ідентифікатор унікально збігається з налаштованим записом, здатним працювати із зображеннями, уmodels.providers.*.models, OpenClaw доповнює його цим постачальником. Неоднозначні налаштовані збіги потребують явного префікса постачальника.
- Використовується шляхом інструмента
imageGenerationModel: приймає або рядок ("provider/model"), або об’єкт ({ primary, fallbacks }).- Використовується спільною можливістю генерації зображень і будь-якою майбутньою поверхнею інструмента/Plugin, що генерує зображення.
- Типові значення:
google/gemini-3.1-flash-image-previewдля нативної генерації зображень Gemini,fal/fal-ai/flux/devдля fal,openai/gpt-image-2для OpenAI Images абоopenai/gpt-image-1.5для виводу OpenAI PNG/WebP з прозорим тлом. - Якщо ви вибираєте постачальника/модель напряму, також налаштуйте відповідну автентифікацію постачальника (наприклад,
GEMINI_API_KEYабоGOOGLE_API_KEYдляgoogle/*,OPENAI_API_KEYабо OpenAI Codex OAuth дляopenai/gpt-image-2/openai/gpt-image-1.5,FAL_KEYдляfal/*). - Якщо опущено,
image_generateвсе ще може визначити типового постачальника з підтриманою автентифікацією. Спершу він пробує поточного типового постачальника, потім решту зареєстрованих постачальників генерації зображень у порядку ідентифікаторів постачальників.
musicGenerationModel: приймає або рядок ("provider/model"), або об’єкт ({ primary, fallbacks }).- Використовується спільною можливістю генерації музики та вбудованим інструментом
music_generate. - Типові значення:
google/lyria-3-clip-preview,google/lyria-3-pro-previewабоminimax/music-2.6. - Якщо опущено,
music_generateвсе ще може визначити типового постачальника з підтриманою автентифікацією. Спершу він пробує поточного типового постачальника, потім решту зареєстрованих постачальників генерації музики у порядку ідентифікаторів постачальників. - Якщо ви вибираєте постачальника/модель напряму, також налаштуйте відповідну автентифікацію/API-ключ постачальника.
- Використовується спільною можливістю генерації музики та вбудованим інструментом
videoGenerationModel: приймає або рядок ("provider/model"), або об’єкт ({ primary, fallbacks }).- Використовується спільною можливістю генерації відео та вбудованим інструментом
video_generate. - Типові значення:
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flashабоqwen/wan2.7-r2v. - Якщо опущено,
video_generateвсе ще може визначити типового постачальника з підтриманою автентифікацією. Спершу він пробує поточного типового постачальника, потім решту зареєстрованих постачальників генерації відео у порядку ідентифікаторів постачальників. - Якщо ви вибираєте постачальника/модель напряму, також налаштуйте відповідну автентифікацію/API-ключ постачальника.
- Вбудований постачальник генерації відео Qwen підтримує до 1 вихідного відео, 1 вхідного зображення, 4 вхідних відео, тривалість 10 секунд, а також параметри рівня постачальника
size,aspectRatio,resolution,audioіwatermark.
- Використовується спільною можливістю генерації відео та вбудованим інструментом
pdfModel: приймає або рядок ("provider/model"), або об’єкт ({ primary, fallbacks }).- Використовується інструментом
pdfдля маршрутизації моделі. - Якщо опущено, інструмент PDF повертається до
imageModel, а потім до розв’язаної моделі сеансу/типової моделі.
- Використовується інструментом
pdfMaxBytesMb: типове обмеження розміру PDF для інструментаpdf, колиmaxBytesMbне передано під час виклику.pdfMaxPages: типова максимальна кількість сторінок, які враховуються режимом резервного витягнення в інструментіpdf.verboseDefault: типовий рівень докладності для агентів. Значення:"off","on","full". Типово:"off".toolProgressDetail: режим деталізації для підсумків інструментів/verboseі рядків інструментів у чернетках прогресу. Значення:"explain"(типово, компактні людські мітки) або"raw"(додає необроблену команду/деталі, коли доступно).agents.list[].toolProgressDetailдля окремого агента перевизначає це типове значення.reasoningDefault: типова видимість міркувань для агентів. Значення:"off","on","stream".agents.list[].reasoningDefaultдля окремого агента перевизначає це типове значення. Налаштовані типові значення міркувань застосовуються лише для власників, авторизованих відправників або контекстів gateway адміністратора-оператора, коли не задано перевизначення міркувань для окремого повідомлення чи сеансу.elevatedDefault: типовий рівень підвищеного виводу для агентів. Значення:"off","on","ask","full". Типово:"on".model.primary: форматprovider/model(наприклад,openai/gpt-5.5для доступу через API-ключ OpenAI або Codex OAuth). Якщо ви опускаєте постачальника, OpenClaw спершу пробує alias, потім унікальний збіг налаштованого постачальника для цього точного ідентифікатора моделі, і лише після цього повертається до налаштованого типового постачальника (застаріла поведінка сумісності, тож надавайте перевагу явномуprovider/model). Якщо цей постачальник більше не надає налаштовану типову модель, OpenClaw повертається до першого налаштованого постачальника/моделі замість показу застарілого типового значення вилученого постачальника.models: налаштований каталог моделей і список дозволених для/model. Кожен запис може міститиalias(скорочення) іparams(специфічні для постачальника, наприкладtemperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold,chat_template_kwargs,extra_body/extraBody).- Використовуйте записи
provider/*, як-от"openai-codex/*": {}або"vllm/*": {}, щоб показати всі виявлені моделі для вибраних постачальників без ручного переліку кожного ідентифікатора моделі. - Безпечні редагування: використовуйте
openclaw config set agents.defaults.models '<json>' --strict-json --merge, щоб додати записи.config setвідхиляє заміни, які вилучили б наявні записи списку дозволених, якщо ви не передасте--replace. - Потоки налаштування/онбордингу в межах постачальника об’єднують вибрані моделі постачальника в цю мапу й зберігають не пов’язаних із ними вже налаштованих постачальників.
- Для прямих моделей OpenAI Responses серверна Compaction вмикається автоматично. Використовуйте
params.responsesServerCompaction: false, щоб припинити вставленняcontext_management, абоparams.responsesCompactThreshold, щоб перевизначити поріг. Див. серверну Compaction OpenAI.
- Використовуйте записи
params: глобальні типові параметри постачальника, застосовані до всіх моделей. Задаються вagents.defaults.params(наприклад,{ cacheRetention: "long" }).- Пріоритет злиття
params(конфігурація):agents.defaults.params(глобальна основа) перевизначаєтьсяagents.defaults.models["provider/model"].params(для окремої моделі), а потімagents.list[].params(для відповідного ідентифікатора агента) перевизначає за ключем. Докладніше див. кешування підказок. params.extra_body/params.extraBody: розширений наскрізний JSON, що зливається в тіла запитівapi: "openai-completions"для OpenAI-сумісних проксі. Якщо він конфліктує зі згенерованими ключами запиту, додаткове тіло має пріоритет; ненативні маршрути completions після цього все одно вилучаютьstore, специфічний лише для OpenAI.params.chat_template_kwargs: OpenAI-сумісні аргументи шаблону чату vLLM, що зливаються у верхній рівень тіл запитівapi: "openai-completions". Дляvllm/nemotron-3-*з вимкненим мисленням вбудований Plugin vLLM автоматично надсилаєenable_thinking: falseіforce_nonempty_content: true; явніchat_template_kwargsперевизначають згенеровані типові значення, аextra_body.chat_template_kwargsусе ще має остаточний пріоритет. Для елементів керування мисленням vLLM Qwen задайтеparams.qwenThinkingFormatяк"chat-template"або"top-level"у цьому записі моделі.compat.thinkingFormat: OpenAI-сумісний стиль корисного навантаження мислення. Використовуйте"qwen"для верхньорівневогоenable_thinkingу стилі Qwen або"qwen-chat-template"дляchat_template_kwargs.enable_thinkingна бекендах родини Qwen, які підтримують kwargs шаблону чату рівня запиту, наприклад vLLM. OpenClaw зіставляє вимкнене мислення зfalse, а ввімкнене мислення зtrue.compat.supportedReasoningEfforts: список OpenAI-сумісних зусиль міркування для окремої моделі. Додайте"xhigh"для власних кінцевих точок, які справді його приймають; після цього OpenClaw показує/think xhighу меню команд, рядках сеансів Gateway, перевірці патчів сеансу, перевірці CLI агента та перевірціllm-taskдля цього налаштованого постачальника/моделі. Використовуйтеcompat.reasoningEffortMap, коли бекенду потрібне специфічне для постачальника значення для канонічного рівня.params.preserveThinking: згода лише для Z.AI на збережене мислення. Коли ввімкнено і мислення активне, OpenClaw надсилаєthinking.clear_thinking: falseі відтворює попереднійreasoning_content; див. мислення Z.AI і збережене мислення.localService: необов’язковий менеджер процесів рівня постачальника для локальних/самостійно розміщених серверів моделей. Коли вибрана модель належить цьому постачальнику, OpenClaw перевіряєhealthUrl(абоbaseUrl + "/models"), запускаєcommandзargs, якщо кінцева точка недоступна, чекає доreadyTimeoutMs, а потім надсилає запит моделі.commandмає бути абсолютним шляхом.idleStopMs: 0залишає процес живим до виходу OpenClaw; додатне значення зупиняє процес, запущений OpenClaw, після такої кількості мілісекунд простою. Див. локальні сервіси моделей.- Політика виконання належить постачальникам або моделям, а не
agents.defaults. Використовуйтеmodels.providers.<provider>.agentRuntimeдля правил на рівні всього постачальника абоagents.defaults.models["provider/model"].agentRuntime/agents.list[].models["provider/model"].agentRuntimeдля правил, специфічних для моделі. Моделі агентів OpenAI в офіційному постачальнику OpenAI типово вибирають Codex. - Записувачі конфігурації, які змінюють ці поля (наприклад,
/models set,/models set-imageі команди додавання/вилучення резервних варіантів), зберігають канонічну об’єктну форму та за можливості зберігають наявні списки резервних варіантів. maxConcurrent: максимальна кількість паралельних запусків агентів між сеансами (кожен сеанс усе ще серіалізований). Типово: 4.
Політика виконання
id:"auto","pi", зареєстрований ідентифікатор обгортки Plugin або підтримуваний alias бекенду CLI. Вбудований Plugin Codex реєструєcodex; вбудований Plugin Anthropic надає CLI-бекендclaude-cli.id: "auto"дозволяє зареєстрованим обгорткам Plugin приймати підтримувані ходи та використовує PI, коли жодна обгортка не збігається. Явне виконання Plugin, як-отid: "codex", вимагає цю обгортку й завершується закритою помилкою, якщо вона недоступна або завершується збоєм.- Ключі виконання на рівні всього агента є застарілими.
agents.defaults.agentRuntime,agents.list[].agentRuntime, закріплення виконання сеансу таOPENCLAW_AGENT_RUNTIMEігноруються під час вибору виконання. Запустітьopenclaw doctor --fix, щоб вилучити застарілі значення. - Моделі агентів OpenAI типово використовують обгортку Codex;
agentRuntime.id: "codex"для постачальника/моделі лишається чинним, коли ви хочете вказати це явно. - Для розгортань Claude CLI надавайте перевагу
model: "anthropic/claude-opus-4-7"плюсagentRuntime.id: "claude-cli"у межах моделі. Застарілі посилання на моделіclaude-cli/claude-opus-4-7усе ще працюють для сумісності, але нова конфігурація має зберігати канонічний вибір постачальника/моделі та розміщувати бекенд виконання в політиці виконання постачальника/моделі. - Це керує лише виконанням текстових ходів агента. Генерація медіа, зір, PDF, музика, відео і TTS усе ще використовують свої налаштування постачальника/моделі.
agents.defaults.models):
| Псевдонім | Модель |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.5 |
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-preview |
--thinking off або самостійно не визначите agents.defaults.models["zai/<model>"].params.thinking.
Моделі Z.AI типово вмикають tool_stream для потокового передавання викликів інструментів. Установіть agents.defaults.models["zai/<model>"].params.tool_stream у false, щоб вимкнути це.
Моделі Anthropic Claude 4.6 типово використовують мислення adaptive, коли явний рівень мислення не задано.
agents.defaults.cliBackends
Необов’язкові CLI-бекенди для резервних запусків лише з текстом (без викликів інструментів). Корисно як запасний варіант, коли API-провайдери дають збій.
- CLI-бекенди орієнтовані на текст; інструменти завжди вимкнено.
- Сесії підтримуються, коли задано
sessionArg. - Наскрізне передавання зображень підтримується, коли
imageArgприймає шляхи до файлів. reseedFromRawTranscriptWhenUncompacted: trueдає бекенду змогу відновити безпечні недійсні сесії з обмеженого хвоста сирого транскрипту OpenClaw до появи першого підсумку Compaction. Зміни профілю автентифікації або епохи облікових даних усе одно ніколи не виконують raw-reseed.
agents.defaults.systemPromptOverride
Замінює весь системний промпт, зібраний OpenClaw, фіксованим рядком. Задається на рівні типових значень (agents.defaults.systemPromptOverride) або для окремого агента (agents.list[].systemPromptOverride). Значення окремого агента мають пріоритет; порожнє значення або значення лише з пробілів ігнорується. Корисно для контрольованих експериментів із промптами.
agents.defaults.promptOverlays
Незалежні від провайдера накладення промптів, що застосовуються за сімейством моделей. Ідентифікатори моделей сімейства GPT-5 отримують спільний контракт поведінки між провайдерами; personality керує лише шаром дружнього стилю взаємодії.
"friendly"(типово) і"on"вмикають шар дружнього стилю взаємодії."off"вимикає лише дружній шар; позначений контракт поведінки GPT-5 лишається ввімкненим.- Застаріле
plugins.entries.openai.config.personalityусе ще читається, коли це спільне налаштування не задано.
agents.defaults.heartbeat
Періодичні запуски Heartbeat.
every: рядок тривалості (ms/s/m/h). Типово:30m(автентифікація API-ключем) або1h(автентифікація OAuth). Установіть0m, щоб вимкнути.includeSystemPromptSection: коли false, вилучає розділ Heartbeat із системного промпту та пропускає ін’єкціюHEARTBEAT.mdу bootstrap-контекст. Типово:true.suppressToolErrorWarnings: коли true, пригнічує попереджувальні payload-и про помилки інструментів під час запусків Heartbeat.timeoutSeconds: максимальний час у секундах, дозволений для ходу агента Heartbeat перед його перериванням. Лишіть незаданим, щоб використовуватиagents.defaults.timeoutSeconds.directPolicy: політика доставлення напряму/DM.allow(типово) дозволяє доставлення до прямої цілі.blockпригнічує доставлення до прямої цілі та видаєreason=dm-blocked.lightContext: коли true, запуски Heartbeat використовують полегшений bootstrap-контекст і зберігають лишеHEARTBEAT.mdіз bootstrap-файлів робочого простору.isolatedSession: коли true, кожен Heartbeat запускається у свіжій сесії без попередньої історії розмови. Такий самий шаблон ізоляції, як у cronsessionTarget: "isolated". Зменшує витрати токенів на кожен Heartbeat приблизно зі 100K до 2-5K токенів.skipWhenBusy: коли true, запуски Heartbeat відкладаються на додаткових зайнятих lane-ах цього агента: його власній session-keyed роботі субагента або вкладених команд. Lane-и Cron завжди відкладають Heartbeat, навіть без цього прапорця.- Для окремого агента: задайте
agents.list[].heartbeat. Коли будь-який агент визначаєheartbeat, лише ці агенти запускають Heartbeat. - Heartbeat запускають повні ходи агента — коротші інтервали витрачають більше токенів.
agents.defaults.compaction
mode:defaultабоsafeguard(порційне узагальнення для довгих історій). Див. Compaction.provider: ідентифікатор зареєстрованого провайдера Plugin для Compaction. Коли задано, викликаєтьсяsummarize()провайдера замість вбудованого LLM-узагальнення. У разі збою повертається до вбудованого механізму. Задання провайдера примусово встановлюєmode: "safeguard". Див. Compaction.timeoutSeconds: максимальна кількість секунд, дозволена для однієї операції Compaction, перш ніж OpenClaw перерве її. Типово:900.keepRecentTokens: бюджет Pi для точки відсікання, щоб зберегти найновіший хвіст транскрипту дослівно. Ручний/compactвраховує це, коли значення явно задано; інакше ручна Compaction є жорсткою контрольною точкою.identifierPolicy:strict(типово),offабоcustom.strictдодає на початок вбудовані інструкції зі збереження непрозорих ідентифікаторів під час узагальнення Compaction.identifierInstructions: необов’язковий власний текст про збереження ідентифікаторів, що використовується, колиidentifierPolicy=custom.qualityGuard: перевірки з повтором у разі некоректно сформованого виводу для підсумків safeguard. Увімкнено типово в режимі safeguard; задайтеenabled: false, щоб пропустити аудит.midTurnPrecheck: необов’язкова перевірка тиску tool-loop Pi. Колиenabled: true, OpenClaw перевіряє тиск контексту після додавання результатів інструментів і перед наступним викликом моделі. Якщо контекст більше не вміщується, він перериває поточну спробу до надсилання промпту та повторно використовує наявний шлях відновлення precheck, щоб обрізати результати інструментів або виконати Compaction і повторити спробу. Працює з обома режимами Compaction:defaultіsafeguard. Типово: вимкнено.postCompactionSections: необов’язкові назви розділів H2/H3 з AGENTS.md для повторної ін’єкції після Compaction. Типово["Session Startup", "Red Lines"]; задайте[], щоб вимкнути повторну ін’єкцію. Коли не задано або явно задано цю типову пару, старіші заголовкиEvery Session/Safetyтакож приймаються як застарілий резервний варіант.model: необов’язкове перевизначенняprovider/model-idлише для узагальнення Compaction. Використовуйте це, коли основна сесія має лишатися на одній моделі, а підсумки Compaction мають виконуватися на іншій; коли не задано, Compaction використовує основну модель сесії.maxActiveTranscriptBytes: необов’язковий байтовий поріг (numberабо рядки на кшталт"20mb"), який запускає звичайну локальну Compaction перед запуском, коли активний JSONL перевищує поріг. ПотребуєtruncateAfterCompaction, щоб успішна Compaction могла перейти до меншого наступного транскрипту. Вимкнено, коли не задано або0.notifyUser: колиtrue, надсилає користувачу короткі сповіщення, коли Compaction починається і коли завершується (наприклад, “Compacting context…” і “Compaction complete”). Типово вимкнено, щоб Compaction лишалася тихою.memoryFlush: тихий агентний хід перед авто-Compaction для збереження довготривалих спогадів. Задайтеmodelяк точний провайдер/модель, наприкладollama/qwen3:8b, коли цей службовий хід має лишатися на локальній моделі; перевизначення не успадковує ланцюжок резервних варіантів активної сесії. Пропускається, коли робочий простір доступний лише для читання.
agents.defaults.runRetries
Зовнішні межі ітерацій повторів циклу запуску для вбудованого runner-а Pi, щоб запобігти нескінченним циклам виконання під час відновлення після збою. Зверніть увагу, що це налаштування наразі застосовується лише до вбудованого runtime агента, а не до runtime ACP або CLI.
base: базова кількість ітерацій повтору запуску для зовнішнього циклу запуску. Типово:24.perProfile: додаткові ітерації повтору запуску, що надаються для кожного кандидата резервного профілю. Типово:8.min: мінімальна абсолютна межа для ітерацій повтору запуску. Типово:32.max: максимальна абсолютна межа для ітерацій повтору запуску, щоб запобігти неконтрольованому виконанню. Типово:160.
agents.defaults.contextPruning
Вилучає старі результати інструментів із контексту в пам’яті перед надсиланням до LLM. Не змінює історію сесії на диску.
поведінка режиму cache-ttl
поведінка режиму cache-ttl
mode: "cache-ttl"вмикає проходи обрізання.ttlкерує тим, як часто обрізання може запускатися знову (після останнього звернення до кешу).- Обрізання спочатку м’яко скорочує завеликі результати інструментів, а потім, за потреби, повністю очищає старіші результати інструментів.
... посередині.Повне очищення замінює весь результат інструмента заповнювачем.Примітки:- Блоки зображень ніколи не скорочуються й не очищаються.
- Співвідношення базуються на символах (приблизно), а не на точній кількості токенів.
- Якщо існує менше ніж
keepLastAssistantsповідомлень асистента, обрізання пропускається.
Блокове потокове передавання
- Канали, крім Telegram, потребують явного
*.blockStreaming: true, щоб увімкнути блокові відповіді. - Перевизначення каналів:
channels.<channel>.blockStreamingCoalesce(і варіанти для окремих облікових записів). Signal/Slack/Discord/Google Chat за замовчуванням використовуютьminChars: 1500. humanDelay: випадкова пауза між блоковими відповідями.natural= 800–2500 мс. Перевизначення для окремого агента:agents.list[].humanDelay.
Індикатори набору
- Типові значення:
instantдля прямих чатів/згадок,messageдля групових чатів без згадок. - Перевизначення для окремої сесії:
session.typingMode,session.typingIntervalSeconds.
agents.defaults.sandbox
Необов’язкова ізоляція для вбудованого агента. Повний посібник див. у Ізоляція.
Подробиці ізоляції
Подробиці ізоляції
Бекенд:Режим OpenShell:
docker: локальне середовище виконання Docker (за замовчуванням)ssh: універсальне віддалене середовище виконання на основі SSHopenshell: середовище виконання OpenShell
backend: "openshell", специфічні для середовища виконання налаштування переходять до
plugins.entries.openshell.config.Конфігурація SSH-бекенду:target: ціль SSH у форматіuser@host[:port]command: команда клієнта SSH (за замовчуванням:ssh)workspaceRoot: абсолютний віддалений корінь, який використовується для робочих просторів за областямиidentityFile/certificateFile/knownHostsFile: наявні локальні файли, що передаються до OpenSSHidentityData/certificateData/knownHostsData: вбудований вміст або SecretRefs, які OpenClaw матеріалізує в тимчасові файли під час виконанняstrictHostKeyChecking/updateHostKeys: перемикачі політики ключів хоста OpenSSH
identityDataмає пріоритет надidentityFilecertificateDataмає пріоритет надcertificateFileknownHostsDataмає пріоритет надknownHostsFile- Значення
*Dataна основі SecretRef розв’язуються з активного знімка середовища виконання секретів перед запуском sandbox-сесії
- одноразово засіває віддалений робочий простір після створення або повторного створення
- потім зберігає віддалений робочий простір SSH канонічним
- маршрутизує
exec, файлові інструменти та медіашляхи через SSH - не синхронізує віддалені зміни назад на хост автоматично
- не підтримує sandbox-контейнери браузера
none: sandbox-робочий простір за областю в~/.openclaw/sandboxesro: sandbox-робочий простір у/workspace, робочий простір агента змонтовано лише для читання в/agentrw: робочий простір агента змонтовано для читання/запису в/workspace
session: контейнер + робочий простір для кожної сесіїagent: один контейнер + робочий простір на агента (за замовчуванням)shared: спільний контейнер і робочий простір (без ізоляції між сесіями)
mirror: засіяти віддалене середовище з локального перед exec, синхронізувати назад після exec; локальний робочий простір залишається канонічнимremote: засіяти віддалене середовище один раз під час створення sandbox, потім зберігати віддалений робочий простір канонічним
remote локальні на хості зміни, зроблені поза OpenClaw, не синхронізуються в sandbox автоматично після етапу засівання.
Транспортом є SSH до sandbox OpenShell, але plugin керує життєвим циклом sandbox і необов’язковою дзеркальною синхронізацією.setupCommand запускається один раз після створення контейнера (через sh -lc). Потребує мережевого виходу, кореневої файлової системи з правом запису та root-користувача.Контейнери за замовчуванням використовують network: "none" — установіть "bridge" (або власну bridge-мережу), якщо агенту потрібен вихідний доступ.
"host" заблоковано. "container:<id>" заблоковано за замовчуванням, якщо ви явно не встановите
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true (аварійний режим).Вхідні вкладення розміщуються в media/inbound/* в активному робочому просторі.docker.binds монтує додаткові каталоги хоста; глобальні прив’язки та прив’язки для окремих агентів об’єднуються.Ізольований браузер (sandbox.browser.enabled): Chromium + CDP у контейнері. URL noVNC вставляється в системний промпт. Не потребує browser.enabled в openclaw.json.
Доступ спостерігача noVNC за замовчуванням використовує автентифікацію VNC, а OpenClaw видає короткочасний URL із токеном (замість розкриття пароля у спільному URL).allowHostControl: false(за замовчуванням) блокує sandbox-сесії від націлювання на браузер хоста.networkза замовчуванням дорівнюєopenclaw-sandbox-browser(виділена bridge-мережа). Установлюйтеbridgeлише тоді, коли явно потрібне глобальне bridge-підключення.cdpSourceRangeнеобов’язково обмежує вхід CDP на межі контейнера до CIDR-діапазону (наприклад,172.21.0.1/32).sandbox.browser.bindsмонтує додаткові каталоги хоста лише в контейнер sandbox-браузера. Якщо задано (зокрема[]), воно замінюєdocker.bindsдля контейнера браузера.- Типові параметри запуску визначені в
scripts/sandbox-browser-entrypoint.shі налаштовані для контейнерних хостів:--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(увімкнено за замовчуванням)--disable-3d-apis,--disable-software-rasterizerі--disable-gpuувімкнені за замовчуванням і можуть бути вимкнені за допомогоюOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0, якщо цього потребує використання WebGL/3D.OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0повторно вмикає розширення, якщо ваш робочий процес залежить від них.--renderer-process-limit=2можна змінити за допомогоюOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>; установіть0, щоб використовувати типове обмеження процесів Chromium.- плюс
--no-sandbox, коли ввімкненоnoSandbox. - Типові значення є базовими для образу контейнера; використовуйте власний образ браузера з власною точкою входу, щоб змінити типові значення контейнера.
sandbox.docker.binds доступні лише для Docker.
Збірка образів (із checkout вихідного коду):
docker build.
agents.list (перевизначення для окремих агентів)
Використовуйте agents.list[].tts, щоб надати агенту власного провайдера TTS, голос, модель,
стиль або режим auto-TTS. Блок агента глибоко об’єднується поверх глобального
messages.tts, тож спільні облікові дані можуть залишатися в одному місці, а окремі
агенти перевизначають лише потрібні їм поля голосу або провайдера. Перевизначення активного агента
застосовується до автоматичних озвучених відповідей, /tts audio, /tts status і
інструмента агента tts. Див. Перетворення тексту на мовлення
для прикладів провайдерів і пріоритетності.
id: стабільний ідентифікатор агента (обов’язково).default: якщо задано кілька, перший має перевагу (записується попередження). Якщо не задано жодного, типовим буде перший запис у списку.model: рядкова форма задає сувору основну модель для агента без резервної моделі; об’єктна форма{ primary }також є суворою, якщо не додатиfallbacks. Використовуйте{ primary, fallbacks: [...] }, щоб увімкнути для цього агента резервну модель, або{ primary, fallbacks: [] }, щоб явно задати сувору поведінку. Завдання Cron, які перевизначають лишеprimary, усе одно успадковують типові резервні моделі, якщо не задатиfallbacks: [].params: потокові параметри для агента, об’єднані поверх вибраного запису моделі вagents.defaults.models. Використовуйте це для специфічних для агента перевизначень, як-отcacheRetention,temperatureабоmaxTokens, без дублювання всього каталогу моделей.tts: необов’язкові перевизначення перетворення тексту на мовлення для агента. Блок глибоко об’єднується поверхmessages.tts, тож тримайте спільні облікові дані провайдера й політику резервування вmessages.tts, а тут задавайте лише специфічні для персони значення, як-от провайдер, голос, модель, стиль або автоматичний режим.skills: необов’язковий allowlist Skills для агента. Якщо пропущено, агент успадковуєagents.defaults.skills, коли це задано; явний список замінює типові значення замість об’єднання, а[]означає відсутність Skills.thinkingDefault: необов’язковий типовий рівень мислення для агента (off | minimal | low | medium | high | xhigh | adaptive | max). Перевизначаєagents.defaults.thinkingDefaultдля цього агента, коли не задано перевизначення для повідомлення або сесії. Вибраний профіль провайдера/моделі визначає, які значення є припустимими; для Google Geminiadaptiveзберігає динамічне мислення, кероване провайдером (thinkingLevelпропущено на Gemini 3/3.1,thinkingBudget: -1на Gemini 2.5).reasoningDefault: необов’язкова типова видимість міркування для агента (on | off | stream). Перевизначаєagents.defaults.reasoningDefaultдля цього агента, коли не задано перевизначення міркування для повідомлення або сесії.fastModeDefault: необов’язкове типове значення fast mode для агента (true | false). Застосовується, коли не задано перевизначення fast-mode для повідомлення або сесії.models: необов’язкові перевизначення каталогу моделей/середовища виконання для агента, індексовані повними ідентифікаторамиprovider/model. Використовуйтеmodels["provider/model"].agentRuntimeдля винятків середовища виконання конкретного агента.runtime: необов’язковий дескриптор середовища виконання для агента. Використовуйтеtype: "acp"із типовими значеннямиruntime.acp(agent,backend,mode,cwd), коли агент має типово використовувати сесії ACP harness.identity.avatar: шлях відносно робочого простору,http(s)URL абоdata:URI.identityвиводить типові значення:ackReactionзemoji,mentionPatternsзname/emoji.subagents.allowAgents: allowlist ідентифікаторів агентів для явних цілейsessions_spawn.agentId(["*"]= будь-який; типово: лише той самий агент). Додайте ідентифікатор запитувача, коли самонацілені викликиagentIdмають бути дозволені.- Запобіжник успадкування пісочниці: якщо сесія запитувача працює в пісочниці,
sessions_spawnвідхиляє цілі, які запускалися б без пісочниці. subagents.requireAgentId: коли true, блокує викликиsessions_spawn, що пропускаютьagentId(примушує явний вибір профілю; типово: false).
Маршрутизація кількох агентів
Запускайте кілька ізольованих агентів в одному Gateway. Див. Кілька агентів.Поля відповідності прив’язки
type(необов’язково):routeдля звичайної маршрутизації (відсутній тип типово означає route),acpдля сталих прив’язок розмов ACP.match.channel(обов’язково)match.accountId(необов’язково;*= будь-який обліковий запис; пропущено = типовий обліковий запис)match.peer(необов’язково;{ kind: direct|group|channel, id })match.guildId/match.teamId(необов’язково; залежить від каналу)acp(необов’язково; лише дляtype: "acp"):{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(точний, без peer/guild/team)match.accountId: "*"(для всього каналу)- Типовий агент
bindings має перевагу.
Для записів type: "acp" OpenClaw розв’язує за точною ідентичністю розмови (match.channel + обліковий запис + match.peer.id) і не використовує наведений вище рівневий порядок прив’язок маршруту.
Профілі доступу для агента
Full access (no sandbox)
Full access (no sandbox)
Read-only tools + workspace
Read-only tools + workspace
No filesystem access (messaging only)
No filesystem access (messaging only)
Сесія
Session field details
Session field details
scope: базова стратегія групування сеансів для контекстів групового чату.per-sender(типово): кожен відправник отримує ізольований сеанс у межах контексту каналу.global: усі учасники в контексті каналу спільно використовують один сеанс (використовуйте лише коли потрібен спільний контекст).
dmScope: як групуються приватні повідомлення.main: усі приватні повідомлення використовують спільний основний сеанс.per-peer: ізоляція за ідентифікатором відправника між каналами.per-channel-peer: ізоляція за каналом + відправником (рекомендовано для багатокористувацьких скриньок).per-account-channel-peer: ізоляція за обліковим записом + каналом + відправником (рекомендовано для кількох облікових записів).
identityLinks: зіставляє канонічні ідентифікатори з peers із префіксом постачальника для спільного використання сеансів між каналами. Команди dock, такі як/dock_discord, використовують ту саму мапу, щоб перемкнути маршрут відповіді активного сеансу на інший пов’язаний peer каналу; див. Стикування каналів.reset: основна політика скидання.dailyскидає оatHourза локальним часом;idleскидає післяidleMinutes. Якщо налаштовано обидва варіанти, спрацьовує той, термін якого минає першим. Свіжість щоденного скидання використовуєsessionStartedAtрядка сеансу; свіжість скидання за простоєм використовуєlastInteractionAt. Фонові/системні записи подій, як-от heartbeat, пробудження cron, сповіщення exec і службові записи gateway, можуть оновлюватиupdatedAt, але не підтримують свіжість щоденних/idle-сеансів.resetByType: перевизначення за типом (direct,group,thread). Застарілийdmприймається як псевдонім дляdirect.mainKey: застаріле поле. Під час виконання завжди використовується"main"для основного кошика прямого чату.agentToAgent.maxPingPongTurns: максимальна кількість ходів-відповідей між агентами під час обмінів agent-to-agent (ціле число, діапазон:0-20, типово:5).0вимикає ping-pong-ланцюжок.sendPolicy: зіставлення заchannel,chatType(direct|group|channel, із застарілим псевдонімомdm),keyPrefixабоrawKeyPrefix. Перше правило deny перемагає.maintenance: очищення сховища сеансів + налаштування збереження.mode:warnлише видає попередження;enforceзастосовує очищення.pruneAfter: віковий поріг для застарілих записів (типово30d).maxEntries: максимальна кількість записів уsessions.json(типово500). Під час виконання пакетне очищення записується з невеликим high-water-буфером для production-обмежень;openclaw sessions cleanup --enforceзастосовує обмеження негайно.rotateBytes: застаріле й ігнорується;openclaw doctor --fixвидаляє його зі старіших конфігурацій.resetArchiveRetention: збереження архівів транскриптів*.reset.<timestamp>. Типово дорівнюєpruneAfter; встановітьfalse, щоб вимкнути.maxDiskBytes: необов’язковий дисковий бюджет каталогу сеансів. У режиміwarnвін записує попередження в журнал; у режиміenforceспочатку видаляє найстаріші артефакти/сеанси.highWaterBytes: необов’язкова ціль після очищення бюджету. Типово80%відmaxDiskBytes.
threadBindings: глобальні типові значення для функцій сеансів, прив’язаних до гілок.enabled: головний типовий перемикач (постачальники можуть перевизначати; Discord використовуєchannels.discord.threadBindings.enabled)idleHours: типове автоматичне зняття фокуса після неактивності в годинах (0вимикає; постачальники можуть перевизначати)maxAgeHours: типовий жорсткий максимальний вік у годинах (0вимикає; постачальники можуть перевизначати)spawnSessions: типовий gate для створення робочих сеансів, прив’язаних до гілок, ізsessions_spawnі ACP thread spawns. Типовоtrue, коли thread bindings увімкнені; постачальники/облікові записи можуть перевизначати.defaultSpawnContext: типовий native-контекст subagent для spawns, прив’язаних до гілок ("fork"або"isolated"). Типово"fork".
Повідомлення
Префікс відповіді
Перевизначення для каналу/облікового запису:channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Визначення (перемагає найточніше): обліковий запис → канал → глобальне. "" вимикає і зупиняє каскад. "auto" виводить [{identity.name}].
Змінні шаблону:
| Змінна | Опис | Приклад |
|---|---|---|
{model} | Коротка назва моделі | claude-opus-4-6 |
{modelFull} | Повний ідентифікатор моделі | anthropic/claude-opus-4-6 |
{provider} | Назва постачальника | anthropic |
{thinkingLevel} | Поточний рівень мислення | high, low, off |
{identity.name} | Ім’я ідентичності агента | (те саме, що "auto") |
{think} є псевдонімом для {thinkingLevel}.
Ack-реакція
- Типово використовує
identity.emojiактивного агента, інакше"👀". Установіть"", щоб вимкнути. - Перевизначення для каналів:
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - Порядок визначення: обліковий запис → канал →
messages.ackReaction→ fallback ідентичності. - Область:
group-mentions(типово),group-all,direct,all. removeAckAfterReply: видаляє ack після відповіді в каналах із підтримкою реакцій, таких як Slack, Discord, Telegram, WhatsApp та iMessage.messages.statusReactions.enabled: вмикає статусні реакції життєвого циклу в Slack, Discord і Telegram. У Slack і Discord unset залишає статусні реакції ввімкненими, коли ack-реакції активні. У Telegram явно встановітьtrue, щоб увімкнути статусні реакції життєвого циклу.
Debounce вхідних повідомлень
Об’єднує швидкі текстові повідомлення від одного відправника в один хід агента. Медіа/вкладення надсилаються негайно. Керівні команди обходять debouncing.TTS (перетворення тексту на мовлення)
autoкерує типовим автоматичним режимом TTS:off,always,inboundабоtagged./tts on|offможе перевизначати локальні налаштування, а/tts statusпоказує ефективний стан.summaryModelперевизначаєagents.defaults.model.primaryдля автоматичного зведення.modelOverridesувімкнено типово;modelOverrides.allowProviderтипово дорівнюєfalse(opt-in).- API-ключі fallback до
ELEVENLABS_API_KEY/XI_API_KEYіOPENAI_API_KEY. - Вбудовані постачальники мовлення належать Plugin. Якщо встановлено
plugins.allow, включіть кожен TTS provider Plugin, який хочете використовувати, наприкладmicrosoftдля Edge TTS. Застарілий ідентифікатор постачальникаedgeприймається як псевдонім дляmicrosoft. providers.openai.baseUrlперевизначає endpoint OpenAI TTS. Порядок визначення: конфігурація, потімOPENAI_TTS_BASE_URL, потімhttps://api.openai.com/v1.- Коли
providers.openai.baseUrlвказує на endpoint, що не належить OpenAI, OpenClaw трактує його як TTS-сервер, сумісний з OpenAI, і послаблює перевірку моделі/голосу.
Talk
Типові значення для режиму Talk (macOS/iOS/Android).talk.providerмає відповідати ключу вtalk.providers, коли налаштовано кілька постачальників Talk.- Застарілі плоскі ключі Talk (
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey) залишені лише для сумісності. Запустітьopenclaw doctor --fix, щоб переписати збережену конфігурацію вtalk.providers.<provider>. - Voice IDs fallback до
ELEVENLABS_VOICE_IDабоSAG_VOICE_ID. providers.*.apiKeyприймає plaintext-рядки або об’єкти SecretRef.- Fallback
ELEVENLABS_API_KEYзастосовується лише коли не налаштовано API-ключ Talk. providers.*.voiceAliasesдає змогу директивам Talk використовувати зручні назви.providers.mlx.modelIdвибирає репозиторій Hugging Face, який використовує локальний macOS MLX helper. Якщо пропущено, macOS використовуєmlx-community/Soprano-80M-bf16.- Відтворення macOS MLX проходить через вбудований helper
openclaw-mlx-tts, коли він доступний, або через виконуваний файл уPATH;OPENCLAW_MLX_TTS_BINперевизначає шлях helper для розробки. consultThinkingLevelкерує рівнем мислення для повного запуску агента OpenClaw за викликами Control UI Talk realtimeopenclaw_agent_consult. Залиште unset, щоб зберегти звичайну поведінку сеансу/моделі.consultFastModeвстановлює одноразове перевизначення fast-mode для realtime-консультацій Control UI Talk без зміни звичайного налаштування fast-mode сеансу.speechLocaleзадає ідентифікатор locale BCP 47, який використовується розпізнаванням мовлення iOS/macOS Talk. Залиште unset, щоб використовувати типове значення пристрою.silenceTimeoutMsкерує тим, як довго режим Talk чекає після тиші користувача, перш ніж надіслати transcript. Unset зберігає типове вікно паузи платформи (700 ms on macOS and Android, 900 ms on iOS).realtime.instructionsдодає системні інструкції для постачальника до вбудованого realtime prompt OpenClaw, щоб стиль голосу можна було налаштувати без втрати типових настановopenclaw_agent_consult.
Пов’язане
- Довідник конфігурації — усі інші ключі конфігурації
- Конфігурація — поширені завдання та швидке налаштування
- Приклади конфігурації