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

Системний запит

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

Структура

Запит навмисно компактний і використовує фіксовані розділи:
  • Tooling: нагадування про джерело істини для structured-tool плюс інструкції runtime щодо використання tools.
  • Safety: коротке нагадування про запобіжники, щоб уникати поведінки, спрямованої на здобуття влади, або обходу нагляду.
  • Skills (коли доступні): пояснює моделі, як завантажувати інструкції навичок на вимогу.
  • Самооновлення OpenClaw: як безпечно перевіряти конфігурацію через 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-пакунок) і коли її читати.
  • Workspace Files (injected): вказує, що bootstrap-файли включено нижче.
  • Sandbox (коли ввімкнено): вказує на sandbox runtime, шляхи sandbox і чи доступний підвищений exec.
  • Current Date & Time: локальний час користувача, часовий пояс і формат часу.
  • Reply Tags: необов’язковий синтаксис тегів відповіді для підтримуваних провайдерів.
  • Heartbeats: запит heartbeat і поведінка ack.
  • Runtime: хост, ОС, node, модель, корінь репозиторію (коли виявлено), рівень thinking (один рядок).
  • Reasoning: поточний рівень видимості + підказка для перемикання /reasoning.
Розділ Tooling також містить інструкції runtime для довготривалої роботи:
  • використовувати cron для майбутніх дій (check back later, нагадування, повторювана робота) замість циклів сну через exec, трюків затримки yieldMs або повторного опитування process
  • використовувати exec / process лише для команд, які стартують зараз і продовжують працювати у фоновому режимі
  • коли ввімкнено автоматичне пробудження після завершення, запускати команду лише один раз і покладатися на шлях push-сповіщення, коли вона виводить результат або завершується з помилкою
  • використовувати process для журналів, стану, введення або втручання, коли потрібно перевірити запущену команду
  • якщо завдання більше, надавати перевагу sessions_spawn; завершення субагента відбувається через push і автоматично анонсується назад запитувачу
  • не опитувати subagents list / sessions_list у циклі лише для очікування завершення
Коли ввімкнено експериментальний інструмент update_plan, Tooling також повідомляє моделі використовувати його лише для нетривіальної багатокрокової роботи, підтримувати рівно один крок in_progress і не повторювати весь план після кожного оновлення. Запобіжники безпеки в системному запиті мають рекомендаційний характер. Вони спрямовують поведінку моделі, але не забезпечують примусове виконання політики. Для жорсткого контролю використовуйте політики tools, схвалення exec, sandboxing і allowlist каналів; оператори можуть вимкнути це за задумом. На каналах із рідними картками/кнопками схвалення запит runtime тепер інструктує агента насамперед покладатися на цей рідний UI схвалення. Він має додавати ручну команду /approve лише тоді, коли результат tool повідомляє, що схвалення в чаті недоступні або ручне схвалення є єдиним шляхом.

Режими запиту

OpenClaw може рендерити менші системні запити для субагентів. Runtime встановлює promptMode для кожного запуску (це не користувацьке налаштування):
  • full (за замовчуванням): включає всі наведені вище розділи.
  • minimal: використовується для субагентів; пропускає Skills, Memory Recall, Самооновлення OpenClaw, 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 як резервний варіант у нижньому регістрі
Усі ці файли інʼєктуються у вікно контексту на кожному ході, а отже витрачають токени. Тримайте їх стислими — особливо MEMORY.md, який може зростати з часом і призводити до неочікувано великого використання контексту та частішого ущільнення.
Примітка: щоденні файли memory/*.md не інʼєктуються автоматично. До них звертаються на вимогу через tools memory_search і memory_get, тож вони не впливають на вікно контексту, якщо модель явно їх не читає.
Великі файли обрізаються з маркером. Максимальний розмір одного файла контролюється через agents.defaults.bootstrapMaxChars (за замовчуванням: 20000). Загальний обсяг інʼєктованого bootstrap-вмісту між файлами обмежується agents.defaults.bootstrapTotalMaxChars (за замовчуванням: 150000). Для відсутніх файлів інʼєктується короткий маркер відсутності. Коли відбувається обрізання, OpenClaw може додавати блок попередження в Project Context; це контролюється через agents.defaults.bootstrapPromptTruncationWarning (off, once, always; за замовчуванням: once). Сесії субагентів інʼєктують лише AGENTS.md і TOOLS.md (інші bootstrap-файли відфільтровуються, щоб контекст субагента залишався малим). Внутрішні hooks можуть перехоплювати цей крок через agent:bootstrap, щоб змінити або замінити інʼєктовані bootstrap-файли (наприклад, підмінити SOUL.md на альтернативну персону). Якщо ви хочете, щоб агент звучав менш узагальнено, почніть із Посібника з індивідуальності SOUL.md. Щоб перевірити, який внесок дає кожен інʼєктований файл (сирий проти інʼєктованого, обрізання, а також накладні витрати схеми tool), використовуйте /context list або /context detail. Див. Context.

Обробка часу

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

Skills

Коли існують допустимі навички, OpenClaw інʼєктує компактний список доступних навичок (formatSkillsForPrompt), який включає шлях до файла для кожної навички. Запит інструктує модель використовувати read, щоб завантажити SKILL.md за вказаним розташуванням (workspace, managed або bundled). Якщо допустимих навичок немає, розділ Skills пропускається. Допустимість включає метадані навичок, перевірки runtime environment/config і ефективний allowlist навичок агента, коли налаштовано agents.defaults.skills або agents.list[].skills.
<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
  </skill>
</available_skills>
Це дозволяє зберігати базовий запит невеликим, водночас забезпечуючи цільове використання навичок.

Documentation

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