Fundamentals

Среда выполнения агента

OpenClaw поставляется с одной встроенной средой выполнения агента: встроенным циклом агента, подключением инструментов и сборкой промпта, в отличие от делегирования ходов внешнему процессу управляющей среды. Каждый настроенный агент (о запуске нескольких см. в разделе Маршрутизация между несколькими агентами) имеет собственное рабочее пространство, файлы начальной загрузки и хранилище сеансов. На этой странице описан контракт этой среды выполнения: что должно содержаться в рабочем пространстве, какие файлы внедряются и как сеансы выполняют начальную загрузку на его основе.

Рабочее пространство (обязательно)

Каждый агент использует один каталог рабочего пространства (agents.defaults.workspace или agents.list[].workspace для каждого агента) в качестве единственного рабочего каталога (cwd) для инструментов и контекста.

Рекомендуется использовать openclaw setup, чтобы создать ~/.openclaw/openclaw.json, если он отсутствует, и инициализировать файлы рабочего пространства.

Полная структура рабочего пространства и руководство по резервному копированию: Рабочее пространство агента

Если включён agents.defaults.sandbox, сеансы, отличные от основного, могут переопределять его рабочими пространствами для отдельных сеансов в agents.defaults.sandbox.workspaceRoot (см. Конфигурация Gateway).

Файлы начальной загрузки (внедряются)

В рабочем пространстве OpenClaw ожидает следующие редактируемые пользователем файлы:

Файл Назначение
AGENTS.md Инструкции по работе и «память»
SOUL.md Персона, ограничения, тон
TOOLS.md Пользовательские заметки и соглашения по инструментам
IDENTITY.md Имя, характер и эмодзи агента
USER.md Профиль пользователя и предпочтительная форма обращения
HEARTBEAT.md Инструкции для Heartbeat
BOOTSTRAP.md Однократный ритуал первого запуска (удаляется после завершения)
MEMORY.md Корневой файл долгосрочной памяти, если он существует

При первом ходе нового сеанса OpenClaw внедряет содержимое этих файлов в раздел Project Context системного промпта. MEMORY.md внедряется только в том случае, если он существует в корне рабочего пространства.

Пустые файлы пропускаются. Большие файлы сокращаются и обрезаются с добавлением маркера, чтобы промпты оставались компактными (для просмотра полного содержимого прочитайте файл). Для отсутствующего файла (кроме MEMORY.md) вместо этого внедряется одна строка-маркер «файл отсутствует»; openclaw setup создаёт для него безопасный шаблон по умолчанию.

BOOTSTRAP.md создаётся только для совершенно нового рабочего пространства (в котором отсутствуют другие файлы начальной загрузки). Пока он ожидает обработки, OpenClaw сохраняет его в Project Context и добавляет в системный промпт руководство по начальному ритуалу вместо копирования в сообщение пользователя. Если удалить его после завершения ритуала, при последующих перезапусках он не будет создан повторно.

После обнаружения рабочего пространства OpenClaw также сохраняет в каталоге состояния маркер аттестации пути рабочего пространства. Если недавно аттестованное рабочее пространство исчезает или очищается, при запуске система отказывается незаметно повторно создавать BOOTSTRAP.md; восстановите рабочее пространство или выполните полный сброс адаптации, чтобы рабочее пространство и маркер были очищены вместе.

Чтобы полностью отключить создание файлов начальной загрузки (для предварительно заполненных рабочих пространств), задайте:

json5
{ agents: { defaults: { skipBootstrap: true } } }

Встроенные инструменты

Основные инструменты (чтение, выполнение, редактирование, запись и связанные системные инструменты) доступны всегда с учётом политики использования инструментов. apply_patch по умолчанию включён для моделей OpenAI и управляется параметром tools.exec.applyPatch (enabled, workspaceOnly, allowModels). TOOLS.md не определяет, какие инструменты существуют; это указания о том, как вы хотите их использовать.

Skills

OpenClaw загружает навыки из следующих расположений (в порядке убывания приоритета):

  • Рабочее пространство: <workspace>/skills
  • Навыки агента проекта: <workspace>/.agents/skills
  • Личные навыки агента: ~/.agents/skills
  • Управляемые/локальные: ~/.openclaw/skills
  • Встроенные (поставляются с установкой)
  • Дополнительные папки навыков: skills.load.extraDirs

