Fundamentals
Среды выполнения агентов
Среда выполнения агента управляет одним подготовленным циклом модели: она получает промпт, управляет выводом модели, обрабатывает нативные вызовы инструментов и возвращает завершённый ход в OpenClaw.
Среды выполнения легко спутать с провайдерами, поскольку и те и другие фигурируют рядом с конфигурацией модели. Это разные уровни:
| Уровень | Примеры | Назначение |
|---|---|---|
| Провайдер | anthropic, github-copilot, openai |
Определяет, как OpenClaw выполняет аутентификацию, обнаруживает модели и именует ссылки на них. |
| Модель | claude-opus-4-6, gpt-5.6-sol |
Модель, выбранная для хода агента. |
| Среда выполнения агента | claude-cli, codex, copilot, openclaw |
Низкоуровневый цикл или бэкенд, выполняющий подготовленный ход. |
| Канал | Discord, Slack, Telegram, WhatsApp | Канал, через который сообщения поступают в OpenClaw и отправляются из него. |
Средство выполнения — это реализация, предоставляющая среду выполнения агента
(термин в коде). Например, встроенное средство выполнения Codex реализует среду выполнения codex.
В общедоступной конфигурации используется agentRuntime.id в записях провайдера или модели; ключи
среды выполнения на уровне всего агента устарели и игнорируются. openclaw doctor --fix удаляет старые
закрепления среды выполнения на уровне всего агента и преобразует устаревшие ссылки на модели среды выполнения
в канонические ссылки провайдер/модель, а при необходимости добавляет политику среды выполнения
на уровне модели.
Два семейства сред выполнения:
- Встроенные средства выполнения работают внутри подготовленного цикла агента OpenClaw:
встроенная среда выполнения
openclaw, а также зарегистрированные средства выполнения плагинов, напримерcodexиcopilot. - CLI-бэкенды запускают локальный процесс CLI, сохраняя каноническую
ссылку на модель. Например,
anthropic/claude-opus-4-8с параметромagentRuntime.id: "claude-cli"на уровне модели означает: «выбрать модель Anthropic и выполнить через Claude CLI».claude-cliне является идентификатором встроенного средства выполнения, и его нельзя передавать при выборе AgentHarness.
Средство выполнения copilot — это отдельное подключаемое внешнее средство выполнения плагина для
GitHub Copilot CLI; описание выбора между PI, Codex и средой выполнения агента GitHub Copilot
с точки зрения пользователя см. в разделе Среда выполнения агента GitHub Copilot.
Интерфейсы Codex
Название Codex используется в нескольких интерфейсах:
| Интерфейс | Название/конфигурация OpenClaw | Назначение |
|---|---|---|
| Нативная среда выполнения app-server Codex | Ссылки на модели openai/* |
Выполняет встроенные ходы агента OpenAI через app-server Codex. Это обычная конфигурация подписки ChatGPT/Codex. |
| Профили аутентификации Codex OAuth | Профили OAuth openai |
Хранят данные аутентификации подписки ChatGPT/Codex, используемые средством выполнения app-server Codex. |
| Адаптер Codex ACP | runtime: "acp", agentId: "codex" |
Запускает Codex через внешнюю плоскость управления ACP/acpx. Используйте только при явном запросе ACP/acpx. |
| Нативный набор команд управления чатом Codex | /codex ... |
Привязывает, возобновляет, направляет, останавливает и проверяет потоки app-server Codex из чата. |
| Маршрут OpenAI Platform API для неагентских интерфейсов | openai/* и аутентификация по ключу API |
Прямые API OpenAI, например для изображений, эмбеддингов, речи и взаимодействия в реальном времени. |
Эти интерфейсы намеренно независимы. Включение плагина codex
делает доступными нативные возможности app-server; openclaw doctor --fix отвечает за
исправление устаревших маршрутов Codex и очистку устаревших закреплений сеансов. Выбор openai/*
для модели агента теперь означает «выполнить это через Codex», если не используется
неагентский интерфейс OpenAI API.
В обычной конфигурации подписки ChatGPT/Codex для аутентификации используется Codex OAuth,
но ссылка на модель остаётся openai/*, а средой выполнения выбирается codex:
{ agents: { defaults: { model: "openai/gpt-5.6-sol", }, },}Это означает, что OpenClaw выбирает ссылку на модель OpenAI, а затем поручает среде выполнения app-server Codex выполнить встроенный ход агента. Это не означает «использовать тарификацию API», а канал, каталог моделей провайдера и хранилище сеансов OpenClaw не становятся Codex.
Когда встроенный плагин codex включён, используйте нативный интерфейс команд /codex
(/codex bind, /codex threads, /codex resume, /codex steer,
/codex stop) для управления Codex на естественном языке вместо ACP. Используйте ACP для
Codex только при явном запросе ACP/acpx или при тестировании пути
адаптера ACP. Claude Code, Gemini CLI, OpenCode, Cursor и аналогичные внешние
средства выполнения по-прежнему используют ACP.
Дерево решений:
- Привязка/управление/поток/возобновление/направление/остановка Codex -> нативный интерфейс команд
/codex, когда включён встроенный плагинcodex. - Codex как встроенная среда выполнения или обычный интерфейс агента Codex на основе подписки ->
openai/<model>. - OpenClaw явно выбран для модели OpenAI -> сохраните ссылку на модель как
openai/<model>и задайте для политики среды выполнения провайдера/модели значениеagentRuntime.id: "openclaw". Выбранный профиль OAuthopenaiвнутренне направляется через транспорт аутентификации Codex в OpenClaw. - Устаревшие ссылки на модели Codex в конфигурации -> исправьте с помощью
openclaw doctor --fix, преобразовав вopenai/<model>; doctor сохраняет маршрут аутентификации Codex, добавляяagentRuntime.id: "codex"на уровне провайдера/модели там, где на него указывала старая ссылка на модель. Устаревшие ссылки на моделиcodex-cli/*преобразуются в тот же маршрут app-server Codexopenai/<model>; OpenClaw больше не содержит встроенный CLI-бэкенд Codex. - Явно запрошен ACP, acpx или адаптер Codex ACP ->
runtime: "acp"иagentId: "codex". - Claude Code, Gemini CLI, OpenCode, Cursor, Droid или другое внешнее средство выполнения -> ACP/acpx, а не нативная среда выполнения субагента.
| Вы имеете в виду... | Используйте... |
|---|---|
| Управление чатом/потоком app-server Codex | /codex ... из встроенного плагина codex |
| Встроенную среду выполнения агента app-server Codex | Ссылки на модели агента openai/* |
| OpenAI Codex OAuth | Профили OAuth openai |
| Claude Code или другое внешнее средство выполнения | ACP/acpx |
Описание разделения префиксов семейства OpenAI см. в разделах OpenAI и Провайдеры моделей. Контракт поддержки среды выполнения Codex см. в разделе Среда выполнения средства Codex.
Владение средой выполнения
Разные среды выполнения управляют разными частями цикла:
| Интерфейс | Встроенная среда OpenClaw | App-server Codex |
|---|---|---|
| Владелец цикла модели | OpenClaw через встроенный исполнитель OpenClaw | App-server Codex |
| Каноническое состояние потока | Расшифровка диалога OpenClaw | Поток Codex и зеркало расшифровки диалога OpenClaw |
| Динамические инструменты OpenClaw | Нативный цикл инструментов OpenClaw | Передаются через адаптер Codex |
| Нативные инструменты оболочки и файлов | Путь OpenClaw | Нативные инструменты Codex, передаваемые через нативные хуки, где это поддерживается |
| Механизм контекста | Нативная сборка контекста OpenClaw | OpenClaw проецирует собранный контекст в ход Codex |
| Compaction | OpenClaw или выбранный механизм контекста | Нативная Compaction Codex с уведомлениями OpenClaw и обслуживанием зеркала |
| Доставка через канал | OpenClaw | OpenClaw |
Правило проектирования: если интерфейсом управляет OpenClaw, он может обеспечивать обычное поведение хуков плагинов. Если интерфейсом управляет нативная среда выполнения, OpenClaw требуются события среды выполнения или нативные хуки. Если нативная среда выполнения управляет каноническим состоянием потока, OpenClaw зеркалирует и проецирует контекст, а не изменяет неподдерживаемые внутренние механизмы.
Выбор среды выполнения
OpenClaw разрешает встроенную среду выполнения после разрешения провайдера и модели в следующем порядке:
- Политика среды выполнения на уровне модели имеет приоритет. Она находится в настроенной записи модели
провайдера либо в
agents.defaults.models["provider/model"].agentRuntime/agents.list[].models["provider/model"].agentRuntime. Подстановочный шаблон провайдера, напримерagents.defaults.models["vllm/*"].agentRuntime, применяется после точной политики модели, поэтому динамически обнаруженные модели провайдера могут совместно использовать одну среду выполнения, не переопределяя точечные исключения для отдельных моделей. - Политика среды выполнения на уровне провайдера:
models.providers.<provider>.agentRuntime. - Режим
auto: зарегистрированные среды выполнения плагинов могут заявлять поддержку пар провайдер/модель. - Если в режиме
autoникто не принимает ход, OpenClaw откатывается кopenclawкак к среде выполнения для совместимости. Используйте явный идентификатор среды выполнения, когда выполнение должно быть строгим.
Закрепления среды выполнения на уровне всего сеанса и всего агента игнорируются: OPENCLAW_AGENT_RUNTIME,
состояние сеанса agentHarnessId/agentRuntimeOverride, agents.defaults.agentRuntime
и agents.list[].agentRuntime. Выполните openclaw doctor --fix, чтобы удалить устаревшую
конфигурацию среды выполнения на уровне всего агента и преобразовать устаревшие ссылки на модели среды выполнения
там, где исходное намерение можно сохранить.
Явно заданные среды выполнения плагинов на уровне провайдера/модели завершаются с ошибкой при несовпадении:
agentRuntime.id: "codex" для провайдера или модели означает Codex либо понятную ошибку выбора/среды выполнения —
маршрутизация обратно в OpenClaw никогда не выполняется без уведомления. Только auto может направить
неподходящий ход в OpenClaw.
Псевдонимы CLI-бэкендов отличаются от идентификаторов встроенных средств выполнения. Предпочтительная форма Claude CLI:
{ agents: { defaults: { model: "anthropic/claude-opus-4-8", models: { "anthropic/claude-opus-4-8": { agentRuntime: { id: "claude-cli" }, }, }, }, },}Устаревшие ссылки, такие как claude-cli/claude-opus-4-7, продолжают поддерживаться
для совместимости, но в новой конфигурации следует сохранять канонические провайдер/модель,
а бэкенд выполнения указывать в политике среды выполнения провайдера/модели.
Устаревшие ссылки codex-cli/* отличаются: doctor преобразует их в openai/*, чтобы
они выполнялись через средство app-server Codex, а не сохраняли CLI-бэкенд Codex.
Режим auto намеренно консервативен для большинства провайдеров. Агентские модели OpenAI
являются исключением: как отсутствие среды выполнения, так и auto разрешаются в средство
Codex. Явная конфигурация среды выполнения OpenClaw остаётся совместимым маршрутом, включаемым
по желанию для ходов агента openai/*; при использовании с выбранным профилем OAuth openai
OpenClaw внутренне направляет этот путь через транспорт аутентификации Codex,
сохраняя общедоступную ссылку на модель как openai/*. Устаревшие закрепления среды выполнения
сеансов OpenAI игнорируются при выборе среды выполнения и могут быть удалены с помощью
openclaw doctor --fix.
Если openclaw doctor предупреждает, что плагин codex включён, а в конфигурации
остались устаревшие ссылки на модели Codex, считайте это устаревшим состоянием маршрутизации и выполните
openclaw doctor --fix, чтобы заменить их на openai/* со средой выполнения Codex.
Среда выполнения агента GitHub Copilot
Внешний плагин @openclaw/copilot регистрирует включаемую по запросу среду выполнения copilot,
работающую на базе GitHub Copilot CLI (@github/copilot-sdk). Она заявляет
канонический провайдер подписки github-copilot и никогда не выбирается
auto. Включите её для отдельной модели или провайдера через agentRuntime.id:
{ agents: { defaults: { model: "github-copilot/gpt-5.5", models: { "github-copilot/gpt-5.5": { agentRuntime: { id: "copilot" }, }, }, }, },}Обвязка заявляет свой провайдер, среду выполнения, ключ сеанса CLI и префикс
профиля аутентификации в extensions/copilot/doctor-contract-api.ts, который
автоматически загружает openclaw doctor. Сведения о конфигурации, аутентификации, зеркалировании транскриптов, Compaction,
декларативном контракте doctor и более широком выборе SDK между PI, Codex и Copilot
см. в разделе Среда выполнения агента GitHub Copilot.
Контракт совместимости
Если среда выполнения не является OpenClaw, в её документации должно быть указано, какие возможности OpenClaw она поддерживает:
| Вопрос | Почему это важно |
|---|---|
| Кто управляет циклом модели? | Определяет, где принимаются решения о повторных попытках, продолжении работы с инструментами и итоговом ответе. |
| Кто управляет канонической историей потока? | Определяет, может ли OpenClaw изменять историю или только зеркалировать её. |
| Работают ли динамические инструменты OpenClaw? | От этого зависят обмен сообщениями, сеансы, cron и инструменты, принадлежащие OpenClaw. |
| Работают ли хуки динамических инструментов? | Плагинам необходимы before_tool_call, after_tool_call и промежуточное ПО вокруг инструментов, принадлежащих OpenClaw. |
| Работают ли хуки нативных инструментов? | Оболочка, patch и инструменты среды выполнения требуют нативной поддержки хуков для применения политик и наблюдения. |
| Выполняется ли жизненный цикл движка контекста? | Плагины памяти и контекста зависят от этапов сборки, приёма данных, обработки после хода и Compaction. |
| Какие данные Compaction доступны? | Некоторым плагинам нужны только уведомления, другим — метаданные сохранённых и отброшенных данных. |
| Что намеренно не поддерживается? | Пользователям не следует предполагать эквивалентность OpenClaw там, где нативная среда выполнения управляет большим объёмом состояния. |
Контракт поддержки среды выполнения Codex описан в разделе Среда выполнения обвязки Codex.
Метки состояния
В выводе состояния могут отображаться метки Execution и Runtime. Рассматривайте их как
диагностические данные, а не как имена провайдеров:
- Ссылка на модель, например
openai/gpt-5.6-sol, обозначает выбранные провайдер и модель. - Идентификатор среды выполнения, например
codex, обозначает цикл, выполняющий ход. - Метка канала, например Telegram или Discord, обозначает, где происходит разговор.
Если для запуска указана неожиданная среда выполнения, сначала проверьте политику среды выполнения для выбранных провайдера и модели. Устаревшие закрепления среды выполнения сеанса больше не определяют маршрутизацию.