buildAgentSystemPromptрендерит промпт из явных входных данных. Он должен оставаться чистым рендерером и не должен напрямую читать глобальную конфигурацию.resolveAgentSystemPromptConfigразрешает параметры промпта из конфигурации, такие как отображение владельца, подсказки TTS, алиасы моделей, режим цитирования памяти и режим делегирования субагентам для конкретного агента.- Адаптеры среды выполнения (встроенные, CLI, предпросмотры команд/экспорта, Compaction) собирают текущие факты, такие как инструменты, состояние песочницы, возможности канала, файлы контекста и вклад провайдера в промпт, а затем вызывают настроенный фасад промпта.
- заменить небольшой набор именованных основных секций (
interaction_style,tool_call_style,execution_bias) - внедрить стабильный префикс выше границы кэша промпта
- внедрить динамический суффикс ниже границы кэша промпта
before_prompt_build для совместимости или действительно глобальных изменений промпта,
а не для обычного поведения провайдера.
Оверлей семейства OpenAI GPT-5 сохраняет основное правило выполнения небольшим и добавляет
модельно-специфичные инструкции для фиксации персоны, краткого вывода, дисциплины инструментов,
параллельного поиска, покрытия ожидаемых результатов, проверки, отсутствующего контекста и
гигиены терминальных инструментов.
Структура
Промпт намеренно компактен и использует фиксированные секции:- Инструменты: напоминание об источнике истины для структурированных инструментов плюс инструкции среды выполнения по использованию инструментов.
- Склонность к выполнению: компактные инструкции по доведению работы до конца: действовать в рамках хода на выполнимые запросы, продолжать до завершения или блокировки, восстанавливаться после слабых результатов инструментов, проверять изменяемое состояние вживую и выполнять проверку перед финализацией.
- Безопасность: короткое напоминание о защитных ограничениях, чтобы избегать стремления к власти или обхода надзора.
- 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). - Документация: локальный путь к документации/исходникам OpenClaw и когда их читать.
- Файлы рабочей области (внедренные): указывает, что bootstrap-файлы включены ниже.
- Песочница (когда включена): указывает песочничную среду выполнения, пути песочницы и доступность повышенного exec.
- Текущая дата и время: только часовой пояс (стабильно для кэша; живые часы поступают из
session_status). - Директивы вывода ассистента: компактный синтаксис вложений, голосовых заметок и тегов ответа.
- Heartbeat: промпт Heartbeat и поведение ack, когда Heartbeat включены для агента по умолчанию.
- Среда выполнения: хост, ОС, Node, модель, корень репозитория (когда обнаружен), уровень размышления (одна строка).
- Рассуждение: текущий уровень видимости + подсказка переключателя /reasoning.
- использовать 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.
Когда включен экспериментальный инструмент update_plan, раздел «Инструменты» также говорит
модели использовать его только для нетривиальной многошаговой работы, держать ровно один
шаг in_progress и не повторять весь план после каждого обновления.
Защитные ограничения в системном промпте носят рекомендательный характер. Они направляют поведение модели, но не обеспечивают соблюдение политики. Для жесткого enforcement используйте политику инструментов, одобрения exec, песочницу и allowlist каналов; операторы могут отключать их по замыслу.
В каналах с нативными карточками/кнопками одобрения промпт среды выполнения теперь говорит
агенту сначала полагаться на этот нативный UI одобрения. Он должен включать ручную
команду /approve только когда результат инструмента сообщает, что чат-одобрения недоступны или
ручное одобрение является единственным путем.
Режимы промпта
OpenClaw может рендерить меньшие системные промпты для субагентов. Среда выполнения задаетpromptMode для каждого запуска (это не пользовательская конфигурация):
full(по умолчанию): включает все секции выше.minimal: используется для субагентов; опускает Вспоминание памяти, Самообновление OpenClaw, Алиасы моделей, Идентичность пользователя, Директивы вывода ассистента, Сообщения, Тихие ответы и Heartbeat. Инструменты, Безопасность, Skills, когда они предоставлены, Рабочая область, Песочница, Текущая дата и время (когда известны), Среда выполнения и внедренный контекст остаются доступны.none: возвращает только базовую строку идентичности.
promptMode=minimal, дополнительные внедренные промпты помечаются как Контекст субагента
вместо Контекст группового чата.
Для запусков автоответа в канале OpenClaw опускает общую секцию Тихие ответы,
когда прямой, групповой или только message-tool-контекст владеет контрактом видимого ответа.
Только старый автоматический групповой/канальный режим должен показывать NO_REPLY; прямые
чаты и ответы только через message-tool не получают инструкций по тихому токену.
Снимки промптов
OpenClaw хранит закоммиченные снимки промптов для happy path среды выполнения Codex вtest/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/. Они рендерят
выбранные параметры потока/хода app-server плюс восстановленный стек слоев промпта, привязанный к модели,
для прямых сообщений Telegram, групп Discord и ходов Heartbeat. Этот стек
включает закрепленную фикстуру модельного промпта Codex gpt-5.5, сгенерированную из формы
каталога/кэша моделей Codex, developer-текст разрешений happy path Codex,
developer-инструкции OpenClaw, инструкции режима совместной работы в рамках хода,
когда OpenClaw их предоставляет, пользовательский ввод хода и ссылки на динамические спецификации инструментов.
Обновите закрепленную фикстуру модельного промпта Codex с помощью
pnpm prompt:snapshots:sync-codex-model. По умолчанию скрипт ищет
кэш среды выполнения Codex в $CODEX_HOME/models_cache.json, затем
~/.codex/models_cache.json, и только после этого переходит к соглашению для maintainer checkout Codex
по пути ~/code/codex/codex-rs/models-manager/models.json. Если
ни один из этих источников не существует, команда завершается без изменения закоммиченной
фикстуры. Передайте --catalog <path>, чтобы обновить ее из конкретного файла models_cache.json
или models.json.
Эти снимки все еще не являются побайтовым сырым захватом запроса OpenAI. Codex
может добавлять принадлежащий среде выполнения контекст рабочей области, такой как AGENTS.md, контекст
окружения, воспоминания, инструкции приложения/Plugin и встроенные инструкции режима совместной работы Default
внутри среды выполнения Codex после того, как OpenClaw отправляет
параметры потока и хода.
Сгенерируйте их заново с помощью pnpm prompt:snapshots:gen и проверьте расхождение с помощью
pnpm prompt:snapshots:check. CI запускает проверку расхождений в дополнительном
boundary-шарде, чтобы изменения промптов и обновления снимков оставались привязанными к одному
PR.
Внедрение bootstrap рабочей области
Bootstrap-файлы разрешаются из активной рабочей области, затем направляются на поверхность промпта, соответствующую их сроку жизни:AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(только в совершенно новых рабочих областях)MEMORY.md, когда присутствует
AGENTS.md через собственное обнаружение
документов проекта. SOUL.md, IDENTITY.md, TOOLS.md и USER.md передаются как
developer-инструкции Codex. Компактный список Skills OpenClaw также пересылается
как developer-инструкции совместной работы в рамках хода. Содержимое HEARTBEAT.md
не внедряется; ходы Heartbeat получают заметку режима совместной работы, указывающую на файл,
когда он существует и не пуст. Содержимое MEMORY.md из настроенной рабочей области агента
не вставляется в каждый нативный ход Codex; когда инструменты памяти доступны
для этой рабочей области, ходы Codex получают небольшую заметку о памяти рабочей области в
developer-инструкциях совместной работы в рамках хода и должны использовать memory_search
или memory_get, когда долговременная память релевантна. Если инструменты отключены, поиск по памяти
недоступен или активная рабочая область отличается от рабочей области памяти агента,
MEMORY.md откатывается к обычному ограниченному пути контекста хода. Активное
содержимое BOOTSTRAP.md пока сохраняет обычную роль контекста хода.
В harness, отличных от Codex, bootstrap-файлы продолжают включаться в
промпт OpenClaw согласно существующим условиям. HEARTBEAT.md опускается в
обычных запусках, когда Heartbeat отключены для агента по умолчанию или
agents.defaults.heartbeat.includeSystemPromptSection равно false. Держите внедренные
файлы краткими, особенно MEMORY.md не для Codex. MEMORY.md предназначен для хранения
курируемого долгосрочного резюме; подробные ежедневные заметки должны находиться в memory/*.md, где
memory_search и memory_get могут извлекать их по требованию. Чрезмерно большие
файлы MEMORY.md не для Codex увеличивают расход промпта и могут внедряться частично
из-за ограничений bootstrap-файлов ниже.
Ежедневные файлы
memory/*.md не являются частью обычного bootstrap-контекста проекта. В обычных ходах к ним обращаются по требованию через инструменты memory_search и memory_get, поэтому они не учитываются в окне контекста, если модель явно их не читает. Исключение составляют чистые ходы /new и /reset: среда выполнения может добавить недавнюю ежедневную память в начало как одноразовый блок startup-контекста для этого первого хода.agents.defaults.bootstrapMaxChars (по умолчанию: 20000). Общий внедряемый bootstrap-
контент по всем файлам ограничен agents.defaults.bootstrapTotalMaxChars
(по умолчанию: 60000). Отсутствующие файлы внедряют короткий маркер отсутствующего файла. Когда происходит обрезка,
OpenClaw может внедрить краткое предупреждение в системный промпт; управляйте этим через
agents.defaults.bootstrapPromptTruncationWarning (off, once, always;
по умолчанию: always). Подробные счетчики исходного и внедренного содержимого остаются в диагностике, такой как
/context, /status, doctor и логи.
Для файлов памяти обрезка не означает потерю данных: файл остается нетронутым на диске.
В нативном Codex MEMORY.md читается по требованию через инструменты памяти, когда
они доступны, с ограниченным резервным добавлением в промпт, когда инструменты не могут запуститься. В других
средах выполнения модель видит только сокращенную внедренную копию, пока не прочитает или
не выполнит поиск по памяти напрямую. Если MEMORY.md там постоянно обрезается, сожмите
его в более короткое долговечное резюме и перенесите подробную историю в memory/*.md,
или намеренно увеличьте лимиты bootstrap.
Сеансы субагентов внедряют только AGENTS.md и TOOLS.md (остальные bootstrap-файлы
отфильтровываются, чтобы контекст субагента оставался небольшим).
Внутренние хуки могут перехватить этот шаг через agent:bootstrap, чтобы изменить или заменить
внедряемые bootstrap-файлы (например, заменить SOUL.md на альтернативную персону).
Если вы хотите, чтобы агент звучал менее обобщенно, начните с
Руководства по персональности SOUL.md.
Чтобы проверить, сколько вносит каждый внедренный файл (исходный и внедренный объем, обрезка, а также накладные расходы схемы инструментов), используйте /context list или /context detail. См. Контекст.
Обработка времени
Системный промпт включает отдельный раздел Текущая дата и время, когда известен часовой пояс пользователя. Чтобы сохранить стабильность кеша промпта, теперь он включает только часовой пояс (без динамических часов или формата времени). Используйтеsession_status, когда агенту нужно текущее время; карточка состояния
включает строку с временной меткой. Тот же инструмент может опционально установить переопределение модели
для отдельного сеанса (model=default сбрасывает его).
Настройка:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Skills
Когда существуют подходящие Skills, OpenClaw внедряет компактный список доступных Skills (formatSkillsForPrompt), который включает путь к файлу и полученный из содержимого
маркер <version> для каждого Skills. Промпт инструктирует модель использовать read,
чтобы загрузить SKILL.md из указанного расположения (рабочая область, управляемое или встроенное),
и перечитывать Skills, когда его <version> отличается от предыдущего хода. Если
подходящих Skills нет, раздел Skills опускается.
Нативные ходы Codex получают этот список как привязанные к ходу developer-инструкции для совместной работы
вместо пользовательского ввода на каждый ход, кроме легковесных ходов Cron, которые
сохраняют точный запланированный промпт. Другие среды выполнения сохраняют обычный раздел
промпта.
Расположение может указывать на вложенный Skills, например
skills/personal/foo/SKILL.md. Вложенность служит только для организации; промпт все равно
использует плоское имя Skills из frontmatter SKILL.md.
Право на использование включает проверки метаданных Skills, проверки среды выполнения/конфигурации
и эффективный allowlist Skills агента, когда настроено agents.defaults.skills или
agents.list[].skills.
Skills, встроенные в Plugin, подходят только когда их владеющий Plugin включен.
Это позволяет Plugin инструментов предоставлять более глубокие операционные руководства без встраивания всех
этих указаний напрямую в каждое описание инструмента.
- Глобальное значение по умолчанию:
skills.limits.maxSkillsPromptChars - Переопределение для агента:
agents.list[].skillsLimits.maxSkillsPromptChars
agents.defaults.contextLimits.*agents.list[].contextLimits.*
memory_get, результаты live-инструментов и обновления AGENTS.md после Compaction.
Документация
Системный промпт включает раздел Документация. Когда доступны локальные документы, он указывает на локальный каталог документации OpenClaw (docs/ в Git checkout или встроенные документы npm-
пакета). Если локальные документы недоступны, используется резервный вариант
https://docs.openclaw.ai.
Тот же раздел также включает расположение исходного кода OpenClaw. Git checkout предоставляют локальный
корень исходного кода, чтобы агент мог напрямую проверять код. Установки пакета включают GitHub-
URL исходного кода и говорят агенту проверять исходный код там, когда документация неполная или
устаревшая. Промпт также упоминает публичное зеркало документации, сообщество Discord и ClawHub
(https://clawhub.ai) для поиска Skills. Он задает документацию как
авторитетный источник самознания OpenClaw до того, как модель поймет, как работает OpenClaw,
включая память/ежедневные заметки, сеансы, инструменты, Gateway, конфигурацию, команды или контекст
проекта. Промпт говорит модели сначала использовать локальную документацию (или зеркало документации, когда локальные документы
недоступны) и рассматривать AGENTS.md, контекст проекта, заметки рабочей области/профиля/памяти
и memory_search как контекст инструкций или пользовательскую память, а не как знания о дизайне
или реализации OpenClaw. Если документация ничего не говорит или устарела, модель должна сказать об этом
и проверить исходный код. Промпт также говорит модели запускать openclaw status самостоятельно, когда
это возможно, и спрашивать пользователя только при отсутствии доступа.
Для конфигурации отдельно он направляет агентов к действию инструмента gateway
config.schema.lookup для точной документации и ограничений на уровне полей, затем к
docs/gateway/configuration.md и docs/gateway/configuration-reference.md
для более широких рекомендаций.