Codex harness
Natywne Pluginy Codex
Natywna obsługa pluginów Codex pozwala agentowi OpenClaw w trybie Codex używać własnych możliwości aplikacji i pluginów app-server Codex w tym samym wątku Codex, który obsługuje turę OpenClaw.
OpenClaw nie tłumaczy pluginów Codex na syntetyczne dynamiczne narzędzia
OpenClaw codex_plugin_*. Wywołania pluginów pozostają w natywnym transkrypcie
Codex, a app-server Codex odpowiada za wykonanie MCP wspierane przez aplikację.
Użyj tej strony po uruchomieniu bazowego harnessu Codex.
Wymagania
- Wybranym środowiskiem wykonawczym agenta OpenClaw musi być natywny harness Codex.
plugins.entries.codex.enabledmusi mieć wartość true.plugins.entries.codex.config.codexPlugins.enabledmusi mieć wartość true.- V1 obsługuje tylko pluginy
openai-curated, które migracja zaobserwowała jako zainstalowane ze źródła w źródłowym katalogu domowym Codex. - Docelowy app-server Codex musi widzieć oczekiwany marketplace, plugin i inwentarz aplikacji.
codexPlugins nie ma wpływu na uruchomienia PI, zwykłe uruchomienia dostawcy
OpenAI, powiązania konwersacji ACP ani inne harnessy, ponieważ te ścieżki nie
tworzą wątków app-server Codex z natywną konfiguracją apps.
Szybki start
Podejrzyj migrację ze źródłowego katalogu domowego Codex:
openclaw migrate codex --dry-run
Użyj ścisłej weryfikacji aplikacji źródłowej, gdy chcesz, aby migracja sprawdziła dostępność aplikacji źródłowej przed zaplanowaniem natywnej aktywacji pluginu:
openclaw migrate codex --dry-run --verify-plugin-apps
Zastosuj migrację, gdy plan wygląda poprawnie:
openclaw migrate apply codex --yes
Migracja zapisuje jawne wpisy codexPlugins dla kwalifikujących się pluginów i
wywołuje plugin/install app-server Codex dla wybranych pluginów. Typowa
zmigrowana konfiguracja wygląda tak:
{
plugins: {
entries: {
codex: {
enabled: true,
config: {
codexPlugins: {
enabled: true,
allow_destructive_actions: true,
plugins: {
"google-calendar": {
enabled: true,
marketplaceName: "openai-curated",
pluginName: "google-calendar",
},
},
},
},
},
},
},
}
Po zmianie codexPlugins użyj /new, /reset albo zrestartuj Gateway, aby
przyszłe sesje harnessu Codex startowały ze zaktualizowanym zestawem aplikacji.
Jak działa natywna konfiguracja pluginów
Integracja ma trzy oddzielne stany:
- Zainstalowany: Codex ma lokalny pakiet pluginu w docelowym środowisku wykonawczym app-server.
- Włączony: konfiguracja OpenClaw zezwala na udostępnienie pluginu turom harnessu Codex.
- Dostępny: app-server Codex potwierdza, że wpisy aplikacji pluginu są dostępne dla aktywnego konta i można je zmapować na zmigrowaną tożsamość pluginu.
Migracja jest trwałym krokiem instalacji i kwalifikowalności. Podczas planowania
OpenClaw odczytuje szczegóły plugin/read źródłowego Codex i sprawdza, czy
odpowiedź konta źródłowego app-server Codex jest kontem subskrypcji ChatGPT.
Odpowiedzi kont innych niż ChatGPT lub brak odpowiedzi konta pomijają pluginy
wspierane przez aplikację z powodem codex_subscription_required. Domyślnie
migracja nie wywołuje źródłowego app/list; pluginy źródłowe wspierane przez
aplikację, które przechodzą bramkę konta, są planowane bez weryfikacji
dostępności aplikacji źródłowej, a błędy transportu wyszukiwania konta są
pomijane z powodem codex_account_unavailable. Z --verify-plugin-apps
migracja pobiera świeży snapshot źródłowego app/list i wymaga, aby każda
posiadana aplikacja była obecna, włączona i dostępna przed zaplanowaniem
natywnej aktywacji. W tym trybie błędy transportu wyszukiwania konta przechodzą
do bramki inwentarza aplikacji źródłowych. Inwentarz aplikacji w czasie
wykonania jest kontrolą dostępności sesji docelowej po migracji. Następnie
konfiguracja sesji harnessu Codex oblicza restrykcyjną konfigurację aplikacji
wątku dla włączonych i dostępnych aplikacji pluginów.
Konfiguracja aplikacji wątku jest obliczana, gdy OpenClaw ustanawia sesję harnessu Codex albo zastępuje przestarzałe powiązanie wątku Codex. Nie jest obliczana ponownie przy każdej turze.
Granica obsługi V1
V1 jest celowo wąska:
- Do migracji kwalifikują się tylko pluginy
openai-curated, które były już zainstalowane w inwentarzu źródłowego app-server Codex. - Pluginy źródłowe wspierane przez aplikację muszą przejść bramkę subskrypcji
w czasie migracji.
--verify-plugin-appsdodaje bramkę inwentarza aplikacji źródłowych. Konta objęte wymogiem subskrypcji oraz, w trybie weryfikacji, niedostępne, wyłączone, brakujące aplikacje źródłowe lub błędy odświeżania inwentarza aplikacji źródłowych są zgłaszane jako pominięte elementy ręczne zamiast włączonych wpisów konfiguracji. Nieczytelne szczegóły pluginów są pomijane przed bramką inwentarza aplikacji źródłowych. - Migracja zapisuje jawne tożsamości pluginów z
marketplaceNameipluginName; nie zapisuje lokalnych ścieżek pamięci podręcznejmarketplacePath. codexPlugins.enabledjest globalnym przełącznikiem włączenia.- Nie ma symbolu wieloznacznego
plugins["*"]ani klucza konfiguracji, który przyznaje arbitralne uprawnienia instalacji. - Nieobsługiwane marketplace'y, buforowane pakiety pluginów, hooki i pliki konfiguracji Codex są zachowywane w raporcie migracji do ręcznego przeglądu.
Inwentarz aplikacji i własność
OpenClaw odczytuje inwentarz aplikacji Codex przez app/list app-server, buforuje
go przez jedną godzinę i asynchronicznie odświeża przestarzałe lub brakujące
wpisy. Pamięć podręczna istnieje tylko w pamięci; restart CLI lub Gateway ją
usuwa, a OpenClaw odbudowuje ją z następnego odczytu app/list.
Migracja i czas wykonania używają oddzielnych kluczy pamięci podręcznej:
- Weryfikacja migracji źródłowej używa źródłowego katalogu domowego Codex i
opcji startowych źródłowego app-server. Działa to tylko wtedy, gdy ustawiono
--verify-plugin-apps, i wymusza świeże przejście po źródłowymapp/listdla danego przebiegu planowania. - Konfiguracja docelowego czasu wykonania używa tożsamości app-server Codex
docelowego agenta, gdy buduje konfigurację aplikacji wątku Codex. Aktywacja
pluginu unieważnia ten docelowy klucz pamięci podręcznej, a następnie wymusza
jego odświeżenie po
plugin/install.
Aplikacja pluginu jest ujawniana tylko wtedy, gdy OpenClaw może zmapować ją z powrotem na zmigrowany plugin przez stabilną własność:
- dokładny identyfikator aplikacji ze szczegółów pluginu
- znana nazwa serwera MCP
- unikalne stabilne metadane
Własność oparta wyłącznie na nazwie wyświetlanej lub niejednoznaczna jest wykluczana, dopóki następne odświeżenie inwentarza nie potwierdzi własności.
Konfiguracja aplikacji wątku
OpenClaw wstrzykuje restrykcyjną łatkę config.apps dla wątku Codex:
_default jest wyłączona i włączone są tylko aplikacje należące do włączonych
zmigrowanych pluginów.
OpenClaw ustawia destructive_enabled na poziomie aplikacji na podstawie
obowiązującej globalnej lub per-pluginowej polityki allow_destructive_actions
i pozwala Codex egzekwować metadane narzędzi destrukcyjnych z natywnych adnotacji
narzędzi aplikacji. Konfiguracja aplikacji _default jest wyłączona z
open_world_enabled: false. Włączone aplikacje pluginów są emitowane z
open_world_enabled: true; OpenClaw nie udostępnia osobnego pokrętła polityki
open-world dla pluginów i nie utrzymuje per-pluginowych list odmów nazw
narzędzi destrukcyjnych.
Tryb zatwierdzania narzędzi jest domyślnie automatyczny dla aplikacji pluginów,
aby niedestrukcyjne narzędzia odczytu mogły działać bez interfejsu zatwierdzania
w tym samym wątku. Narzędzia destrukcyjne pozostają kontrolowane przez politykę
destructive_enabled każdej aplikacji.
Polityka działań destrukcyjnych
Destrukcyjne wywołania pluginów wymagające elicitation są domyślnie dozwolone dla zmigrowanych pluginów Codex, natomiast niebezpieczne schematy i niejednoznaczna własność nadal są zamykane bezpiecznie:
- Globalne
allow_destructive_actionsdomyślnie ma wartośćtrue. - Per-pluginowe
allow_destructive_actionszastępuje globalną politykę dla tego pluginu. - Gdy polityka ma wartość
false, OpenClaw zwraca deterministyczną odmowę. - Gdy polityka ma wartość
true, OpenClaw automatycznie akceptuje tylko bezpieczne schematy, które może zmapować na odpowiedź zatwierdzenia, takie jak pole logiczne zatwierdzenia. - Brak tożsamości pluginu, niejednoznaczna własność, brakujący identyfikator tury, błędny identyfikator tury lub niebezpieczny schemat elicitation powodują odmowę zamiast wyświetlenia prośby.
Rozwiązywanie problemów
auth_required: migracja zainstalowała plugin, ale jedna z jego aplikacji
nadal wymaga uwierzytelnienia. Jawny wpis pluginu jest zapisywany jako wyłączony,
dopóki nie autoryzujesz ponownie i go nie włączysz.
app_inaccessible, app_disabled lub app_missing:
migracja nie zainstalowała pluginu, ponieważ inwentarz aplikacji źródłowego
Codex nie pokazał wszystkich posiadanych aplikacji jako obecnych, włączonych
i dostępnych, gdy ustawiono --verify-plugin-apps. Autoryzuj ponownie lub włącz
aplikację w Codex, a następnie uruchom ponownie migrację z --verify-plugin-apps.
app_inventory_unavailable: migracja nie zainstalowała pluginu, ponieważ
zażądano ścisłej weryfikacji aplikacji źródłowych i odświeżenie inwentarza
aplikacji źródłowego Codex nie powiodło się. Napraw dostęp do źródłowego
app-server Codex albo spróbuj ponownie bez --verify-plugin-apps, jeśli
akceptujesz szybszy plan ograniczony bramką konta.
codex_subscription_required: migracja nie zainstalowała pluginu
wspieranego przez aplikację, ponieważ konto źródłowego app-server Codex nie było
zalogowane przy użyciu konta subskrypcji ChatGPT. Zaloguj się do aplikacji Codex
z uwierzytelnieniem subskrypcji, a następnie uruchom migrację ponownie.
codex_account_unavailable: migracja nie zainstalowała pluginu wspieranego
przez aplikację, ponieważ nie można było odczytać konta źródłowego app-server
Codex. Napraw uwierzytelnianie źródłowego app-server Codex albo uruchom ponownie
z --verify-plugin-apps, jeśli chcesz, aby inwentarz aplikacji źródłowych
decydował o kwalifikowalności, gdy wyszukiwanie konta się nie powiedzie.
marketplace_missing lub plugin_missing: docelowy app-server Codex nie
widzi oczekiwanego marketplace'u lub pluginu openai-curated. Uruchom ponownie
migrację względem docelowego środowiska wykonawczego albo sprawdź status pluginu
app-server Codex.
app_inventory_missing lub app_inventory_stale: gotowość aplikacji
pochodziła z pustej lub przestarzałej pamięci podręcznej. OpenClaw planuje
asynchroniczne odświeżenie i wyklucza aplikacje pluginów, dopóki własność
i gotowość nie będą znane.
app_ownership_ambiguous: inwentarz aplikacji dopasował tylko nazwę
wyświetlaną, więc aplikacja nie jest ujawniana wątkowi Codex.
Konfiguracja się zmieniła, ale agent nie widzi pluginu: użyj /new,
/reset albo zrestartuj Gateway. Istniejące powiązania wątków Codex zachowują
konfigurację aplikacji, z którą zostały uruchomione, dopóki OpenClaw nie ustanowi
nowej sesji harnessu albo nie zastąpi przestarzałego powiązania.
Działanie destrukcyjne jest odrzucane: sprawdź globalne i per-pluginowe
wartości allow_destructive_actions. Nawet gdy polityka ma wartość true,
niebezpieczne schematy elicitation i niejednoznaczna tożsamość pluginu nadal
są zamykane bezpiecznie.