---
read_when:
    - Редагування тексту системного промпта, списку інструментів або розділів часу/Heartbeat
    - Зміна поведінки ініціалізації робочого простору або ін’єкції Skills
summary: Що містить системний промпт OpenClaw і як він збирається
title: Системний промпт
x-i18n:
    generated_at: "2026-05-11T20:34:43Z"
    model: gpt-5.5
    provider: openai
    source_hash: 7aa3db4f53ffe5c11fd85159044344b56cd11c3bdb1a5a5de7638b21fb813135
    source_path: concepts/system-prompt.md
    workflow: 16
---

OpenClaw створює власний системний промпт для кожного запуску агента. Промпт **належить OpenClaw** і не використовує типовий промпт pi-coding-agent.

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

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

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

Це зберігає узгодженість експортованих/налагоджувальних поверхонь промпта з живими запусками без
перетворення кожної специфічної для runtime деталі на один монолітний збирач.

Plugin провайдерів можуть додавати до промпта підказки з урахуванням кешу, не замінюючи
повний промпт, що належить OpenClaw. Runtime провайдера може:

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

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

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

## Структура

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

- **Інструменти**: нагадування про джерело істини для структурованих інструментів плюс runtime-настанови щодо використання інструментів.
- **Схильність до виконання**: компактні настанови щодо доведення справ до кінця: діяти в межах поточного ходу для
  дієвих запитів, продовжувати до завершення або блокування, відновлюватися після слабких результатів інструментів,
  перевіряти змінний стан наживо та виконувати перевірку перед фіналізацією.
- **Безпека**: коротке нагадування про запобіжники, щоб уникати поведінки, спрямованої на здобуття влади, або обходу нагляду.
- **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-файли включено нижче.
- **Пісочниця** (коли ввімкнено): вказує sandboxed runtime, шляхи пісочниці та чи доступний підвищений exec.
- **Поточна дата й час**: лише часовий пояс (стабільний для кешу; живий годинник надходить із `session_status`).
- **Директиви виводу асистента**: компактний синтаксис вкладень, голосових нотаток і тегів відповіді.
- **Heartbeat**: промпт Heartbeat і поведінка підтвердження, коли Heartbeat увімкнено для типового агента.
- **Runtime**: хост, ОС, Node, модель, корінь репозиторію (коли виявлено), рівень мислення (один рядок).
- **Міркування**: поточний рівень видимості + підказка перемикача /reasoning.

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

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

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

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

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

Запобіжники безпеки в системному промпті мають рекомендаційний характер. Вони скеровують поведінку моделі, але не забезпечують примусове виконання політики. Для жорсткого примусу використовуйте політику інструментів, схвалення exec, пісочницю та allowlist каналів; оператори можуть вимикати їх за задумом.

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

## Режими промпта

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

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

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

Для запусків автовідповідей у каналі OpenClaw може пропускати загальний розділ **Тихі відповіді**,
коли контекст прямого/групового чату вже містить визначену
специфічну для розмови поведінку `NO_REPLY`. Це уникає повторення механіки токенів
і в глобальному системному промпті, і в контексті каналу.

## Знімки промпта

OpenClaw зберігає закомічені знімки промпта для щасливого шляху runtime Codex у
`test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/`. Вони рендерять
вибрані параметри треду/ходу app-server плюс реконструйований стек шарів промпта, привʼязаного до моделі,
для прямих Telegram, групових Discord і Heartbeat-ходів. Цей стек
містить зафіксовану фікстуру промпта моделі Codex `gpt-5.5`, згенеровану з форми
каталогу/кешу моделей Codex, developer-текст дозволів щасливого шляху Codex,
developer-інструкції OpenClaw, інструкції режиму співпраці в межах ходу,
коли OpenClaw їх надає, ввід користувацького ходу та посилання на динамічні специфікації інструментів.

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

Ці знімки все ще не є побайтовим сирим захопленням запиту OpenAI. Codex
може додавати контекст робочої області, що належить runtime, як-от `AGENTS.md`, контекст
середовища, памʼять, інструкції app/plugin і вбудовані типові
інструкції режиму співпраці всередині runtime Codex після того, як OpenClaw надішле
параметри треду й ходу.

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

## Впровадження bootstrap робочої області

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

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

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

Коли сесія працює на нативному harness Codex, Codex завантажує `AGENTS.md`
через власне виявлення проєктної документації. OpenClaw усе ще визначає решту
bootstrap-файлів і передає їх як інструкції конфігурації Codex, тож `SOUL.md`,
`TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md` і
`MEMORY.md` зберігають ту саму роль контексту робочої області без дублювання
`AGENTS.md`.

<Note>
Щоденні файли `memory/*.md` **не** є частиною звичайного bootstrap Контексту проєкту. У звичайних ходах до них звертаються на вимогу через інструменти `memory_search` і `memory_get`, тому вони не враховуються у вікні контексту, якщо модель явно їх не читає. Виняток становлять прості ходи `/new` і `/reset`: runtime може додати нещодавню щоденну памʼять як одноразовий блок стартового контексту для цього першого ходу.
</Note>

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

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

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

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

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

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

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

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

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

Налаштовується через:

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

Повні подробиці поведінки див. у [Date & Time](/uk/date-time).

## Skills

Коли існують придатні Skills, OpenClaw інʼєктує компактний **список доступних Skills**
(`formatSkillsForPrompt`), який містить **шлях до файлу** для кожного Skill. Промпт
інструктує модель використовувати `read`, щоб завантажити SKILL.md у вказаному
місці (робочий простір, кероване або вбудоване). Якщо придатних Skills немає, розділ
Skills пропускається.

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

Skills, вбудовані в Plugin, придатні лише тоді, коли ввімкнено Plugin, якому вони належать.
Це дає змогу Plugin інструментів надавати глибші операційні інструкції без вбудовування всієї
цієї інструктивної інформації безпосередньо в кожен опис інструмента.

```
<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
  </skill>
</available_skills>
```

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

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

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

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

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

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

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

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

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

## Повʼязане

- [Agent runtime](/uk/concepts/agent)
- [Agent workspace](/uk/concepts/agent-workspace)
- [Context engine](/uk/concepts/context-engine)
