diff --git a/docs/uk/concepts/system-prompt.md b/docs/uk/concepts/system-prompt.md index 282090dd3..c64e62199 100644 --- a/docs/uk/concepts/system-prompt.md +++ b/docs/uk/concepts/system-prompt.md @@ -1,104 +1,112 @@ --- read_when: - Редагування тексту системного промпту, списку інструментів або розділів часу/Heartbeat - - Зміна поведінки початкового налаштування робочого простору або впровадження Skills + - Зміна поведінки початкового налаштування робочого простору або інʼєкції Skills summary: Що містить системний промпт OpenClaw і як він збирається title: Системний промпт x-i18n: - generated_at: "2026-04-18T03:32:01Z" + generated_at: "2026-04-21T03:21:09Z" model: gpt-5.4 provider: openai - source_hash: e60705994cebdd9768926168cb1c6d17ab717d7ff02353a5d5e7478ba8191cab + source_hash: bc7b887865830e29bcbfb7f88a12fe04f490eec64cb745fc4534051b63a862dc source_path: concepts/system-prompt.md workflow: 15 --- # Системний промпт -OpenClaw створює власний системний промпт для кожного запуску агента. Промпт **належить OpenClaw** і не використовує стандартний промпт pi-coding-agent. +OpenClaw створює власний системний промпт для кожного запуску агента. Промпт **належить OpenClaw** і не використовує типовий промпт pi-coding-agent. -Промпт збирається OpenClaw і впроваджується в кожен запуск агента. +Промпт збирається OpenClaw і вставляється в кожен запуск агента. Плагіни провайдерів можуть додавати cache-aware вказівки до промпту, не замінюючи -повний промпт, що належить OpenClaw. Середовище виконання провайдера може: +повністю OpenClaw-owned промпт. Рантайм провайдера може: -- замінювати невеликий набір іменованих основних секцій (`interaction_style`, +- замінювати невеликий набір іменованих основних розділів (`interaction_style`, `tool_call_style`, `execution_bias`) -- впроваджувати **stable prefix** над межею кешу промпту -- впроваджувати **dynamic suffix** під межею кешу промпту +- вставляти **стабільний префікс** над межею кешу промпту +- вставляти **динамічний суфікс** під межею кешу промпту -Використовуйте внески, що належать провайдеру, для налаштування під конкретне сімейство моделей. Зберігайте застарілу +Використовуйте provider-owned внески для налаштування під конкретне сімейство моделей. Залишайте застарілу мутацію промпту `before_prompt_build` для сумісності або справді глобальних змін промпту, а не для звичайної поведінки провайдера. +Оверлей OpenAI GPT-5 family зберігає основне правило виконання коротким і додає +специфічні для моделі вказівки щодо фіксації персони, лаконічного виводу, дисципліни інструментів, +паралельного пошуку, повноти результату, перевірки, відсутнього контексту та +гігієни terminal-tool. + ## Структура -Промпт навмисно компактний і використовує фіксовані секції: +Промпт навмисно компактний і використовує фіксовані розділи: -- **Tooling**: нагадування про джерело істини для structured-tool плюс вказівки щодо використання інструментів під час виконання. -- **Safety**: коротке нагадування про захисні обмеження, щоб уникати поведінки, спрямованої на здобуття влади, або обходу нагляду. -- **Skills** (коли доступно): пояснює моделі, як за потреби завантажувати інструкції Skills. -- **OpenClaw Self-Update**: як безпечно перевіряти конфігурацію за допомогою - `config.schema.lookup`, змінювати конфігурацію через `config.patch`, замінювати всю +- **Tooling**: нагадування про джерело істини для структурованих інструментів і вказівки щодо використання інструментів під час виконання. +- **Execution Bias**: компактні вказівки щодо доведення справи до кінця: діяти в межах поточного ходу над + запитами, які можна виконати, продовжувати, доки не завершено або не виникне блокування, відновлюватися після слабких результатів інструментів, + перевіряти змінний стан наживо та виконувати перевірку перед завершенням. +- **Safety**: коротке нагадування про запобіжники, щоб уникати поведінки, спрямованої на здобуття влади, або обходу нагляду. +- **Skills** (коли доступно): повідомляє моделі, як завантажувати інструкції Skills за потреби. +- **OpenClaw Self-Update**: як безпечно переглядати конфігурацію за допомогою + `config.schema.lookup`, вносити зміни в конфігурацію за допомогою `config.patch`, замінювати всю конфігурацію через `config.apply` і запускати `update.run` лише за явним запитом користувача. Інструмент `gateway`, доступний лише власнику, також відмовляється переписувати `tools.exec.ask` / `tools.exec.security`, включно із застарілими - псевдонімами `tools.bash.*`, які нормалізуються до цих захищених шляхів exec. + псевдонімами `tools.bash.*`, які нормалізуються до цих захищених exec-шляхів. - **Workspace**: робочий каталог (`agents.defaults.workspace`). - **Documentation**: локальний шлях до документації OpenClaw (репозиторій або npm package) і коли її слід читати. -- **Workspace Files (injected)**: вказує, що нижче включено bootstrap-файли. -- **Sandbox** (коли ввімкнено): вказує на ізольоване середовище виконання, шляхи sandbox і чи доступний підвищений exec. -- **Current Date & Time**: локальний час користувача, часовий пояс і формат часу. -- **Reply Tags**: необов’язковий синтаксис тегів відповіді для підтримуваних провайдерів. -- **Heartbeats**: промпт Heartbeat і поведінка підтвердження, коли Heartbeat увімкнено для агента за замовчуванням. -- **Runtime**: хост, ОС, node, корінь репозиторію (коли виявлено), рівень thinking (один рядок). +- **Workspace Files (injected)**: вказує, що файли початкового налаштування включено нижче. +- **Sandbox** (коли ввімкнено): вказує на sandboxed рантайм, шляхи sandbox і те, чи доступний exec із підвищеними правами. +- **Current Date & Time**: локальний для користувача час, часовий пояс і формат часу. +- **Reply Tags**: необов’язковий синтаксис тегів відповіді для провайдерів, які це підтримують. +- **Heartbeats**: промпт Heartbeat і поведінка підтвердження, коли Heartbeat увімкнено для типового агента. +- **Runtime**: хост, ОС, node, модель, корінь репозиторію (коли виявлено), рівень мислення (один рядок). - **Reasoning**: поточний рівень видимості + підказка про перемикання /reasoning. -Секція Tooling також містить вказівки під час виконання для тривалої роботи: +Розділ Tooling також містить вказівки під час виконання для довготривалої роботи: -- використовуйте cron для майбутнього повторного звернення (`check back later`, нагадування, повторювана робота) - замість циклів sleep через `exec`, хитрощів із затримкою `yieldMs` або повторного +- використовуйте cron для майбутніх подальших дій (`check back later`, нагадування, періодичні завдання), + а не цикли сну `exec`, трюки із затримкою `yieldMs` чи повторне опитування `process` - використовуйте `exec` / `process` лише для команд, які запускаються зараз і продовжують працювати у фоновому режимі -- коли ввімкнено автоматичне пробудження після завершення, запускайте команду один раз і покладайтеся на - push-based шлях пробудження, коли вона виведе результат або завершиться з помилкою -- використовуйте `process` для журналів, статусу, введення або втручання, коли вам потрібно +- коли увімкнено автоматичне пробудження після завершення, запускайте команду лише один раз і покладайтеся на + push-based механізм пробудження, коли вона виводить результат або завершується з помилкою +- використовуйте `process` для логів, статусу, вводу або втручання, коли потрібно перевірити команду, що виконується -- якщо завдання більше, віддавайте перевагу `sessions_spawn`; завершення субагента є - push-based і автоматично анонсується назад запитувачу +- якщо завдання більше, надавайте перевагу `sessions_spawn`; завершення субагента є + push-based і автоматично анонсується назад тому, хто надіслав запит - не опитуйте `subagents list` / `sessions_list` у циклі лише для очікування завершення Коли ввімкнено експериментальний інструмент `update_plan`, Tooling також повідомляє -моделі використовувати його лише для нетривіальної багатоетапної роботи, підтримувати рівно один -крок `in_progress` і не повторювати весь план після кожного оновлення. +моделі використовувати його лише для нетривіальної багатокрокової роботи, тримати рівно один +крок `in_progress` і уникати повторення всього плану після кожного оновлення. -Захисні обмеження безпеки в системному промпті є рекомендаційними. Вони спрямовують поведінку моделі, але не забезпечують політику примусово. Для жорсткого забезпечення використовуйте політику інструментів, схвалення exec, sandboxing і allowlist каналів; оператори можуть вимкнути це за задумом. +Запобіжники Safety у системному промпті мають рекомендаційний характер. Вони спрямовують поведінку моделі, але не примушують до виконання політики. Для жорсткого забезпечення використовуйте політику інструментів, підтвердження exec, sandboxing і allowlists каналів; оператори можуть вимикати це за задумом. -У каналах із нативними картками/кнопками схвалення runtime-промпт тепер повідомляє -агенту спочатку покладатися на цей нативний UI схвалення. Він має включати ручну -команду `/approve`, лише коли результат інструмента повідомляє, що схвалення в чаті недоступні або -ручне схвалення є єдиним шляхом. +У каналах із нативними картками/кнопками підтвердження рантайм-промпт тепер повідомляє +агенту спочатку покладатися саме на цей нативний UI підтвердження. Він повинен включати ручну +команду `/approve` лише тоді, коли результат інструмента каже, що підтвердження в чаті недоступні або +ручне підтвердження — єдиний шлях. ## Режими промпту -OpenClaw може рендерити менші системні промпти для субагентів. Середовище виконання задає -`promptMode` для кожного запуску (це не користувацький параметр конфігурації): +OpenClaw може рендерити менші системні промпти для субагентів. Рантайм задає +`promptMode` для кожного запуску (це не користувацьке налаштування конфігурації): -- `full` (типово): включає всі секції вище. +- `full` (типово): включає всі наведені вище розділи. - `minimal`: використовується для субагентів; пропускає **Skills**, **Memory Recall**, **OpenClaw Self-Update**, **Model Aliases**, **User Identity**, **Reply Tags**, **Messaging**, **Silent Replies** і **Heartbeats**. Tooling, **Safety**, - Workspace, Sandbox, Current Date & Time (коли відомо), Runtime і впроваджений + Workspace, Sandbox, Current Date & Time (коли відомо), Runtime та вставлений контекст залишаються доступними. - `none`: повертає лише базовий рядок ідентичності. -Коли `promptMode=minimal`, додаткові впроваджені промпти позначаються як **Subagent +Коли `promptMode=minimal`, додаткові вставлені промпти позначаються як **Subagent Context** замість **Group Chat Context**. -## Впровадження bootstrap робочого простору +## Вставлення початкового налаштування робочого простору -Bootstrap-файли обрізаються й додаються в **Project Context**, щоб модель бачила контекст ідентичності та профілю без потреби в явному читанні: +Файли початкового налаштування обрізаються й додаються в розділі **Project Context**, щоб модель бачила контекст ідентичності та профілю без явного читання: - `AGENTS.md` - `SOUL.md` @@ -107,68 +115,68 @@ Bootstrap-файли обрізаються й додаються в **Project C - `USER.md` - `HEARTBEAT.md` - `BOOTSTRAP.md` (лише в абсолютно нових робочих просторах) -- `MEMORY.md`, якщо присутній, інакше `memory.md` як резервний варіант у нижньому регістрі +- `MEMORY.md`, якщо є, інакше `memory.md` як резервний варіант у нижньому регістрі -Усі ці файли **впроваджуються у вікно контексту** на кожному ході, якщо -не застосовується обмеження для конкретного файла. `HEARTBEAT.md` пропускається в звичайних запусках, коли -Heartbeat вимкнено для агента за замовчуванням або -`agents.defaults.heartbeat.includeSystemPromptSection` має значення false. Тримайте впроваджені -файли лаконічними — особливо `MEMORY.md`, який може зростати з часом і призводити до -неочікувано високого використання контексту та частішої Compaction. +Усі ці файли **вставляються у вікно контексту** на кожному ході, якщо +не застосовується файловий gate. `HEARTBEAT.md` пропускається у звичайних запусках, коли +Heartbeats вимкнено для типового агента або +`agents.defaults.heartbeat.includeSystemPromptSection` має значення false. Тримайте вставлені +файли лаконічними — особливо `MEMORY.md`, який з часом може розростатися та призводити до +неочікувано високого використання контексту й частішої Compaction. > **Примітка:** щоденні файли `memory/*.md` **не** є частиною звичайного bootstrap -> Project Context. Під час звичайних ходів до них звертаються за потреби через +> Project Context. У звичайних ходах до них звертаються за потреби через > інструменти `memory_search` і `memory_get`, тому вони не враховуються у -> вікні контексту, якщо модель явно їх не читає. Виняток — прості ходи `/new` і -> `/reset`: середовище виконання може додати нещодавню щоденну пам’ять -> як одноразовий блок стартового контексту для цього першого ходу. +> вікні контексту, якщо модель явно їх не прочитає. Виняток — голі ходи `/new` і +> `/reset`: рантайм може додавати недавню щоденну пам’ять як одноразовий блок +> початкового контексту для цього першого ходу. -Великі файли обрізаються з маркером. Максимальний розмір одного файла контролюється через -`agents.defaults.bootstrapMaxChars` (типово: 12000). Загальний обсяг впровадженого bootstrap-контенту -для всіх файлів обмежується `agents.defaults.bootstrapTotalMaxChars` -(типово: 60000). Відсутні файли впроваджують короткий маркер відсутнього файла. Коли відбувається обрізання, -OpenClaw може впровадити блок попередження в Project Context; це контролюється через +Великі файли обрізаються з маркером. Максимальний розмір на файл контролюється +`agents.defaults.bootstrapMaxChars` (типово: 12000). Загальний обсяг вставленого bootstrap +контенту для всіх файлів обмежується `agents.defaults.bootstrapTotalMaxChars` +(типово: 60000). Для відсутніх файлів вставляється короткий маркер відсутнього файла. Коли +відбувається обрізання, OpenClaw може вставити блок попередження в Project Context; це контролюється через `agents.defaults.bootstrapPromptTruncationWarning` (`off`, `once`, `always`; типово: `once`). -Сеанси субагентів впроваджують лише `AGENTS.md` і `TOOLS.md` (інші bootstrap-файли +Сесії субагентів вставляють лише `AGENTS.md` і `TOOLS.md` (інші bootstrap-файли відфільтровуються, щоб контекст субагента залишався малим). -Внутрішні хуки можуть перехоплювати цей крок через `agent:bootstrap`, щоб змінювати або замінювати -впроваджені bootstrap-файли (наприклад, підміняти `SOUL.md` альтернативною персоною). +Внутрішні hooks можуть перехоплювати цей крок через `agent:bootstrap`, щоб змінювати або замінювати +вставлені bootstrap-файли (наприклад, замінюючи `SOUL.md` на альтернативну персону). Якщо ви хочете, щоб агент звучав менш шаблонно, почніть із [SOUL.md Personality Guide](/uk/concepts/soul). -Щоб перевірити, який внесок робить кожен впроваджений файл (сирий проти впровадженого, обрізання, а також накладні витрати схеми інструментів), використовуйте `/context list` або `/context detail`. Див. [Context](/uk/concepts/context). +Щоб переглянути, який внесок робить кожен вставлений файл (сирий і вставлений обсяг, обрізання, а також накладні витрати схеми інструментів), використовуйте `/context list` або `/context detail`. Див. [Context](/uk/concepts/context). -## Обробка часу +## Робота з часом -Системний промпт містить окрему секцію **Current Date & Time**, коли -відомий часовий пояс користувача. Щоб зберігати стабільність кешу промпту, тепер він включає лише +Системний промпт включає окремий розділ **Current Date & Time**, коли +відомий часовий пояс користувача. Щоб зберегти стабільність кешу промпту, він тепер містить лише **часовий пояс** (без динамічного годинника чи формату часу). Використовуйте `session_status`, коли агенту потрібен поточний час; картка статусу -містить рядок із часовою міткою. Той самий інструмент також може за бажанням встановити -перевизначення моделі для сеансу (`model=default` очищує його). +містить рядок із часовою позначкою. Той самий інструмент також може за потреби встановити +перевизначення моделі для конкретної сесії (`model=default` скидає його). Налаштовується через: - `agents.defaults.userTimezone` - `agents.defaults.timeFormat` (`auto` | `12` | `24`) -Див. [Date & Time](/uk/date-time) для повних подробиць поведінки. +Див. [Date & Time](/uk/date-time), щоб отримати повні подробиці поведінки. ## Skills -Коли існують Skills, що відповідають умовам, OpenClaw впроваджує компактний **available skills list** -(`formatSkillsForPrompt`), який містить **шлях до файла** для кожного Skill. Промпт -інструктує модель використовувати `read`, щоб завантажити SKILL.md у вказаному -розташуванні (робочий простір, кероване або вбудоване). Якщо придатних Skills немає, -секція Skills пропускається. +Коли існують відповідні Skills, OpenClaw вставляє компактний **список доступних skills** +(`formatSkillsForPrompt`), який містить **шлях до файла** для кожної skill. Промпт +доручає моделі використовувати `read`, щоб завантажити SKILL.md за вказаним +розташуванням (workspace, managed або bundled). Якщо відповідних skills немає, розділ +Skills пропускається. -Відповідність умовам включає обмеження метаданих Skill, перевірки середовища виконання/конфігурації -та ефективний allowlist Skills агента, коли налаштовано `agents.defaults.skills` або +Відповідність включає gates метаданих skill, перевірки рантайм-середовища/конфігурації, +а також ефективний allowlist skills агента, коли налаштовано `agents.defaults.skills` або `agents.list[].skills`. ``` @@ -181,26 +189,26 @@ OpenClaw може впровадити блок попередження в Proj ``` -Це зберігає базовий промпт малим, водночас дозволяючи цілеспрямоване використання Skills. +Це зберігає базовий промпт малим, водночас дозволяючи цільове використання skills. -Бюджет списку Skills належить підсистемі Skills: +Бюджет списку skills належить підсистемі skills: - Глобальне типове значення: `skills.limits.maxSkillsPromptChars` -- Перевизначення для агента: `agents.list[].skillsLimits.maxSkillsPromptChars` +- Перевизначення для окремого агента: `agents.list[].skillsLimits.maxSkillsPromptChars` -Узагальнені обмежені витяги під час виконання використовують іншу поверхню: +Загальні обмежені runtime-уривки використовують іншу поверхню: - `agents.defaults.contextLimits.*` - `agents.list[].contextLimits.*` -Такий поділ зберігає розмір Skills окремо від розмірів читання/впровадження під час виконання, таких -як `memory_get`, результати live-інструментів і оновлення AGENTS.md після Compaction. +Такий поділ відокремлює розмір skills від розміру runtime-читання/вставлення, такого як +`memory_get`, живі результати інструментів і post-compaction оновлення AGENTS.md. ## Documentation -Коли доступно, системний промпт містить секцію **Documentation**, яка вказує на -локальний каталог документації OpenClaw (або `docs/` у робочому просторі репозиторію, або документацію з вбудованого npm -package), а також згадує публічне дзеркало, вихідний репозиторій, спільноту Discord і -ClawHub ([https://clawhub.ai](https://clawhub.ai)) для пошуку Skills. Промпт інструктує модель спочатку звертатися до локальної документації +Коли доступно, системний промпт включає розділ **Documentation**, який вказує на +локальний каталог документації OpenClaw (або `docs/` у робочому просторі репозиторію, або документацію з bundled npm +package), а також згадує публічне дзеркало, вихідний репозиторій, спільноту в Discord і +ClawHub ([https://clawhub.ai](https://clawhub.ai)) для пошуку skills. Промпт інструктує модель спочатку звертатися до локальної документації щодо поведінки OpenClaw, команд, конфігурації чи архітектури, а також самостійно запускати -`openclaw status`, коли це можливо (звертаючись до користувача лише тоді, коли вона не має доступу). +`openclaw status`, коли це можливо (звертаючись до користувача лише тоді, коли доступу немає).