Перейти к основному содержанию
OpenClaw создает собственный системный промпт для каждого запуска агента. Промпт принадлежит OpenClaw и не использует стандартный промпт среды выполнения. Промпт собирается OpenClaw и внедряется в каждый запуск агента. Сборка промпта состоит из трех уровней:
  • buildAgentSystemPrompt рендерит промпт из явных входных данных. Он должен оставаться чистым рендерером и не должен напрямую читать глобальную конфигурацию.
  • resolveAgentSystemPromptConfig разрешает параметры промпта из конфигурации, такие как отображение владельца, подсказки TTS, алиасы моделей, режим цитирования памяти и режим делегирования субагентам для конкретного агента.
  • Адаптеры среды выполнения (встроенные, CLI, предпросмотры команд/экспорта, Compaction) собирают текущие факты, такие как инструменты, состояние песочницы, возможности канала, файлы контекста и вклад провайдера в промпт, а затем вызывают настроенный фасад промпта.
Это сохраняет экспортируемые/отладочные поверхности промпта согласованными с живыми запусками, не превращая каждую деталь, специфичную для среды выполнения, в один монолитный построитель. Плагины провайдеров могут добавлять кэш-осведомленные инструкции для промпта, не заменяя полный промпт, принадлежащий OpenClaw. Среда выполнения провайдера может:
  • заменить небольшой набор именованных основных секций (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.
OpenClaw держит крупное стабильное содержимое, включая Контекст проекта, выше внутренней границы кэша промпта. Изменчивые секции канала/сеанса, такие как инструкции для встраивания Control UI, Сообщения, Голос, Контекст группового чата, Реакции, Heartbeat и Среда выполнения, добавляются ниже этой границы, чтобы локальные бэкенды с кэшами префиксов могли повторно использовать стабильный префикс рабочей области между ходами канала. Описания инструментов также должны избегать встраивания текущих имен каналов, когда принимаемая схема уже несет эту деталь среды выполнения. Секция «Инструменты» также включает инструкции среды выполнения для долгой работы:
  • использовать 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.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (только в совершенно новых рабочих областях)
  • MEMORY.md, когда присутствует
В нативном harness Codex OpenClaw избегает повторения стабильных файлов рабочей области в каждом пользовательском ходе. Codex загружает 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.userTimezone
  • agents.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 инструментов предоставлять более глубокие операционные руководства без встраивания всех этих указаний напрямую в каждое описание инструмента.
<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
    <version>sha256:...</version>
  </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.

Документация

Системный промпт включает раздел Документация. Когда доступны локальные документы, он указывает на локальный каталог документации 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 для более широких рекомендаций.

См. также