Codex harness

Нативні плагіни Codex

Вбудована підтримка Plugin Codex дає агенту OpenClaw у режимі Codex змогу використовувати власні можливості застосунків і Plugin app-server Codex у тому самому потоці Codex, який обробляє хід OpenClaw.

OpenClaw не перетворює Plugin Codex на синтетичні динамічні інструменти OpenClaw codex_plugin_*. Виклики Plugin залишаються у вбудованому транскрипті Codex, а Codex app-server володіє виконанням MCP на базі застосунків.

Використовуйте цю сторінку після того, як базовий механізм Codex запрацює.

Вимоги

  • Вибране середовище виконання агента OpenClaw має бути вбудованим механізмом Codex.
  • plugins.entries.codex.enabled має бути true.
  • plugins.entries.codex.config.codexPlugins.enabled має бути true.
  • V1 підтримує лише Plugin openai-curated, які міграція виявила як установлені з джерела в початковому домашньому каталозі Codex.
  • Цільовий Codex app-server має бачити очікуваний marketplace, Plugin і інвентар застосунків.

codexPlugins не впливає на запуски PI, звичайні запуски постачальника OpenAI, прив’язки розмов ACP або інші механізми, оскільки ці шляхи не створюють потоки Codex app-server із вбудованою конфігурацією apps.

Швидкий старт

Попередньо перегляньте міграцію з початкового домашнього каталогу Codex:

openclaw migrate codex --dry-run

Використовуйте сувору перевірку початкового застосунку, коли потрібно, щоб міграція перевірила доступність початкового застосунку перед плануванням вбудованої активації Plugin:

openclaw migrate codex --dry-run --verify-plugin-apps

Застосуйте міграцію, коли план має правильний вигляд:

openclaw migrate apply codex --yes

Міграція записує явні записи codexPlugins для придатних Plugin і викликає Codex app-server plugin/install для вибраних Plugin. Типова перенесена конфігурація має такий вигляд:

{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          codexPlugins: {
            enabled: true,
            allow_destructive_actions: true,
            plugins: {
              "google-calendar": {
                enabled: true,
                marketplaceName: "openai-curated",
                pluginName: "google-calendar",
              },
            },
          },
        },
      },
    },
  },
}

Після зміни codexPlugins використайте /new, /reset або перезапустіть Gateway, щоб майбутні сеанси механізму Codex стартували з оновленим набором застосунків.

Як працює вбудоване налаштування Plugin

Інтеграція має три окремі стани:

  • Установлено: Codex має локальний пакет Plugin у цільовому середовищі виконання app-server.
  • Увімкнено: конфігурація OpenClaw готова зробити Plugin доступним для ходів механізму Codex.
  • Доступно: Codex app-server підтверджує, що записи застосунку Plugin доступні для активного облікового запису й можуть бути зіставлені з перенесеною ідентичністю Plugin.

Міграція є довговічним кроком установлення й перевірки придатності. Під час планування OpenClaw зчитує деталі початкового Codex plugin/read і перевіряє, що відповідь облікового запису початкового Codex app-server є обліковим записом із підпискою ChatGPT. Відповіді облікового запису, які не належать до ChatGPT або відсутні, пропускають Plugin на базі застосунків із codex_subscription_required. За замовчуванням міграція не викликає початковий app/list; початкові Plugin на базі застосунків, які проходять перевірку облікового запису, плануються без перевірки доступності початкового застосунку, а транспортні помилки пошуку облікового запису пропускаються з codex_account_unavailable. З --verify-plugin-apps міграція створює свіжий знімок початкового app/list і вимагає, щоб кожен належний застосунок був наявним, увімкненим і доступним перед плануванням вбудованої активації. У цьому режимі транспортні помилки пошуку облікового запису передаються до початкової перевірки інвентарю застосунків. Інвентар застосунків середовища виконання є перевіркою доступності цільового сеансу після міграції. Потім налаштування сеансу механізму Codex обчислює обмежувальну конфігурацію застосунків потоку для увімкнених і доступних застосунків Plugin.

Конфігурація застосунків потоку обчислюється, коли OpenClaw установлює сеанс механізму Codex або замінює застарілу прив’язку потоку Codex. Вона не переобчислюється на кожному ході.

Межі підтримки V1

V1 навмисно вузька:

  • Лише Plugin openai-curated, які вже були встановлені в інвентарі початкового Codex app-server, придатні для міграції.
  • Початкові Plugin на базі застосунків мають пройти перевірку підписки під час міграції. --verify-plugin-apps додає перевірку початкового інвентарю застосунків. Облікові записи, обмежені підпискою, а в режимі перевірки також недоступні, вимкнені, відсутні початкові застосунки або помилки оновлення початкового інвентарю застосунків повідомляються як пропущені ручні елементи замість увімкнених записів конфігурації. Нечитабельні деталі Plugin пропускаються перед перевіркою початкового інвентарю застосунків.
  • Міграція записує явні ідентичності Plugin із marketplaceName і pluginName; вона не записує локальні шляхи кешу marketplacePath.
  • codexPlugins.enabled є глобальним перемикачем увімкнення.
  • Немає wildcard plugins["*"] і немає ключа конфігурації, який надає довільні права на встановлення.
  • Непідтримувані marketplace, кешовані пакети Plugin, хуки й файли конфігурації Codex зберігаються у звіті міграції для ручного перегляду.

Інвентар застосунків і власність

OpenClaw зчитує інвентар застосунків Codex через app-server app/list, кешує його на одну годину й асинхронно оновлює застарілі або відсутні записи. Кеш існує лише в пам’яті; перезапуск CLI або Gateway скидає його, і OpenClaw перебудовує його з наступного читання app/list.

