Fundamentals
Системний промпт
OpenClaw формує власний системний промпт для кожного запуску агента; стандартного промпту середовища виконання немає.
Компонування має три рівні:
buildAgentSystemPromptвідтворює промпт з явних вхідних даних. Він залишається чистим засобом відтворення й не читає глобальну конфігурацію безпосередньо.resolveAgentSystemPromptConfigвизначає для конкретного агента параметри промпту, керовані конфігурацією (відображення власника, підказки TTS, псевдоніми моделей, режим цитування пам’яті, режим делегування субагентам).- Адаптери середовища виконання (вбудовані, CLI, попередній перегляд команд/експорту, Compaction) збирають актуальні дані (інструменти, стан пісочниці, можливості каналу, контекстні файли, внески провайдера до промпту) і викликають налаштований фасад промпту.
Це узгоджує експортовані та налагоджувальні представлення промпту з фактичними запусками, не перетворюючи всі подробиці середовища виконання на один монолітний конструктор.
Плагіни провайдерів можуть додавати настанови з урахуванням кешування, не замінюючи промпт, що належить OpenClaw. Середовище виконання провайдера може:
- замінити один із трьох іменованих основних розділів:
interaction_style,tool_call_style,execution_bias - вставити стабільний префікс над межею кешу промпту
- вставити динамічний суфікс під межею кешу промпту
Використовуйте внески, що належать провайдеру, для налаштування під конкретне сімейство моделей. Застарілий хук before_prompt_build залишайте для сумісності або справді глобальних змін промпту.
Вбудоване накладання OpenAI/Codex для сімейства GPT-5 (resolveGpt5SystemPromptContribution) використовує цей механізм: контракт поведінки stablePrefix (політика виконання, дисципліна використання інструментів, контракт виведення, контракт завершення) та необов’язкове перевизначення interaction_style для дружнішого тону. Воно застосовується до будь-якого ідентифікатора моделі gpt-5*, спрямованого через плагіни OpenAI або Codex, і керується параметром agents.defaults.promptOverlays.gpt5.personality ("friendly"/"on" або "off").
Структура
Промпт компактний і містить фіксовані розділи:
- Інструменти: нагадування, що структуровані інструменти є джерелом істини, а також настанови щодо використання інструментів у середовищі виконання. Коли ввімкнено експериментальний інструмент
update_plan(tools.experimental.planTool), його власний опис додає такі правила: використовувати його лише для нетривіальної багатоетапної роботи, тримати щонайбільше один крок у станіin_progressі не використовувати для простої одноетапної роботи. - Схильність до виконання: діяти в межах поточного ходу щодо запитів, які можна виконати, продовжувати до завершення або блокування, відновлюватися після слабких результатів інструментів, перевіряти мінливий стан наживо та виконувати перевірку перед завершенням.
- Безпека: коротке нагадування про обмеження проти поведінки, спрямованої на здобуття влади або обхід нагляду.
- Skills (за наявності): пояснює моделі, як завантажувати інструкції Skills на вимогу.
- Керування OpenClaw: віддавати перевагу інструменту
gatewayдля роботи з конфігурацією та перезапуском; не вигадувати команди CLI. - Самооновлення OpenClaw: безпечно перевіряти конфігурацію за допомогою
config.schema.lookup, вносити зміни черезconfig.patch, замінювати всю конфігурацію черезconfig.applyі запускатиupdate.runлише за явним запитом користувача. Доступний агенту інструментgatewayвідмовляється переписуватиtools.exec.ask/tools.exec.security, включно із застарілими псевдонімамиtools.bash.*, які нормалізуються до цих захищених шляхів. - Робочий простір: робочий каталог (
agents.defaults.workspace). - Документація: локальний шлях до документації/джерел і вказівки, коли їх читати.
- Файли робочого простору (вставлені): зазначає, що початкові файли включено нижче.
- Пісочниця (коли ввімкнено): ізольоване середовище виконання, шляхи пісочниці, доступність виконання з підвищеними привілеями.
- Поточна дата й час: лише часовий пояс (стабільний для кешування; актуальний час надходить із
session_status). - Директиви виведення асистента: компактний синтаксис вкладень, голосових нотаток і тегів відповіді.
- Heartbeats: промпт Heartbeat і поведінка підтвердження, коли Heartbeats увімкнено для стандартного агента.
- Середовище виконання: хост, ОС, Node, модель, корінь репозиторію (якщо виявлено), рівень міркування (один рядок).
- Міркування: поточний рівень видимості та підказка щодо перемикача
/reasoning.
Великий стабільний вміст (зокрема Контекст проєкту) залишається над внутрішньою межею кешу промпту. Мінливі розділи для кожного ходу (настанови щодо вбудовування інтерфейсу керування, Обмін повідомленнями, Голос, Контекст групового чату, Реакції, Heartbeats, Середовище виконання) додаються під цією межею, щоб локальні серверні компоненти з кешами префіксів могли повторно використовувати стабільний префікс робочого простору між ходами в каналі. В описах інструментів варто уникати вбудовування поточних назв каналів, якщо прийнята схема вже містить ці дані середовища виконання.
Розділ інструментів також містить настанови щодо тривалої роботи:
- використовувати Cron для подальших дій у майбутньому (
check back later, нагадування, повторювана робота) замість циклів очікуванняexec, прийомів із затримкоюyieldMsабо повторного опитуванняprocess - використовувати
exec/processлише для команд, які запускаються зараз і продовжують працювати у фоновому режимі - коли ввімкнено автоматичне пробудження після завершення, запускати команду один раз і покладатися на механізм пробудження на основі push-повідомлень
- використовувати
processдля журналів, стану, введення або втручання в команду, що виконується - для більших завдань віддавати перевагу
sessions_spawn; завершення роботи субагента передається через push-повідомлення й автоматично повідомляється ініціатору запиту - не опитувати
subagents list/sessions_listу циклі лише для очікування завершення
agents.defaults.subagents.delegationMode (стандартне значення "suggest") може посилити це. Значення "prefer" додає окремий розділ Делегування субагентам, який вказує головному агенту діяти як оперативний координатор і передавати через sessions_spawn усе, що складніше за пряму відповідь. Це стосується лише промпту; політика інструментів і надалі визначає доступність sessions_spawn.
Обмеження безпеки в системному промпті мають рекомендаційний, а не примусовий характер. Для жорсткого контролю використовуйте політику інструментів, схвалення виконання, ізоляцію в пісочниці та списки дозволених каналів; за задумом оператори можуть вимкнути обмеження безпеки промпту.
У каналах із вбудованими картками/кнопками схвалення промпт указує агенту насамперед покладатися на цей інтерфейс і додавати ручну команду /approve лише тоді, коли результат інструмента повідомляє, що схвалення в чаті недоступні або ручне схвалення є єдиним шляхом.
Режими промпту
OpenClaw відтворює менші системні промпти для субагентів. Середовище виконання встановлює promptMode для кожного запуску (це не конфігурація, доступна користувачу):
full(стандартний): усі наведені вище розділи.minimal: використовується для субагентів; пропускає розділ промпту пам’яті (вбудований як Відтворення з пам’яті), Самооновлення OpenClaw, Псевдоніми моделей, Ідентичність користувача, Директиви виведення асистента, Обмін повідомленнями, Відповіді без вмісту та Heartbeats. Інструменти, Безпека, Skills (якщо надано), робочий простір, пісочниця, поточна дата й час (якщо відомі), середовище виконання та вставлений контекст залишаються доступними.none: повертає лише базовий рядок ідентичності.
У режимі promptMode=minimal додаткові вставлені промпти позначаються як Контекст субагента, а не Контекст групового чату.
Для запусків автоматичної відповіді в каналі OpenClaw пропускає загальний розділ Відповіді без вмісту, якщо контекст прямого чату, групи або відповіді лише через інструмент повідомлень уже визначає контракт видимої відповіді. Лише застарілий автоматичний режим групи/каналу показує NO_REPLY; прямі чати та відповіді лише через інструмент повідомлень пропускають настанови щодо токена відповіді без вмісту.
Знімки промпту
OpenClaw зберігає зафіксовані знімки промпту для типового успішного сценарію середовища виконання Codex у test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/. Вони відтворюють вибрані параметри потоку/ходу сервера застосунку та реконструйований стек рівнів промпту, пов’язаний із моделлю, для прямих повідомлень Telegram, груп Discord і ходів Heartbeat: зафіксований зразок промпту моделі Codex gpt-5.5, текст інструкцій розробника щодо дозволів для типового успішного сценарію Codex, інструкції розробника OpenClaw, інструкції режиму співпраці в межах ходу, коли їх надає OpenClaw, введення користувача для ходу та посилання на динамічні специфікації інструментів.
Оновіть зафіксований зразок промпту моделі Codex командою pnpm prompt:snapshots:sync-codex-model. Стандартно вона шукає $CODEX_HOME/models_cache.json, потім ~/.codex/models_cache.json, а далі типовий шлях до робочої копії супровідника ~/code/codex/codex-rs/models-manager/models.json; якщо жодного файла немає, команда завершується без змін зафіксованого зразка. Передайте --catalog <path>, щоб оновити його з конкретного файла models_cache.json або models.json.
Ці знімки не є побайтовим захопленням необробленого запиту OpenAI. Codex може додавати контекст робочого простору, що належить середовищу виконання (AGENTS.md, контекст середовища, спогади, інструкції застосунку/плагіна, вбудовані інструкції стандартного режиму співпраці), після того як OpenClaw надішле параметри потоку та ходу.
Повторно створіть їх командою pnpm prompt:snapshots:gen; перевірте розбіжності командою pnpm prompt:snapshots:check. CI виконує перевірку розбіжностей разом із сегментами додаткових меж, тож зміни промпту й оновлення знімків потрапляють до того самого PR.
Вставлення початкових файлів робочого простору
Початкові файли визначаються з активного робочого простору та спрямовуються до поверхні промпту відповідно до строку їх дії:
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(лише в цілком нових робочих просторах)MEMORY.md, якщо він наявний
У нативному середовищі Codex OpenClaw не повторює стабільні файли робочого простору в кожному ході користувача. Codex завантажує AGENTS.md через власний механізм виявлення документації проєкту. TOOLS.md передається як успадковані інструкції розробника Codex. SOUL.md, IDENTITY.md і USER.md передаються як інструкції розробника щодо співпраці в межах ходу, щоб нативні субагенти Codex їх не успадковували. Вміст HEARTBEAT.md не вставляється безпосередньо; ходи Heartbeat отримують примітку режиму співпраці, яка вказує на файл, якщо він існує й не порожній. Вміст MEMORY.md також не вставляється в кожен нативний хід Codex: коли для робочого простору доступні інструменти пам’яті, ходи Codex отримують коротку примітку про пам’ять робочого простору, що спрямовує модель до memory_search або memory_get. Якщо інструменти вимкнено, пошук у пам’яті недоступний або активний робочий простір відрізняється від робочого простору пам’яті агента, для MEMORY.md застосовується звичайний обмежений шлях контексту ходу. BOOTSTRAP.md зберігає звичайну роль контексту ходу.
У середовищах, відмінних від Codex, початкові файли компонуються в промпт OpenClaw відповідно до наявних умов. HEARTBEAT.md пропускається під час звичайних запусків, якщо Heartbeats вимкнено для стандартного агента або agents.defaults.heartbeat.includeSystemPromptSection має значення false. Зберігайте вставлені файли стислими, особливо MEMORY.md поза Codex: він має залишатися впорядкованим довгостроковим підсумком, а докладні щоденні нотатки слід зберігати в memory/*.md з можливістю отримання на вимогу через memory_search / memory_get. Завеликі файли MEMORY.md поза Codex збільшують використання промпту й можуть вставлятися частково відповідно до наведених нижче обмежень початкових файлів.
Великі файли скорочуються з додаванням позначки:
| Обмеження | Ключ конфігурації | Стандартне значення |
|---|---|---|
| Максимальна кількість символів на файл | agents.defaults.bootstrapMaxChars |
20000 |
| Загалом для всіх файлів | agents.defaults.bootstrapTotalMaxChars |
60000 |
Попередження про скорочення (off|once|always) |
agents.defaults.bootstrapPromptTruncationWarning |
always |
Для відсутніх файлів вставляється коротка позначка про відсутність файла. Докладні необроблені та вставлені кількісні показники залишаються в діагностичних засобах, як-от /context, /status, doctor і журнали.
Для файлів пам’яті скорочення не означає втрату даних: файл залишається неушкодженим на диску. У нативному Codex файл MEMORY.md за наявності відповідних засобів читається на вимогу через інструменти пам’яті, інакше застосовується обмежений резервний варіант промпту. В інших середовищах модель бачить лише скорочену вставлену копію, доки безпосередньо не прочитає пам’ять або не виконає в ній пошук. Якщо MEMORY.md скорочується неодноразово, перетворіть його на коротший стійкий підсумок, перенесіть докладну історію до memory/*.md або свідомо збільште обмеження початкових файлів.
Сеанси субагентів додають лише AGENTS.md і TOOLS.md (інші файли початкового налаштування відфільтровуються, щоб контекст субагента залишався невеликим).
Внутрішні перехоплювачі можуть втрутитися в цей крок через подію agent:bootstrap, щоб змінити або замінити додані файли початкового налаштування (наприклад, замінити SOUL.md для використання альтернативної персони).
Щоб звучати менш шаблонно, почніть із посібника з налаштування особистості SOUL.md.
Щоб перевірити внесок кожного доданого файла (вихідний і фактично доданий обсяг, усічення, накладні витрати схеми інструментів), використовуйте /context list або /context detail. Див. Контекст.
Робота з часом
Розділ Поточна дата й час з’являється лише тоді, коли часовий пояс користувача відомий, і містить тільки часовий пояс (без динамічного годинника чи формату часу), щоб забезпечити стабільність кешу запиту.
Коли агенту потрібен поточний час, використовуйте session_status; картка стану цього інструмента містить рядок із часовою позначкою. Цей самий інструмент також може за потреби встановити перевизначення моделі для окремого сеансу (model=default скасовує його).
Налаштування:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Повний опис поведінки див. у розділах Часові пояси і Дата й час.
Skills
Коли доступні відповідні Skills, OpenClaw додає компактний список <available_skills> (formatSkillsForPrompt) із шляхом до файла та маркером <version>sha256:...</version>, отриманим із вмісту, для кожної навички. Запит указує моделі використовувати read, щоб завантажити SKILL.md за вказаним розташуванням (у робочому просторі, керованому або вбудованому), і повторно прочитати навичку, якщо її <version> відрізняється від попереднього ходу. Якщо немає доступних Skills, розділ Skills пропускається.
Нативні ходи Codex отримують цей список як обмежені поточним ходом інструкції розробника щодо спільної роботи, а не як введення користувача для кожного ходу, за винятком спрощених ходів cron, які зберігають точний запланований запит. Інші середовища виконання зберігають звичайний розділ запиту.
Розташування може вказувати на вкладену навичку, наприклад skills/personal/foo/SKILL.md. Вкладеність використовується лише для організації; у запиті застосовується пласке ім’я навички з метаданих frontmatter файла SKILL.md.
Відповідність вимогам охоплює обмеження метаданих навички, перевірки середовища виконання й конфігурації, а також фактичний список дозволених навичок агента, якщо налаштовано agents.defaults.skills або agents.list[].skills. Skills, вбудовані в плагіни, доступні лише тоді, коли активовано Plugin, якому вони належать. Це дає змогу плагінам інструментів надавати докладніші посібники з експлуатації, не вбудовуючи всі ці настанови в опис кожного інструмента.
<available_skills> <skill> <name>...</name> <description>...</description> <location>...</location> <version>sha256:...</version> </skill></available_skills>Це зберігає базовий запит невеликим, водночас забезпечуючи цільове використання навичок. За визначення обсягу відповідає підсистема навичок окремо від загальних обмежень читання й додавання даних під час виконання:
| Область | Бюджет запиту для Skills | Бюджет фрагментів під час виконання |
|---|---|---|
| Глобально | skills.limits.maxSkillsPromptChars |
agents.defaults.contextLimits.* |
| Для агента | agents.list[].skillsLimits.maxSkillsPromptChars |
agents.list[].contextLimits.* |
Бюджет фрагментів під час виконання охоплює memory_get, актуальні результати інструментів і оновлення AGENTS.md після ущільнення.
Документація
Розділ Документація вказує на локальну документацію, коли вона доступна (docs/ у робочій копії Git або документація у складі пакета npm), а інакше використовує https://docs.openclaw.ai. Він також містить розташування вихідного коду OpenClaw: для робочих копій Git указується локальний кореневий каталог вихідного коду, а для встановлень із пакета — URL вихідного коду на GitHub з інструкціями переглянути його там, якщо документація неповна або застаріла.
Запит визначає документацію як авторитетне джерело знань OpenClaw про себе, перш ніж модель з’ясовуватиме, як працює OpenClaw (пам’ять і щоденні нотатки, сеанси, інструменти, Gateway, конфігурація, команди, контекст проєкту), і вказує моделі розглядати AGENTS.md, контекст проєкту, нотатки робочого простору, профілю й пам’яті, а також memory_search як контекст інструкцій або пам’ять користувача, а не як знання про проєктування чи реалізацію OpenClaw. Якщо документація не містить потрібних відомостей або застаріла, модель має повідомити про це й перевірити вихідний код. Запит також указує моделі самостійно виконати openclaw status, коли це можливо, і звертатися до користувача лише за відсутності доступу.
Щодо конфігурації зокрема, він спрямовує агентів до дії config.schema.lookup інструмента gateway, щоб отримати точну документацію й обмеження на рівні окремих полів, а потім до docs/gateway/configuration.md і docs/gateway/configuration-reference.md для ширших настанов.