---
read_when:
    - Редагування тексту системного промпта, списку інструментів або розділів часу/Heartbeat
    - Зміна поведінки початкового налаштування робочого простору або ін’єкції Skills
summary: Що містить системний промпт OpenClaw і як його збирають
title: Системний промпт
x-i18n:
    generated_at: "2026-06-27T17:29:30Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 31321b4df7494317b73c2a5609b1dc275463168ed5fe20ecb173e9bec76717cc
    source_path: concepts/system-prompt.md
    workflow: 16
---

OpenClaw створює власний системний prompt для кожного запуску агента. Prompt **належить OpenClaw** і не використовує runtime prompt за замовчуванням.

Prompt збирається OpenClaw та інʼєктується в кожен запуск агента.

Збирання prompt має три шари:

- `buildAgentSystemPrompt` рендерить prompt з явних вхідних даних. Він має
  залишатися чистим рендерером і не повинен читати глобальну конфігурацію напряму.
- `resolveAgentSystemPromptConfig` визначає підкріплені конфігурацією регулятори prompt, як-от
  відображення власника, підказки TTS, псевдоніми моделей, режим цитування памʼяті та режим
  делегування субагентам для конкретного агента.
- Runtime-адаптери (вбудовані, CLI, попередні перегляди команд/експорту, compaction) збирають
  поточні факти, як-от інструменти, стан sandbox, можливості каналу, файли контексту
  та prompt-внески провайдера, а потім викликають налаштований фасад prompt.

Це утримує експортовані/налагоджувальні поверхні prompt узгодженими з живими запусками, не
перетворюючи кожну runtime-специфічну деталь на один монолітний builder.

Plugin провайдерів можуть додавати cache-aware prompt-настанови без заміни
повного prompt, що належить OpenClaw. Runtime провайдера може:

- замінити невеликий набір іменованих основних розділів (`interaction_style`,
  `tool_call_style`, `execution_bias`)
- інʼєктувати **стабільний префікс** над межею prompt-кешу
- інʼєктувати **динамічний суфікс** під межею prompt-кешу

Використовуйте внески, що належать провайдеру, для налаштування під конкретні сімейства моделей. Залишайте застарілу
мутацію prompt `before_prompt_build` для сумісності або справді глобальних змін prompt,
а не для звичайної поведінки провайдера.

Оверлей сімейства OpenAI GPT-5 зберігає основне правило виконання малим і додає
модель-специфічні настанови для закріплення persona, стислого виводу, дисципліни інструментів,
паралельного пошуку, покриття результатів, перевірки, відсутнього контексту та
гігієни термінальних інструментів.

## Структура

Prompt навмисно компактний і використовує фіксовані розділи:

- **Інструменти**: нагадування про структурований інструмент як джерело істини плюс runtime-настанови щодо використання інструментів.
- **Упередження виконання**: компактні настанови для доведення роботи до кінця: діяти в межах поточного turn щодо
  actionable запитів, продовжувати до завершення або блокування, відновлюватися після слабких результатів інструментів,
  перевіряти змінний стан наживо та верифікувати перед фіналізацією.
- **Безпека**: коротке нагадування про guardrail, щоб уникати поведінки пошуку влади або обходу нагляду.
- **Skills** (коли доступні): пояснює моделі, як завантажувати інструкції Skills на вимогу.
- **Керування OpenClaw**: пояснює моделі, що слід віддавати перевагу інструменту `gateway` для
  роботи з конфігурацією/перезапуском і не вигадувати CLI-команди.
- **Самооновлення OpenClaw**: як безпечно перевіряти конфігурацію за допомогою
  `config.schema.lookup`, змінювати конфігурацію через `config.patch`, замінювати повну
  конфігурацію через `config.apply` і запускати `update.run` лише за явним запитом користувача.
  Інструмент `gateway`, видимий агенту, також відмовляється переписувати
  `tools.exec.ask` / `tools.exec.security`, включно із застарілими псевдонімами `tools.bash.*`,
  які нормалізуються до цих захищених exec-шляхів.