Міграція й середовище виконання використовують окремі ключі кешу:

  • Перевірка початкової міграції використовує початковий домашній каталог Codex і початкові параметри запуску app-server. Це виконується лише коли задано --verify-plugin-apps, і примусово запускає свіжий обхід початкового app/list для цього планування.
  • Налаштування цільового середовища виконання використовує ідентичність Codex app-server цільового агента, коли будує конфігурацію застосунків потоку Codex. Активація Plugin інвалідовує цей цільовий ключ кешу, а потім примусово оновлює його після plugin/install.

Застосунок Plugin відкривається лише тоді, коли OpenClaw може зіставити його назад із перенесеним Plugin через стабільну власність:

  • точний ідентифікатор застосунку з деталей Plugin
  • відома назва MCP-сервера
  • унікальні стабільні метадані

Зіставлення лише за відображуваною назвою або неоднозначна власність виключаються, доки наступне оновлення інвентарю не підтвердить власність.

Конфігурація застосунків потоку

OpenClaw впроваджує обмежувальний патч config.apps для потоку Codex: _default вимкнено, і ввімкнено лише застосунки, що належать увімкненим перенесеним Plugin.

OpenClaw задає на рівні застосунку destructive_enabled з ефективної глобальної або індивідуальної для Plugin політики allow_destructive_actions і дозволяє Codex застосовувати метадані деструктивних інструментів із його вбудованих анотацій інструментів застосунку. Конфігурацію застосунку _default вимкнено з open_world_enabled: false. Увімкнені застосунки Plugin виводяться з open_world_enabled: true; OpenClaw не надає окремого перемикача політики відкритого світу для Plugin і не підтримує окремі для Plugin списки заборони назв деструктивних інструментів.

Режим схвалення інструментів за замовчуванням автоматичний для застосунків Plugin, щоб недеструктивні інструменти читання могли працювати без UI схвалення в тому самому потоці. Деструктивні інструменти залишаються під контролем політики destructive_enabled кожного застосунку.

Політика деструктивних дій

Деструктивні запити Plugin дозволені за замовчуванням для перенесених Plugin Codex, тоді як небезпечні схеми й неоднозначна власність усе одно закриваються безпечно:

  • Глобальне allow_destructive_actions за замовчуванням дорівнює true.
  • Індивідуальне для Plugin allow_destructive_actions перевизначає глобальну політику для цього Plugin.
  • Коли політика дорівнює false, OpenClaw повертає детерміновану відмову.
  • Коли політика дорівнює true, OpenClaw автоматично приймає лише безпечні схеми, які може зіставити з відповіддю схвалення, наприклад булеве поле approve.
  • Відсутня ідентичність Plugin, неоднозначна власність, відсутній ідентифікатор ходу, неправильний ідентифікатор ходу або небезпечна схема запиту призводять до відмови замість запиту підтвердження.

Усунення несправностей

auth_required: міграція встановила Plugin, але один із його застосунків усе ще потребує автентифікації. Явний запис Plugin записується вимкненим, доки ви повторно не авторизуєтеся й не ввімкнете його.

app_inaccessible, app_disabled або app_missing: міграція не встановила Plugin, тому що інвентар застосунків початкового Codex не показав усі належні застосунки як наявні, увімкнені й доступні, коли було задано --verify-plugin-apps. Повторно авторизуйте або ввімкніть застосунок у Codex, потім повторно запустіть міграцію з --verify-plugin-apps.

app_inventory_unavailable: міграція не встановила Plugin, тому що було запитано сувору перевірку початкового застосунку, а оновлення інвентарю застосунків початкового Codex не вдалося. Виправте доступ до початкового Codex app-server або повторіть спробу без --verify-plugin-apps, якщо приймаєте швидший план із перевіркою облікового запису.

codex_subscription_required: міграція не встановила Plugin на базі застосунку, тому що обліковий запис початкового Codex app-server не був увійшов із обліковим записом підписки ChatGPT. Увійдіть у застосунок Codex із автентифікацією підписки, потім повторно запустіть міграцію.

codex_account_unavailable: міграція не встановила Plugin на базі застосунку, тому що обліковий запис початкового Codex app-server не вдалося прочитати. Виправте автентифікацію початкового Codex app-server або повторно запустіть із --verify-plugin-apps, якщо хочете, щоб інвентар початкового застосунку визначав придатність, коли пошук облікового запису не вдається.

marketplace_missing або plugin_missing: цільовий Codex app-server не бачить очікуваний marketplace або Plugin openai-curated. Повторно запустіть міграцію для цільового середовища виконання або перевірте стан Plugin Codex app-server.

app_inventory_missing або app_inventory_stale: готовність застосунків отримано з порожнього або застарілого кешу. OpenClaw планує асинхронне оновлення й виключає застосунки Plugin, доки власність і готовність не стануть відомими.

app_ownership_ambiguous: інвентар застосунків збігся лише за відображуваною назвою, тому застосунок не відкривається для потоку Codex.

Конфігурацію змінено, але агент не бачить Plugin: використайте /new, /reset або перезапустіть Gateway. Існуючі прив’язки потоків Codex зберігають конфігурацію застосунків, з якою вони стартували, доки OpenClaw не встановить новий сеанс механізму або не замінить застарілу прив’язку.

Деструктивну дію відхилено: перевірте глобальні та індивідуальні для Plugin значення allow_destructive_actions. Навіть коли політика істинна, небезпечні схеми запитів і неоднозначна ідентичність Plugin усе одно закриваються безпечно.

Пов’язане