> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

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

**Среда выполнения агента** — это компонент, который владеет одним подготовленным модельным циклом: он
получает промпт, управляет выводом модели, обрабатывает нативные вызовы инструментов и возвращает
завершенный ход в OpenClaw.

Среды выполнения легко спутать с поставщиками, потому что оба слоя появляются рядом с
конфигурацией модели. Это разные уровни:

| Уровень                 | Примеры                                      | Что это значит                                                                         |
| ----------------------- | -------------------------------------------- | -------------------------------------------------------------------------------------- |
| Поставщик               | `openai`, `anthropic`, `github-copilot`      | Как OpenClaw выполняет аутентификацию, обнаруживает модели и именует ссылки на модели. |
| Модель                  | `gpt-5.5`, `claude-opus-4-6`                 | Модель, выбранная для хода агента.                                                     |
| Среда выполнения агента | `openclaw`, `codex`, `copilot`, `claude-cli` | Низкоуровневый цикл или бэкенд, который выполняет подготовленный ход.                  |
| Канал                   | Telegram, Discord, Slack, WhatsApp           | Где сообщения входят в OpenClaw и выходят из него.                                     |

В коде вы также встретите слово **harness**. Harness — это реализация,
которая предоставляет среду выполнения агента. Например, встроенный harness Codex
реализует среду выполнения `codex`. В публичной конфигурации используется `agentRuntime.id` в
записях поставщика или модели; ключи среды выполнения всего агента являются устаревшими и игнорируются.
`openclaw doctor --fix` удаляет старые привязки среды выполнения всего агента и переписывает
устаревшие ссылки на модели среды выполнения в канонические ссылки поставщик/модель плюс политики
среды выполнения на уровне модели, где это необходимо.

Есть два семейства сред выполнения:

* **Встроенные harness** работают внутри подготовленного агентного цикла OpenClaw. Сейчас это
  встроенная среда выполнения `openclaw` плюс зарегистрированные plugin harness, такие как
  `codex` и `copilot`.
* **CLI-бэкенды** запускают локальный CLI-процесс, сохраняя ссылку на модель
  канонической. Например, `anthropic/claude-opus-4-8` с
  политикой `agentRuntime.id: "claude-cli"` на уровне модели означает: «выбрать модель Anthropic,
  выполнить через Claude CLI». `claude-cli` не является идентификатором встроенного harness
  и не должен передаваться в выбор AgentHarness.

Harness `copilot` — это отдельный внешний plugin harness, включаемый явно, для
GitHub Copilot CLI; см. [среду выполнения агента GitHub Copilot](/ru/plugins/copilot)
для пользовательского выбора между PI, Codex и средой выполнения агента GitHub Copilot.

## Поверхности Codex

Большая часть путаницы возникает из-за нескольких разных поверхностей с именем Codex:

| Поверхность                                             | Имя/конфигурация OpenClaw                 | Что она делает                                                                                                  |
| ------------------------------------------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| Нативная среда выполнения app-server Codex              | ссылки на модели `openai/*`               | Запускает встроенные агентные ходы OpenAI через app-server Codex. Это обычная настройка подписки ChatGPT/Codex. |
| Профили аутентификации OAuth Codex                      | OAuth-профили `openai`                    | Хранит аутентификацию подписки ChatGPT/Codex, которую использует harness 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, таких как изображения, embeddings, речь и realtime.                         |

Эти поверхности намеренно независимы. Включение plugin `codex` делает
нативные функции app-server доступными; `openclaw doctor --fix` отвечает за исправление
устаревших устаревших маршрутов Codex и очистку устаревших привязок сессий. Выбор
`openai/*` для агентной модели теперь означает «запустить это через Codex», если не используется
неагентная поверхность OpenAI API.

