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, а також зареєстровані обв'язки Plugin, як-отcodexіcopilot. - CLI-бекенди запускають локальний процес CLI, зберігаючи посилання на модель
канонічним. Наприклад,
anthropic/claude-opus-4-8із заданим на рівні моделіagentRuntime.id: "claude-cli"означає «вибрати модель Anthropic і виконати через Claude CLI».claude-cliне є ідентифікатором вбудованої обв'язки, і його не можна передавати під час вибору AgentHarness.
Обв'язка copilot — це окрема, зовнішня обв'язка Plugin із явним увімкненням для
GitHub Copilot CLI; див. середовище виконання агента GitHub Copilot, щоб
дізнатися про користувацький вибір між PI, Codex і середовищем виконання агента GitHub Copilot.
Поверхні Codex
Назву Codex використовують кілька поверхонь:
| Поверхня | Назва/конфігурація OpenClaw | Призначення |
|---|---|---|
| Нативне середовище виконання Codex app-server | посилання на моделі openai/* |
Виконує вбудовані ходи агента OpenAI через Codex app-server. Це звичайне налаштування передплати ChatGPT/Codex. |
| Профілі автентифікації Codex OAuth | профілі OAuth openai |
Зберігає дані автентифікації передплати ChatGPT/Codex, які використовує обв'язка Codex app-server. |
| Адаптер Codex ACP | runtime: "acp", agentId: "codex" |
Запускає Codex через зовнішню площину керування ACP/acpx. Використовуйте лише тоді, коли явно запитано ACP/acpx. |
| Нативний набір команд керування чатом Codex | /codex ... |
Прив'язує, відновлює, спрямовує, зупиняє та перевіряє потоки Codex app-server із чату. |
| Маршрут API OpenAI Platform для неагентних поверхонь | openai/* плюс автентифікація ключем API |
Прямі API OpenAI, як-от зображення, векторні подання, мовлення та взаємодія в реальному часі. |
Ці поверхні навмисно незалежні. Увімкнення Plugin codex
робить доступними нативні функції app-server; openclaw doctor --fix відповідає за
виправлення застарілих маршрутів Codex і очищення застарілих закріплень сеансів. Вибір openai/*
для моделі агента тепер означає «виконувати це через Codex», якщо не використовується
неагентна поверхня API OpenAI.
Типове налаштування передплати ChatGPT/Codex використовує Codex OAuth для автентифікації, але
зберігає посилання на модель у вигляді openai/* і вибирає середовище виконання codex:
{ agents: { defaults: { model: "openai/gpt-5.6-sol", }, },}Це означає, що OpenClaw вибирає посилання на модель OpenAI, а потім просить середовище виконання Codex app-server виконати вбудований хід агента. Це не означає «використовувати тарифікацію API» і не означає, що канал, каталог моделей провайдера або сховище сеансів OpenClaw стає частиною Codex.
Коли вбудований Plugin 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, коли вбудований Plugincodexувімкнено. - 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/*виправляються на той самий маршрут Codex app-serveropenai/<model>; OpenClaw більше не містить вбудованого бекенду Codex CLI. - Явно запитано ACP, acpx або адаптер Codex ACP ->
runtime: "acp"іagentId: "codex". - Claude Code, Gemini CLI, OpenCode, Cursor, Droid або інша зовнішня обв'язка -> ACP/acpx, а не нативне середовище виконання підагентів.
| Ви маєте на увазі... | Використовуйте... |
|---|---|
| Керування чатом/потоками Codex app-server | /codex ... із вбудованого Plugin codex |
| Вбудоване середовище виконання агента Codex app-server | посилання на моделі агента openai/* |
| OpenAI Codex OAuth | профілі OAuth openai |
| Claude Code або інша зовнішня обв'язка | ACP/acpx |
Про поділ префіксів родини OpenAI див. OpenAI і Провайдери моделей. Контракт підтримки середовища виконання Codex див. у розділі Середовище виконання обв'язки Codex.
Володіння середовищем виконання
Різні середовища виконання керують різними частинами циклу:
| Поверхня | Вбудоване середовище OpenClaw | Codex app-server |
|---|---|---|
| Власник циклу моделі | OpenClaw через вбудований засіб запуску OpenClaw | Codex app-server |
| Канонічний стан потоку | Транскрипт OpenClaw | Потік Codex плюс дзеркало транскрипту OpenClaw |
| Динамічні інструменти OpenClaw | Нативний цикл інструментів OpenClaw | Передаються через адаптер Codex |
| Нативні інструменти оболонки й файлів | Шлях OpenClaw | Нативні інструменти Codex, передані через нативні хуки там, де це підтримується |
| Рушій контексту | Нативне формування контексту OpenClaw | OpenClaw проєктує сформований контекст у хід Codex |
| Compaction | OpenClaw або вибраний рушій контексту | Нативна Compaction Codex зі сповіщеннями OpenClaw і підтриманням дзеркала |
| Доставлення через канал | OpenClaw | OpenClaw |
Правило проєктування: якщо поверхнею володіє OpenClaw, він може забезпечувати звичайну поведінку хуків Plugin. Якщо поверхнею володіє нативне середовище виконання, 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: зареєстровані середовища виконання Plugin можуть заявляти підтримувані пари провайдер/модель. - Якщо жодне середовище не приймає хід у режимі
auto, OpenClaw використовуєopenclawяк середовище виконання для сумісності. Використовуйте явний ідентифікатор середовища виконання, коли виконання має бути суворо визначеним.
Закріплення середовища виконання для всього сеансу й усього агента ігноруються: OPENCLAW_AGENT_RUNTIME,
стан сеансу agentHarnessId/agentRuntimeOverride, agents.defaults.agentRuntime
і agents.list[].agentRuntime. Запустіть openclaw doctor --fix, щоб видалити застарілу
конфігурацію середовища виконання для всього агента та перетворити застарілі посилання на моделі середовища виконання там, де намір
можна зберегти.
Явно задані середовища виконання Plugin для провайдера/моделі завершуються помилкою без резервного переходу: 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/*, щоб
вони виконувалися через обв'язку Codex app-server, а не зберігали бекенд 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:
{ 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. |
| Чи працюють перехоплювачі динамічних інструментів? | Plugins очікують before_tool_call, after_tool_call та проміжне ПЗ навколо інструментів, якими керує OpenClaw. |
| Чи працюють перехоплювачі нативних інструментів? | Оболонка, застосування латок та інструменти середовища виконання потребують підтримки нативних перехоплювачів для політик і спостереження. |
| Чи виконується життєвий цикл рушія контексту? | Plugins пам’яті й контексту залежать від життєвого циклу складання, приймання даних, обробки після ходу та Compaction. |
| Які дані Compaction доступні? | Деяким plugins потрібні лише сповіщення, іншим — метадані про збережені й відкинуті дані. |
| Що навмисно не підтримується? | Користувачі не повинні припускати повну відповідність OpenClaw, якщо нативне середовище виконання керує більшою частиною стану. |
Контракт підтримки середовища виконання Codex задокументовано в розділі Середовище виконання обв’язки Codex.
Мітки стану
У виводі стану можуть відображатися мітки Execution і Runtime. Сприймайте їх
як діагностичні дані, а не назви провайдерів:
- Посилання на модель, наприклад
openai/gpt-5.6-sol, — це вибраний провайдер і модель. - Ідентифікатор середовища виконання, наприклад
codex, — це цикл, який виконує хід. - Мітка каналу, наприклад Telegram або Discord, указує, де відбувається розмова.
Якщо для запуску відображається неочікуване середовище виконання, спочатку перевірте політику середовища виконання вибраного провайдера й моделі. Застарілі закріплення середовища виконання сеансу більше не визначають маршрутизацію.