- **Робочий простір**: робочий каталог (`agents.defaults.workspace`).
- **Документація**: локальний шлях до docs/source OpenClaw і коли їх читати.
- **Файли робочого простору (інʼєктовані)**: вказує, що bootstrap-файли включено нижче.
- **Sandbox** (коли увімкнено): вказує на sandboxed runtime, sandbox-шляхи та чи доступний підвищений exec.
- **Поточна дата й час**: лише часовий пояс (стабільний для кешу; живий годинник надходить із `session_status`).
- **Директиви виводу Assistant**: компактний синтаксис вкладень, голосових нотаток і тегів відповіді.
- **Сигнали Heartbeat**: prompt Heartbeat і поведінка ack, коли Heartbeat увімкнено для агента за замовчуванням.
- **Середовище виконання**: хост, ОС, node, модель, корінь репозиторію (коли виявлено), рівень мислення (один рядок).
- **Міркування**: поточний рівень видимості + підказка перемикача /reasoning.

OpenClaw тримає великий стабільний вміст, зокрема **Контекст проєкту**, над
внутрішньою межею prompt-кешу. Мінливі розділи каналу/сесії, як-от
настанови для вбудовування Control UI, **Повідомлення**, **Голос**, **Контекст групового чату**,
**Реакції**, **Сигнали Heartbeat** і **Середовище виконання**, додаються під цією межею,
щоб локальні бекенди з prefix cache могли повторно використовувати стабільний префікс робочого простору
між turn каналу. Описи інструментів так само мають уникати вбудовування поточних
назв каналів, коли прийнята схема вже несе цю runtime-деталь.

Розділ інструментів також містить runtime-настанови для довготривалої роботи:

- використовуйте cron для майбутнього follow-up (`check back later`, нагадування, регулярна робота)
  замість циклів сну `exec`, трюків із затримкою `yieldMs` або повторного polling `process`
- використовуйте `exec` / `process` лише для команд, які запускаються зараз і продовжують працювати
  у фоні
- коли увімкнено автоматичне wake після завершення, запустіть команду один раз і покладайтеся на
  push-based wake-шлях, коли вона виводить дані або завершується з помилкою
- використовуйте `process` для логів, статусу, вводу або втручання, коли потрібно
  перевірити команду, що виконується
- якщо задача більша, віддавайте перевагу `sessions_spawn`; завершення субагента є
  push-based і автоматично оголошує результат запитувачу
- не опитуйте `subagents list` / `sessions_list` у циклі лише для очікування
  завершення

`agents.defaults.subagents.delegationMode` може посилити ці настанови. Режим
за замовчуванням `suggest` зберігає базовий натяк. `prefer` додає окремий
розділ **Делегування субагенту**, який каже головному агенту діяти як responsive
координатор і спрямовувати все складніше за пряму відповідь через
`sessions_spawn`. Це лише prompt; політика інструментів усе ще контролює, чи
доступний `sessions_spawn`.

Коли експериментальний інструмент `update_plan` увімкнено, розділ інструментів також каже
моделі використовувати його лише для нетривіальної багатоетапної роботи, тримати рівно один
крок `in_progress` і уникати повторення всього плану після кожного оновлення.

Безпекові guardrails у системному prompt мають дорадчий характер. Вони спрямовують поведінку моделі, але не забезпечують примусового виконання політики. Для жорсткого enforcement використовуйте політику інструментів, exec approvals, sandboxing і allowlists каналів; оператори можуть вимкнути їх за задумом.

На каналах із native approval cards/buttons runtime prompt тепер каже
агенту спершу покладатися на цей native approval UI. Він має включати ручну
команду `/approve` лише тоді, коли результат інструмента каже, що chat approvals недоступні або
ручне approval є єдиним шляхом.

## Режими prompt

OpenClaw може рендерити менші системні prompts для субагентів. Runtime задає
`promptMode` для кожного запуску (це не конфігурація, видима користувачу):

- `full` (за замовчуванням): включає всі розділи вище.
- `minimal`: використовується для субагентів; пропускає **Memory Recall**, **Самооновлення OpenClaw**,
  **Псевдоніми моделей**, **Ідентичність користувача**, **Директиви виводу Assistant**,
  **Повідомлення**, **Тихі відповіді** та **Сигнали Heartbeat**. Інструменти, **Безпека**,
  **Skills**, коли надані, Робочий простір, Sandbox, Поточна дата й час (коли
  відомо), Середовище виконання та інʼєктований контекст залишаються доступними.