Обычная настройка подписки ChatGPT/Codex использует OAuth Codex для аутентификации, но сохраняет
ссылку на модель как `openai/*` и выбирает среду выполнения `codex`:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  agents: {
    defaults: {
      model: "openai/gpt-5.5",
    },
  },
}
```

Это означает, что OpenClaw выбирает ссылку на модель OpenAI, а затем просит среду выполнения
app-server Codex запустить встроенный агентный ход. Это не означает «использовать API-биллинг» и
не означает, что канал, каталог поставщика моделей или хранилище сессий OpenClaw
становятся Codex.

Когда встроенный plugin `codex` включен, управление Codex на естественном языке
должно использовать нативную командную поверхность `/codex` (`/codex bind`, `/codex threads`,
`/codex resume`, `/codex steer`, `/codex stop`) вместо ACP. Используйте ACP для
Codex только когда пользователь явно просит ACP/acpx или тестирует путь
адаптера ACP. Claude Code, Gemini CLI, OpenCode, Cursor и похожие внешние
harness по-прежнему используют ACP.

Это дерево решений для агента:

1. Если пользователь просит **привязку/управление/поток/возобновление/направление/остановку Codex**, используйте
   нативную командную поверхность `/codex`, когда встроенный plugin `codex` включен.
2. Если пользователь просит **Codex как встроенную среду выполнения** или хочет обычный
   агентный опыт Codex на базе подписки, используйте `openai/<model>`.
3. Если пользователь явно выбирает **OpenClaw для модели OpenAI**, сохраните ссылку на модель
   как `openai/<model>` и задайте политику среды выполнения поставщика/модели как
   `agentRuntime.id: "openclaw"`. Выбранный OAuth-профиль `openai` маршрутизируется
   внутри через транспорт аутентификации Codex в OpenClaw.
4. Если устаревшая конфигурация все еще содержит **устаревшие ссылки на модели Codex**, исправьте ее на
   `openai/<model>` с помощью `openclaw doctor --fix`; doctor сохраняет маршрут аутентификации Codex,
   добавляя `agentRuntime.id: "codex"` на уровне поставщика/модели там, где
   старая ссылка на модель это подразумевала.
   Устаревшие **ссылки на модели `codex-cli/*`** исправляются в тот же маршрут app-server Codex
   `openai/<model>`; OpenClaw больше не сохраняет встроенный CLI-бэкенд Codex.
5. Если пользователь явно говорит **ACP**, **acpx** или **адаптер Codex ACP**, используйте
   ACP с `runtime: "acp"` и `agentId: "codex"`.
6. Если запрос относится к **Claude Code, Gemini CLI, OpenCode, Cursor, Droid или
   другому внешнему harness**, используйте ACP/acpx, а не нативную среду выполнения sub-agent.

| Вы имеете в виду...                                         | Используйте...                              |
| ----------------------------------------------------------- | ------------------------------------------- |
| Управление чатом/потоком сервера приложения Codex           | `/codex ...` из встроенного плагина `codex` |
| Встроенная среда выполнения агента сервера приложения Codex | ссылки на модели агента `openai/*`          |
| OpenAI Codex OAuth                                          | OAuth-профили `openai`                      |
| Claude Code или другая внешняя обвязка                      | ACP/acpx                                    |

О разделении префиксов семейства OpenAI см. [OpenAI](/ru/providers/openai) и
[поставщики моделей](/ru/concepts/model-providers). Контракт поддержки среды выполнения Codex см. в разделе
[Среда выполнения обвязки Codex](/ru/plugins/codex-harness-runtime#v1-support-contract).

## Владение средой выполнения

Разные среды выполнения владеют разными частями цикла.

| Поверхность                         | Встроенная OpenClaw                       | Сервер приложения Codex                                                                  |
| ----------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------- |
| Владелец цикла модели               | OpenClaw через встроенный runner OpenClaw | Сервер приложения Codex                                                                  |
| Каноническое состояние потока       | Транскрипт OpenClaw                       | Поток Codex плюс зеркальная копия транскрипта OpenClaw                                   |
| Динамические инструменты OpenClaw   | Нативный цикл инструментов OpenClaw       | Передаются через адаптер Codex                                                           |
| Нативные инструменты shell и файлов | Путь OpenClaw                             | Нативные инструменты Codex, передаваемые через нативные хуки там, где это поддерживается |
| Движок контекста                    | Нативная сборка контекста OpenClaw        | OpenClaw проецирует собранный контекст в ход Codex                                       |
| Compaction                          | OpenClaw или выбранный движок контекста   | Нативная compaction Codex, с уведомлениями OpenClaw и поддержкой зеркала                 |
| Доставка в каналы                   | OpenClaw                                  | OpenClaw                                                                                 |

Это разделение владения является главным правилом проектирования:

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

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

OpenClaw выбирает встроенную среду выполнения после разрешения поставщика и модели:

1. Политика среды выполнения на уровне модели имеет приоритет. Она может находиться в настроенной
   записи модели поставщика или в `agents.defaults.models["provider/model"].agentRuntime` /
   `agents.list[].models["provider/model"].agentRuntime`. Подстановочный шаблон поставщика,
   например `agents.defaults.models["vllm/*"].agentRuntime`, применяется после точной
   политики модели, поэтому динамически обнаруженные модели поставщика могут совместно использовать одну
   среду выполнения, не переопределяя точные исключения для отдельных моделей.
2. Следующей применяется политика среды выполнения на уровне поставщика в
   `models.providers.<provider>.agentRuntime`.
3. В режиме `auto` зарегистрированные среды выполнения плагинов могут заявлять поддерживаемые пары
   поставщик/модель.
4. Если в режиме `auto` ни одна среда выполнения не заявляет ход, OpenClaw использует `openclaw` как
   среду выполнения совместимости. Используйте явный идентификатор среды выполнения, когда запуск должен быть
   строгим.

Закрепления среды выполнения на весь сеанс и на всего агента игнорируются. Это включает
`OPENCLAW_AGENT_RUNTIME`, состояние сеанса `agentHarnessId`/`agentRuntimeOverride`,
`agents.defaults.agentRuntime` и `agents.list[].agentRuntime`. Запустите
`openclaw doctor --fix`, чтобы удалить устаревшую конфигурацию среды выполнения на уровне всего агента и преобразовать
устаревшие ссылки на модели среды выполнения там, где OpenClaw может сохранить намерение.

Явные среды выполнения плагинов для поставщика/модели завершаются закрыто при ошибке. Например,
`agentRuntime.id: "codex"` для поставщика или модели означает Codex или понятную
ошибку выбора/среды выполнения; такой ход никогда не перенаправляется молча обратно в OpenClaw.

Псевдонимы backend CLI отличаются от идентификаторов встроенной обвязки. Предпочтительная
форма Claude CLI:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  agents: {
    defaults: {
      model: "anthropic/claude-opus-4-8",
      models: {
        "anthropic/claude-opus-4-8": {
          agentRuntime: { id: "claude-cli" },
        },
      },
    },
  },
}
```

Устаревшие ссылки, такие как `claude-cli/claude-opus-4-7`, остаются поддерживаемыми для
совместимости, но новая конфигурация должна сохранять канонические поставщика/модель и помещать
backend выполнения в политику среды выполнения поставщика/модели.

Устаревшие ссылки `codex-cli/*` отличаются: doctor мигрирует их в `openai/*`, чтобы
они выполнялись через обвязку сервера приложения Codex, а не сохраняли backend Codex CLI.

Режим `auto` намеренно консервативен для большинства поставщиков. Модели агентов OpenAI
являются исключением: ненастроенная среда выполнения и `auto` оба разрешаются в обвязку Codex.
Явная конфигурация среды выполнения OpenClaw остается маршрутом совместимости с явным включением для
ходов агента `openai/*`; в сочетании с выбранным OAuth-профилем `openai`
OpenClaw внутренне направляет этот путь через транспорт авторизации Codex, сохраняя
публичную ссылку на модель как `openai/*`. Устаревшие закрепления сеанса среды выполнения OpenAI
игнорируются выбором среды выполнения и могут быть очищены с помощью `openclaw doctor --fix`.

Если `openclaw doctor` предупреждает, что Plugin `codex` включен, пока
устаревшие ссылки на модели Codex остаются в конфигурации, считайте это устаревшим состоянием маршрута. Запустите
`openclaw doctor --fix`, чтобы переписать его на `openai/*` со средой выполнения Codex.

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

Внешний Plugin `@openclaw/copilot` регистрирует подключаемую вручную среду выполнения `copilot`,
основанную на GitHub Copilot CLI (`@github/copilot-sdk`). Он объявляет
канонический провайдер подписки `github-copilot` и **никогда** не выбирается через
`auto`. Подключайте его для отдельной модели или провайдера через `agentRuntime.id`:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  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](/ru/plugins/copilot).

## Контракт совместимости

Когда среда выполнения не является OpenClaw, она должна документировать, какие поверхности OpenClaw поддерживает.
Используйте эту структуру для документации среды выполнения:

| Вопрос                                          | Почему это важно                                                                                                                   |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| Кто владеет циклом модели?                      | Определяет, где выполняются повторные попытки, продолжение инструментов и принятие решений по финальному ответу.                   |
| Кто владеет канонической историей треда?        | Определяет, может ли OpenClaw редактировать историю или только зеркалировать ее.                                                   |
| Работают ли динамические инструменты OpenClaw?  | Обмен сообщениями, сеансы, Cron и инструменты, принадлежащие OpenClaw, зависят от этого.                                           |
| Работают ли хуки динамических инструментов?     | Для Plugin ожидаются `before_tool_call`, `after_tool_call` и middleware вокруг инструментов, принадлежащих OpenClaw.               |
| Работают ли хуки нативных инструментов?         | Shell, patch и инструменты, принадлежащие среде выполнения, требуют поддержки нативных хуков для политик и наблюдения.             |
| Запускается ли жизненный цикл движка контекста? | Plugin памяти и контекста зависят от жизненного цикла assemble, ingest, after-turn и Compaction.                                   |
| Какие данные Compaction раскрываются?           | Некоторым Plugin нужны только уведомления, а другим нужны метаданные о сохраненном и отброшенном.                                  |
| Что намеренно не поддерживается?                | Пользователи не должны предполагать эквивалентность OpenClaw там, где нативная среда выполнения владеет большим объемом состояния. |

Контракт поддержки среды выполнения Codex задокументирован в
[среда выполнения среды Codex](/ru/plugins/codex-harness-runtime#v1-support-contract).

## Метки состояния

Вывод состояния может показывать метки `Execution` и `Runtime`. Воспринимайте их как
диагностику, а не как имена провайдеров.

* Ссылка на модель, например `openai/gpt-5.5`, указывает выбранного провайдера/модель.
* Идентификатор среды выполнения, например `codex`, указывает, какой цикл выполняет ход.
* Метка канала, например Telegram или Discord, указывает, где происходит разговор.

Если запуск по-прежнему показывает неожиданную среду выполнения, сначала проверьте политику среды выполнения
выбранного провайдера/модели. Устаревшие привязки среды выполнения сеанса больше не определяют маршрутизацию.

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

* [Среда Codex](/ru/plugins/codex-harness)
* [Среда выполнения среды Codex](/ru/plugins/codex-harness-runtime)
* [Среда выполнения агента GitHub Copilot](/ru/plugins/copilot)
* [OpenAI](/ru/providers/openai)
* [Plugin сред агента](/ru/plugins/sdk-agent-harness)
* [Цикл агента](/ru/concepts/agent-loop)
* [Модели](/ru/concepts/models)
* [Статус](/ru/cli/status)
