Technical reference

Архитектура среды выполнения агента

OpenClaw владеет встроенной средой выполнения агента. Код среды выполнения находится в src/agents/, транспорт моделей и провайдеров — в src/llm/, а контракты для плагинов предоставляются через баррели openclaw/plugin-sdk/*.

Структура среды выполнения

Путь Назначение
src/agents/embedded-agent-runner/ Встроенный цикл попыток (run.ts, run/), выбор модели и нормализация провайдера (model*.ts), параметры запросов для каждого провайдера (extra-params.*), Compaction, связывание транскрипта и сеанса.
src/agents/sessions/ Сохранение сеансов (session-manager.ts), обнаружение ресурсов (package-manager.ts, resource-loader.ts), загрузка extensions в рамках сеанса, шаблоны промптов, Skills, темы и средства визуализации инструментов на базе TUI (tools/).
packages/agent-core/ Многократно используемое ядро агента (@openclaw/agent-core): цикл агента, типы каркаса, сообщения, вспомогательные средства Compaction, шаблоны промптов, Skills и контракты хранения сеансов.
src/agents/runtime/ Фасад OpenClaw, который подключает @openclaw/agent-core к среде выполнения LLM из SDK плагинов и повторно экспортирует её вместе с локальными утилитами прокси.
src/agents/agent-tools*.ts Определения инструментов, принадлежащие OpenClaw, схемы параметров, политика инструментов, адаптеры до и после вызова инструментов, а также инструменты редактирования хоста и песочницы.
src/agents/agent-hooks/ Встроенные хуки среды выполнения: защита Compaction, инструкции Compaction, сокращение контекста.
src/agents/harness/ Реестр каркасов, политика выбора и управление жизненным циклом встроенных и зарегистрированных плагинами каркасов.
src/llm/ Реестр моделей и провайдеров, вспомогательные средства транспорта и специфичные для провайдеров реализации потоковой передачи (src/llm/providers/).

Границы

Ядро вызывает встроенную среду выполнения через модули OpenClaw и баррели SDK; внешние пакеты фреймворков агентов больше не используются. Плагины используют документированные точки входа openclaw/plugin-sdk/* и не импортируют внутренние компоненты src/**.

@earendil-works/pi-tui остаётся сторонней зависимостью: это набор терминальных компонентов, используемый локальным TUI и средствами визуализации инструментов сеанса. Его включение во внутренний код потребовало бы отдельной работы по вендорингу.

Манифесты

Пакеты ресурсов объявляют ресурсы OpenClaw в метаданных package.json. Записи представляют собой пути к файлам или шаблоны glob относительно корня пакета:

json
{  "openclaw": {    "extensions": ["extensions/index.ts"],    "skills": ["skills/*.md"],    "prompts": ["prompts/*.md"],    "themes": ["themes/*.json"]  }}

Для типов ресурсов, не перечисленных в манифесте, используется обнаружение стандартных каталогов extensions/, skills/, prompts/ и themes/.

Выбор среды выполнения

  • Идентификатор встроенной среды выполнения — openclaw. Устаревший псевдоним pi нормализуется в openclaw; codex-app-server нормализуется в codex.
  • Каркасы плагинов регистрируют дополнительные идентификаторы сред выполнения (например, codex).
  • Политика среды выполнения задаётся конфигурацией agentRuntime.id в области модели или провайдера (запись модели имеет приоритет над записью провайдера). Неустановленное значение или default разрешается в auto.
  • auto выбирает зарегистрированный каркас плагина, поддерживающий действующий маршрут провайдера, а в противном случае — встроенную среду выполнения OpenClaw. Один лишь префикс провайдера или модели никогда не выбирает каркас.
  • OpenAI может неявно выбрать codex только для точного официального HTTPS-маршрута Platform Responses или ChatGPT Responses без явно заданного переопределения запроса. Адаптеры Completions, пользовательские конечные точки и маршруты с явно заданным поведением запроса остаются на openclaw; официальные конечные точки с незашифрованным HTTP отклоняются. См. Неявная среда выполнения агента OpenAI.

Связанные материалы

Was this useful?
On this page

On this page