Корневые каталоги навыков могут содержать сгруппированные папки, например <workspace>/skills/personal/foo/SKILL.md; при этом навык по-прежнему предоставляется под своим плоским именем из метаданных, например foo.

Доступность навыков может ограничиваться конфигурацией или переменными среды (см. skills в разделе Конфигурация Gateway).

Границы среды выполнения

Встроенная среда выполнения агента принадлежит OpenClaw: обнаружение моделей, подключение инструментов, сборка промпта, управление сеансами и доставка в каналы образуют единую интегрированную поверхность среды выполнения.

Сеансы

Строки сеансов хранятся в базе данных SQLite соответствующего агента:

  • ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite

Файлы расшифровок JSONL по-прежнему могут находиться в ~/.openclaw/agents/<agentId>/sessions/ в качестве входных данных для миграции устаревшего формата, удалённых или сброшенных архивов, импорта, экспорта и материалов для поддержки. Активная история агента хранится в SQLite вместе со строками сеансов. Идентификатор сеанса стабилен и выбирается OpenClaw. OpenClaw не считывает папки сеансов других инструментов.

Управление во время потоковой передачи

Входящие промпты, поступившие во время выполнения, по умолчанию направляются в текущий запуск. Управляющее сообщение доставляется после того, как текущий ход ассистента завершит выполнение своих вызовов инструментов, но до следующего вызова LLM, и больше не приводит к пропуску оставшихся вызовов инструментов из текущего сообщения ассистента.

/queue steer — поведение по умолчанию для активного запуска. /queue followup и /queue collect заставляют сообщения ожидать следующего хода вместо направления в текущий запуск. /queue interrupt вместо этого прерывает активный запуск. Поведение очереди и её границ описано в разделах Очередь и Очередь управляющих сообщений.

При потоковой передаче блоков завершённые блоки ассистента отправляются сразу после их формирования; по умолчанию эта функция отключена (agents.defaults.blockStreamingDefault: "off"). Настройте границу с помощью agents.defaults.blockStreamingBreak (text_end или message_end; значение по умолчанию — text_end). Управляйте гибким разбиением на блоки с помощью agents.defaults.blockStreamingChunk (по умолчанию 800-1200 символов; предпочтительно разделение по абзацам, затем по переводам строк и в последнюю очередь по предложениям). Объединяйте потоковые фрагменты с помощью agents.defaults.blockStreamingCoalesce, чтобы сократить поток однострочных сообщений (объединение перед отправкой на основе периода бездействия). Для каналов, отличных от Telegram, требуется явно задать *.streaming.block.enabled: true, чтобы включить ответы блоками (QQ Bot вместо этого передаёт ответы блоками в потоковом режиме, если channels.qqbot.streaming.mode не имеет значения "off"). Подробные сводки по инструментам выводятся при запуске инструмента (без задержки); Control UI передаёт вывод инструментов через события агента, когда они доступны. Подробнее: Потоковая передача и разбиение на фрагменты.

Ссылки на модели

Ссылки на модели в конфигурации (например, agents.defaults.model и agents.defaults.models) разбираются путём разделения по первому /.

  • При настройке моделей используйте provider/model.
  • Если сам идентификатор модели содержит / (в стиле OpenRouter), укажите префикс поставщика (пример: openrouter/moonshotai/kimi-k2).
  • Если поставщик не указан, OpenClaw сначала пытается найти псевдоним, затем — уникальное совпадение среди настроенных поставщиков для этого точного идентификатора модели, и только после этого возвращается к настроенному поставщику по умолчанию. Если этот поставщик больше не предоставляет настроенную модель по умолчанию, OpenClaw использует первую настроенную пару поставщика и модели вместо выдачи устаревшего значения по умолчанию для удалённого поставщика.

Конфигурация (минимальная)

Как минимум задайте:

  • agents.defaults.workspace
  • channels.whatsapp.allowFrom (настоятельно рекомендуется)

Связанные разделы

Was this useful?
On this page

On this page