- `none`: повертає лише базовий рядок ідентичності.

Коли `promptMode=minimal`, додаткові інʼєктовані prompts позначаються як **Контекст субагента**
замість **Контекст групового чату**.

Для запусків автовідповідей каналу OpenClaw пропускає загальний розділ **Тихі відповіді**,
коли прямий, груповий або message-tool-only контекст володіє контрактом видимої відповіді.
Лише старий автоматичний режим group/channel має показувати `NO_REPLY`; прямі
чати та message-tool-only відповіді не отримують настанов щодо silent token.

## Prompt snapshots

OpenClaw зберігає закомічені prompt snapshots для щасливого шляху runtime Codex у
`test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/`. Вони рендерять
вибрані параметри thread/turn app-server плюс реконструйований model-bound prompt
stack шарів для прямих Telegram, групових Discord і Heartbeat turn. Цей stack
містить зафіксований prompt fixture моделі Codex `gpt-5.5`, згенерований із форми
каталогу/кешу моделей Codex, developer text дозволів happy-path Codex,
developer instructions OpenClaw, turn-scoped інструкції collaboration-mode,
коли OpenClaw їх надає, ввід user turn і посилання на динамічні tool specs.

Оновіть зафіксований prompt fixture моделі Codex за допомогою
`pnpm prompt:snapshots:sync-codex-model`. За замовчуванням скрипт шукає
runtime-кеш Codex у `$CODEX_HOME/models_cache.json`, потім у
`~/.codex/models_cache.json`, і лише після цього повертається до maintainer Codex
checkout convention у `~/code/codex/codex-rs/models-manager/models.json`. Якщо
жодного з цих джерел не існує, команда завершується без зміни закоміченого
fixture. Передайте `--catalog <path>`, щоб оновити з конкретного файлу `models_cache.json`
або `models.json`.

Ці snapshots усе ще не є byte-for-byte сирим захопленням запиту OpenAI. Codex
може додавати runtime-owned контекст робочого простору, як-от `AGENTS.md`, контекст
середовища, memories, інструкції app/plugin і вбудовані Default
інструкції collaboration-mode всередині runtime Codex після того, як OpenClaw надішле
параметри thread і turn.

Перегенеруйте їх за допомогою `pnpm prompt:snapshots:gen` і перевірте drift через
`pnpm prompt:snapshots:check`. CI запускає перевірку drift у додатковому
boundary shard, щоб зміни prompt і оновлення snapshot залишалися прикріпленими до одного
PR.

## Bootstrap-інʼєкція робочого простору

Bootstrap-файли визначаються з активного робочого простору, а потім маршрутизуються до
поверхні prompt, що відповідає їхньому lifetime:

- `AGENTS.md`
- `SOUL.md`
- `TOOLS.md`
- `IDENTITY.md`
- `USER.md`
- `HEARTBEAT.md`
- `BOOTSTRAP.md` (лише в абсолютно нових робочих просторах)
- `MEMORY.md`, коли присутній

У native Codex harness OpenClaw уникає повторення стабільних файлів робочого простору
в кожному user turn. Codex завантажує `AGENTS.md` через власне
виявлення project-doc. `SOUL.md`, `IDENTITY.md`, `TOOLS.md` і `USER.md` пересилаються як
developer instructions Codex. Компактний список Skills OpenClaw також пересилається
як turn-scoped collaboration developer instructions. Вміст `HEARTBEAT.md`
не інʼєктується; Heartbeat turns отримують нотатку collaboration-mode, що вказує на файл,
коли він існує та не порожній. Вміст `MEMORY.md` з налаштованого agent
workspace не вставляється в кожен native Codex turn; коли memory tools
доступні для цього робочого простору, Codex turns отримують невелику workspace-memory нотатку в
turn-scoped collaboration developer instructions і мають використовувати `memory_search`
або `memory_get`, коли durable memory доречна. Якщо інструменти вимкнені, memory
search недоступний або активний робочий простір відрізняється від agent memory
workspace, `MEMORY.md` повертається до звичайного bounded turn-context шляху. Активний
вміст `BOOTSTRAP.md` наразі зберігає звичайну роль turn-context.

