Перейти до основного вмісту

Системний промпт

OpenClaw створює власний системний промпт для кожного запуску агента. Промпт належить OpenClaw і не використовує стандартний промпт pi-coding-agent. Промпт збирається OpenClaw і впроваджується в кожен запуск агента. Плагіни провайдерів можуть додавати cache-aware вказівки до промпту, не замінюючи повний промпт, що належить OpenClaw. Середовище виконання провайдера може:
  • замінювати невеликий набір іменованих основних секцій (interaction_style, tool_call_style, execution_bias)
  • впроваджувати stable prefix над межею кешу промпту
  • впроваджувати dynamic suffix під межею кешу промпту
Використовуйте внески, що належать провайдеру, для налаштування під конкретне сімейство моделей. Зберігайте застарілу мутацію промпту before_prompt_build для сумісності або справді глобальних змін промпту, а не для звичайної поведінки провайдера.

Структура

Промпт навмисно компактний і використовує фіксовані секції:
  • Tooling: нагадування про джерело істини для structured-tool плюс вказівки щодо використання інструментів під час виконання.
  • 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.
  • 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 (один рядок).
  • Reasoning: поточний рівень видимості + підказка про перемикання /reasoning.
Секція Tooling також містить вказівки під час виконання для тривалої роботи:
  • використовуйте cron для майбутнього повторного звернення (check back later, нагадування, повторювана робота) замість циклів sleep через exec, хитрощів із затримкою yieldMs або повторного опитування process
  • використовуйте exec / process лише для команд, які запускаються зараз і продовжують працювати у фоновому режимі
  • коли ввімкнено автоматичне пробудження після завершення, запускайте команду один раз і покладайтеся на push-based шлях пробудження, коли вона виведе результат або завершиться з помилкою
  • використовуйте process для журналів, статусу, введення або втручання, коли вам потрібно перевірити команду, що виконується
  • якщо завдання більше, віддавайте перевагу sessions_spawn; завершення субагента є push-based і автоматично анонсується назад запитувачу
  • не опитуйте subagents list / sessions_list у циклі лише для очікування завершення
Коли ввімкнено експериментальний інструмент update_plan, Tooling також повідомляє моделі використовувати його лише для нетривіальної багатоетапної роботи, підтримувати рівно один крок in_progress і не повторювати весь план після кожного оновлення. Захисні обмеження безпеки в системному промпті є рекомендаційними. Вони спрямовують поведінку моделі, але не забезпечують політику примусово. Для жорсткого забезпечення використовуйте політику інструментів, схвалення exec, sandboxing і allowlist каналів; оператори можуть вимкнути це за задумом. У каналах із нативними картками/кнопками схвалення runtime-промпт тепер повідомляє агенту спочатку покладатися на цей нативний UI схвалення. Він має включати ручну команду /approve, лише коли результат інструмента повідомляє, що схвалення в чаті недоступні або ручне схвалення є єдиним шляхом.

Режими промпту

OpenClaw може рендерити менші системні промпти для субагентів. Середовище виконання задає promptMode для кожного запуску (це не користувацький параметр конфігурації):
  • 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 і впроваджений контекст залишаються доступними.
  • none: повертає лише базовий рядок ідентичності.
Коли promptMode=minimal, додаткові впроваджені промпти позначаються як Subagent Context замість Group Chat Context.

Впровадження bootstrap робочого простору

Bootstrap-файли обрізаються й додаються в Project Context, щоб модель бачила контекст ідентичності та профілю без потреби в явному читанні:
  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (лише в абсолютно нових робочих просторах)
  • MEMORY.md, якщо присутній, інакше memory.md як резервний варіант у нижньому регістрі
Усі ці файли впроваджуються у вікно контексту на кожному ході, якщо не застосовується обмеження для конкретного файла. HEARTBEAT.md пропускається в звичайних запусках, коли Heartbeat вимкнено для агента за замовчуванням або agents.defaults.heartbeat.includeSystemPromptSection має значення false. Тримайте впроваджені файли лаконічними — особливо MEMORY.md, який може зростати з часом і призводити до неочікувано високого використання контексту та частішої Compaction.
Примітка: щоденні файли memory/*.md не є частиною звичайного bootstrap Project Context. Під час звичайних ходів до них звертаються за потреби через інструменти memory_search і memory_get, тому вони не враховуються у вікні контексту, якщо модель явно їх не читає. Виняток — прості ходи /new і /reset: середовище виконання може додати нещодавню щоденну пам’ять як одноразовий блок стартового контексту для цього першого ходу.
Великі файли обрізаються з маркером. Максимальний розмір одного файла контролюється через agents.defaults.bootstrapMaxChars (типово: 12000). Загальний обсяг впровадженого bootstrap-контенту для всіх файлів обмежується agents.defaults.bootstrapTotalMaxChars (типово: 60000). Відсутні файли впроваджують короткий маркер відсутнього файла. Коли відбувається обрізання, OpenClaw може впровадити блок попередження в Project Context; це контролюється через agents.defaults.bootstrapPromptTruncationWarning (off, once, always; типово: once). Сеанси субагентів впроваджують лише AGENTS.md і TOOLS.md (інші bootstrap-файли відфільтровуються, щоб контекст субагента залишався малим). Внутрішні хуки можуть перехоплювати цей крок через agent:bootstrap, щоб змінювати або замінювати впроваджені bootstrap-файли (наприклад, підміняти SOUL.md альтернативною персоною). Якщо ви хочете, щоб агент звучав менш шаблонно, почніть із SOUL.md Personality Guide. Щоб перевірити, який внесок робить кожен впроваджений файл (сирий проти впровадженого, обрізання, а також накладні витрати схеми інструментів), використовуйте /context list або /context detail. Див. Context.

Обробка часу

Системний промпт містить окрему секцію Current Date & Time, коли відомий часовий пояс користувача. Щоб зберігати стабільність кешу промпту, тепер він включає лише часовий пояс (без динамічного годинника чи формату часу). Використовуйте session_status, коли агенту потрібен поточний час; картка статусу містить рядок із часовою міткою. Той самий інструмент також може за бажанням встановити перевизначення моделі для сеансу (model=default очищує його). Налаштовується через:
  • agents.defaults.userTimezone
  • agents.defaults.timeFormat (auto | 12 | 24)
Див. Date & Time для повних подробиць поведінки.

Skills

Коли існують Skills, що відповідають умовам, OpenClaw впроваджує компактний available skills list (formatSkillsForPrompt), який містить шлях до файла для кожного Skill. Промпт інструктує модель використовувати read, щоб завантажити SKILL.md у вказаному розташуванні (робочий простір, кероване або вбудоване). Якщо придатних Skills немає, секція Skills пропускається. Відповідність умовам включає обмеження метаданих Skill, перевірки середовища виконання/конфігурації та ефективний allowlist Skills агента, коли налаштовано agents.defaults.skills або agents.list[].skills.
<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, результати live-інструментів і оновлення AGENTS.md після Compaction.

Documentation

Коли доступно, системний промпт містить секцію Documentation, яка вказує на локальний каталог документації OpenClaw (або docs/ у робочому просторі репозиторію, або документацію з вбудованого npm package), а також згадує публічне дзеркало, вихідний репозиторій, спільноту Discord і ClawHub (https://clawhub.ai) для пошуку Skills. Промпт інструктує модель спочатку звертатися до локальної документації щодо поведінки OpenClaw, команд, конфігурації чи архітектури, а також самостійно запускати openclaw status, коли це можливо (звертаючись до користувача лише тоді, коли вона не має доступу).