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 относительно корня пакета:
{ "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.