У non-Codex harnesses bootstrap-файли й далі компонуються в
prompt OpenClaw згідно з наявними gates. `HEARTBEAT.md` пропускається у
звичайних запусках, коли Heartbeat вимкнено для агента за замовчуванням або
`agents.defaults.heartbeat.includeSystemPromptSection` дорівнює false. Тримайте інʼєктовані
файли стислими, особливо non-Codex `MEMORY.md`. `MEMORY.md` призначений залишатися
кураторським довгостроковим резюме; докладні щоденні нотатки належать до `memory/*.md`, де
`memory_search` і `memory_get` можуть отримувати їх на вимогу. Завеликі
non-Codex файли `MEMORY.md` збільшують використання prompt і можуть бути частково інʼєктовані
через наведені нижче ліміти bootstrap-файлів.

<Note>
Щоденні файли `memory/*.md` **не** є частиною звичайного bootstrap Project Context. У звичайних turn до них звертаються на вимогу через інструменти `memory_search` і `memory_get`, тому вони не зараховуються до context window, якщо модель явно їх не читає. Bare `/new` і `/reset` turns є винятком: runtime може додати recent daily memory на початок як одноразовий startup-context block для цього першого turn.
</Note>

Великі файли обрізаються з маркером. Максимальний розмір для кожного файлу контролюється
`agents.defaults.bootstrapMaxChars` (типово: 20000). Загальний інжектований bootstrap-
вміст у всіх файлах обмежено `agents.defaults.bootstrapTotalMaxChars`
(типово: 60000). Відсутні файли інжектують короткий маркер відсутнього файлу. Коли
відбувається обрізання, OpenClaw може інжектувати стисле попередження в системний prompt;
керуйте цим за допомогою `agents.defaults.bootstrapPromptTruncationWarning` (`off`, `once`, `always`;
типово: `always`). Докладні сирі/інжектовані лічильники залишаються в діагностиці, як-от
`/context`, `/status`, doctor і журнали.

Для файлів пам’яті обрізання не є втратою даних: файл залишається цілим на диску.
У нативному Codex `MEMORY.md` читається на вимогу через інструменти пам’яті, коли
вони доступні, з обмеженим fallback prompt, коли інструменти не можуть виконуватися. В інших
harnesses модель бачить лише скорочену інжектовану копію, доки не прочитає або
не знайде пам’ять напряму. Якщо `MEMORY.md` там неодноразово обрізається, стисніть
його в коротший довготривалий підсумок і перенесіть докладну історію в `memory/*.md`,
або свідомо збільште bootstrap-ліміти.

Сесії субагентів інжектують лише `AGENTS.md` і `TOOLS.md` (інші bootstrap-файли
відфільтровуються, щоб зберегти контекст субагента малим).

Внутрішні hooks можуть перехоплювати цей крок через `agent:bootstrap`, щоб змінити або замінити
інжектовані bootstrap-файли (наприклад, замінити `SOUL.md` на альтернативну persona).

Якщо ви хочете зробити звучання агента менш шаблонним, почніть із
[Посібника з особистості SOUL.md](/uk/concepts/soul).

Щоб перевірити, скільки додає кожен інжектований файл (сире проти інжектованого, обрізання, плюс накладні витрати схеми інструментів), використовуйте `/context list` або `/context detail`. Див. [Контекст](/uk/concepts/context).

## Обробка часу

Системний prompt містить окремий розділ **Поточна дата й час**, коли
відомий часовий пояс користувача. Щоб prompt cache залишався стабільним, тепер він містить
лише **часовий пояс** (без динамічного годинника або формату часу).

Використовуйте `session_status`, коли агенту потрібен поточний час; картка стану
містить рядок із часовою позначкою. Той самий інструмент може додатково встановити перевизначення моделі
для окремої сесії (`model=default` скидає його).

Налаштовується за допомогою:

- `agents.defaults.userTimezone`
- `agents.defaults.timeFormat` (`auto` | `12` | `24`)

Повні деталі поведінки див. у [Дата й час](/uk/date-time).

## Skills

Коли існують придатні Skills, OpenClaw інжектує компактний **список доступних Skills**
(`formatSkillsForPrompt`), який містить **шлях до файлу** і похідний від вмісту
маркер `<version>` для кожного skill. Prompt вказує моделі використати `read`,
щоб завантажити SKILL.md у вказаному розташуванні (workspace, managed або bundled),
і перечитати skill, коли його `<version>` відрізняється від попереднього turn. Якщо
немає придатних Skills, розділ Skills пропускається.

Нативні turn Codex отримують цей список як обмежені поточним turn collaboration developer
instructions замість користувацького вводу для кожного turn, крім легких cron turns, які
зберігають точний запланований prompt. Інші harnesses зберігають звичайний розділ prompt.

Розташування може вказувати на вкладений skill, наприклад
`skills/personal/foo/SKILL.md`. Вкладеність є лише організаційною; prompt усе одно
використовує пласку назву skill із frontmatter `SKILL.md`.

Придатність охоплює gates метаданих skill, перевірки runtime-середовища/конфігурації
і ефективний allowlist Skills агента, коли налаштовано `agents.defaults.skills` або
`agents.list[].skills`.

Skills, вбудовані в Plugin, придатні лише тоді, коли їхній власний plugin увімкнено.
Це дає змогу tool plugins надавати глибші операційні посібники, не вбудовуючи всі
ці настанови безпосередньо в кожен опис інструмента.

```
<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
    <version>sha256:...</version>
  </skill>
</available_skills>
```

Це зберігає базовий prompt малим і водночас дає змогу цільово використовувати Skills.

Бюджет списку Skills належить підсистемі Skills:

- Глобальне значення типово: `skills.limits.maxSkillsPromptChars`
- Перевизначення для окремого агента: `agents.list[].skillsLimits.maxSkillsPromptChars`

Загальні обмежені runtime-уривки використовують іншу поверхню:

- `agents.defaults.contextLimits.*`
- `agents.list[].contextLimits.*`

Такий поділ відокремлює розмір Skills від розміру runtime-читання/інжекції, як-от
`memory_get`, результати live tool і оновлення AGENTS.md після Compaction.

## Документація

Системний prompt містить розділ **Документація**. Коли локальна документація доступна, він
вказує на локальний каталог документації OpenClaw (`docs/` у Git checkout або документація bundled npm
package). Якщо локальна документація недоступна, він повертається до
[https://docs.openclaw.ai](https://docs.openclaw.ai).

Той самий розділ також містить розташування вихідного коду OpenClaw. Git checkouts показують локальний
корінь вихідного коду, щоб агент міг напряму інспектувати код. Встановлення package містять GitHub
URL вихідного коду й вказують агенту переглядати код там, коли документація неповна або
застаріла. Prompt також згадує публічне дзеркало документації, спільноту Discord і ClawHub
([https://clawhub.ai](https://clawhub.ai)) для виявлення Skills. Він подає документацію як
авторитетне джерело самознання OpenClaw до того, як модель зрозуміє, як працює OpenClaw,
зокрема пам’ять/щоденні нотатки, сесії, інструменти, Gateway, конфігурацію, команди або контекст
проєкту. Prompt вказує моделі спершу використовувати локальну документацію (або дзеркало документації, коли локальна документація
недоступна) і трактувати AGENTS.md, контекст проєкту, нотатки workspace/profile/memory
і `memory_search` як контекст інструкцій або пам’ять користувача, а не як знання про дизайн
чи реалізацію OpenClaw. Якщо документація мовчить або застаріла, модель має сказати про це
та інспектувати вихідний код. Prompt також вказує моделі самостійно запускати `openclaw status`, коли
це можливо, питаючи користувача лише тоді, коли вона не має доступу.
Для конфігурації зокрема він спрямовує агентів до дії інструмента `gateway`
`config.schema.lookup` для точних документів і обмежень на рівні полів, а потім до
`docs/gateway/configuration.md` і `docs/gateway/configuration-reference.md`
для ширших настанов.

## Пов’язане

- [Runtime агента](/uk/concepts/agent)
- [Workspace агента](/uk/concepts/agent-workspace)
- [Рушій контексту](/uk/concepts/context-engine)
