Codex harness
Native Codex-Plugins
Native Codex-Plugin-Unterstützung ermöglicht einem OpenClaw-Agenten im Codex-Modus, die eigenen App- und Plugin-Fähigkeiten des Codex-App-Servers in demselben Codex-Thread zu verwenden, der den OpenClaw-Turn verarbeitet.
OpenClaw übersetzt Codex-Plugins nicht in synthetische dynamische codex_plugin_*-Tools von OpenClaw. Plugin-Aufrufe bleiben im nativen Codex-Transkript, und der Codex-App-Server ist für die App-gestützte MCP-Ausführung zuständig.
Verwenden Sie diese Seite, nachdem der grundlegende Codex-Harness funktioniert.
Anforderungen
- Die ausgewählte OpenClaw-Agent-Laufzeit muss der native Codex-Harness sein.
plugins.entries.codex.enabledmuss true sein.plugins.entries.codex.config.codexPlugins.enabledmuss true sein.- V1 unterstützt nur
openai-curated-Plugins, die die Migration im Quell-Codex-Home als aus der Quelle installiert erkannt hat. - Der Ziel-Codex-App-Server muss das erwartete Marketplace-, Plugin- und App-Inventar sehen können.
codexPlugins hat keine Wirkung auf PI-Läufe, normale OpenAI-Provider-Läufe, ACP-Konversationsbindungen oder andere Harnesses, weil diese Pfade keine Codex-App-Server-Threads mit nativer apps-Konfiguration erstellen.
Schnellstart
Migration aus dem Quell-Codex-Home in der Vorschau anzeigen:
openclaw migrate codex --dry-run
Verwenden Sie strenge Quell-App-Verifizierung, wenn die Migration die Erreichbarkeit der Quell-App prüfen soll, bevor die native Plugin-Aktivierung geplant wird:
openclaw migrate codex --dry-run --verify-plugin-apps
Wenden Sie die Migration an, wenn der Plan richtig aussieht:
openclaw migrate apply codex --yes
Die Migration schreibt explizite codexPlugins-Einträge für berechtigte Plugins und ruft Codex-App-Server plugin/install für ausgewählte Plugins auf. Eine typische migrierte Konfiguration sieht so aus:
{
plugins: {
entries: {
codex: {
enabled: true,
config: {
codexPlugins: {
enabled: true,
allow_destructive_actions: true,
plugins: {
"google-calendar": {
enabled: true,
marketplaceName: "openai-curated",
pluginName: "google-calendar",
},
},
},
},
},
},
},
}
Nach dem Ändern von codexPlugins verwenden Sie /new, /reset oder starten Sie den Gateway neu, damit zukünftige Codex-Harness-Sitzungen mit dem aktualisierten App-Satz starten.
Funktionsweise der nativen Plugin-Einrichtung
Die Integration hat drei separate Zustände:
- Installiert: Codex hat das lokale Plugin-Bundle in der Ziel-App-Server-Laufzeit.
- Aktiviert: Die OpenClaw-Konfiguration ist bereit, das Plugin für Codex-Harness-Turns verfügbar zu machen.
- Erreichbar: Der Codex-App-Server bestätigt, dass die App-Einträge des Plugins für das aktive Konto verfügbar sind und der migrierten Plugin-Identität zugeordnet werden können.
Die Migration ist der dauerhafte Installations- und Berechtigungsschritt. Während der Planung liest OpenClaw Quell-Codex-Details aus plugin/read und prüft, ob die Kontoantwort des Quell-Codex-App-Servers ein ChatGPT-Abonnementkonto ist. Nicht-ChatGPT-Kontoantworten oder fehlende Kontoantworten überspringen App-gestützte Plugins mit codex_subscription_required. Standardmäßig ruft die Migration kein Quell-app/list auf; App-gestützte Quell-Plugins, die die Konto-Schranke bestehen, werden ohne Verifizierung der Quell-App-Erreichbarkeit geplant, und Transportfehler bei der Kontoabfrage überspringen mit codex_account_unavailable. Mit --verify-plugin-apps erstellt die Migration einen frischen Quell-app/list-Snapshot und verlangt, dass jede eigene App vorhanden, aktiviert und erreichbar ist, bevor die native Aktivierung geplant wird. In diesem Modus fallen Transportfehler bei der Kontoabfrage auf die Quell-App-Inventar-Schranke zurück. Das Laufzeit-App-Inventar ist die Erreichbarkeitsprüfung der Zielsitzung nach der Migration. Die Einrichtung der Codex-Harness-Sitzung berechnet dann eine restriktive Thread-App-Konfiguration für die aktivierten und erreichbaren Plugin-Apps.
Die Thread-App-Konfiguration wird berechnet, wenn OpenClaw eine Codex-Harness-Sitzung einrichtet oder eine veraltete Codex-Thread-Bindung ersetzt. Sie wird nicht bei jedem Turn neu berechnet.
V1-Unterstützungsgrenze
V1 ist absichtlich eng gefasst:
- Nur
openai-curated-Plugins, die bereits im App-Server-Inventar des Quell-Codex installiert waren, sind für die Migration berechtigt. - App-gestützte Quell-Plugins müssen die Abonnement-Schranke zur Migrationszeit bestehen.
--verify-plugin-appsfügt die Quell-App-Inventar-Schranke hinzu. Konten, die durch Abonnements gesperrt sind, sowie im Verifizierungsmodus nicht erreichbare, deaktivierte oder fehlende Quell-Apps oder fehlgeschlagene Aktualisierungen des Quell-App-Inventars werden als übersprungene manuelle Elemente statt als aktivierte Konfigurationseinträge gemeldet. Nicht lesbare Plugin-Details werden vor der Quell-App-Inventar-Schranke übersprungen. - Die Migration schreibt explizite Plugin-Identitäten mit
marketplaceNameundpluginName; sie schreibt keine lokalenmarketplacePath-Cache-Pfade. codexPlugins.enabledist der globale Aktivierungsschalter.- Es gibt keinen
plugins["*"]-Wildcard und keinen Konfigurationsschlüssel, der beliebige Installationsberechtigung gewährt. - Nicht unterstützte Marketplaces, gecachte Plugin-Bundles, Hooks und Codex-Konfigurationsdateien werden im Migrationsbericht zur manuellen Prüfung beibehalten.
App-Inventar und Eigentümerschaft
OpenClaw liest das Codex-App-Inventar über App-Server app/list, cached es eine Stunde lang und aktualisiert veraltete oder fehlende Einträge asynchron. Der Cache liegt nur im Arbeitsspeicher; ein Neustart der CLI oder des Gateway verwirft ihn, und OpenClaw baut ihn aus dem nächsten app/list-Lesevorgang neu auf.
Migration und Laufzeit verwenden separate Cache-Schlüssel:
- Die Quell-Migrationsverifizierung verwendet das Quell-Codex-Home und die Startoptionen des Quell-App-Servers. Dies läuft nur, wenn
--verify-plugin-appsgesetzt ist, und erzwingt eine frische Quell-app/list-Traversal für diesen Planungslauf. - Die Ziellaufzeit-Einrichtung verwendet die Codex-App-Server-Identität des Zielagenten, wenn sie die Codex-Thread-App-Konfiguration erstellt. Die Plugin-Aktivierung invalidiert diesen Ziel-Cache-Schlüssel und aktualisiert ihn danach nach
plugin/installerzwungen.
Eine Plugin-App wird nur offengelegt, wenn OpenClaw sie über stabile Eigentümerschaft dem migrierten Plugin zuordnen kann:
- exakte App-ID aus Plugin-Details
- bekannter MCP-Servername
- eindeutige stabile Metadaten
Nur Anzeigename oder mehrdeutige Eigentümerschaft wird ausgeschlossen, bis die nächste Inventaraktualisierung die Eigentümerschaft belegt.
Thread-App-Konfiguration
OpenClaw injiziert einen restriktiven config.apps-Patch für den Codex-Thread: _default ist deaktiviert, und nur Apps, die aktivierten migrierten Plugins gehören, sind aktiviert.
OpenClaw setzt destructive_enabled auf App-Ebene aus der effektiven globalen oder Plugin-spezifischen allow_destructive_actions-Richtlinie und lässt Codex destruktive Tool-Metadaten aus seinen nativen App-Tool-Annotationen erzwingen. Die _default-App-Konfiguration ist mit open_world_enabled: false deaktiviert. Aktivierte Plugin-Apps werden mit open_world_enabled: true ausgegeben; OpenClaw stellt keinen separaten Plugin-Regler für Open-World-Richtlinien bereit und pflegt keine Plugin-spezifischen Ablehnungslisten für destruktive Tool-Namen.
Der Tool-Genehmigungsmodus ist standardmäßig automatisch für Plugin-Apps, sodass nicht destruktive Lesetools ohne Genehmigungs-UI im selben Thread ausgeführt werden können. Destruktive Tools bleiben durch die destructive_enabled-Richtlinie der jeweiligen App gesteuert.
Richtlinie für destruktive Aktionen
Destruktive Plugin-Elicitations sind für migrierte Codex-Plugins standardmäßig erlaubt, während unsichere Schemas und mehrdeutige Eigentümerschaft weiterhin geschlossen fehlschlagen:
- Globales
allow_destructive_actionsist standardmäßigtrue. - Plugin-spezifisches
allow_destructive_actionsüberschreibt die globale Richtlinie für dieses Plugin. - Wenn die Richtlinie
falseist, gibt OpenClaw eine deterministische Ablehnung zurück. - Wenn die Richtlinie
trueist, akzeptiert OpenClaw automatisch nur sichere Schemas, die es einer Genehmigungsantwort zuordnen kann, etwa einem booleschen Genehmigungsfeld. - Fehlende Plugin-Identität, mehrdeutige Eigentümerschaft, eine fehlende Turn-ID, eine falsche Turn-ID oder ein unsicheres Elicitation-Schema führen zur Ablehnung statt zu einer Nachfrage.
Fehlerbehebung
auth_required: Die Migration hat das Plugin installiert, aber eine seiner Apps benötigt noch Authentifizierung. Der explizite Plugin-Eintrag wird deaktiviert geschrieben, bis Sie es erneut autorisieren und aktivieren.
app_inaccessible, app_disabled oder app_missing:
Die Migration hat das Plugin nicht installiert, weil das Quell-Codex-App-Inventar nicht alle eigenen Apps als vorhanden, aktiviert und erreichbar angezeigt hat, während --verify-plugin-apps gesetzt war. Autorisieren oder aktivieren Sie die App in Codex erneut und führen Sie die Migration dann erneut mit --verify-plugin-apps aus.
app_inventory_unavailable: Die Migration hat das Plugin nicht installiert, weil strenge Quell-App-Verifizierung angefordert wurde und die Aktualisierung des Quell-Codex-App-Inventars fehlgeschlagen ist. Beheben Sie den Zugriff auf den Quell-Codex-App-Server oder versuchen Sie es ohne --verify-plugin-apps erneut, wenn Sie den schnelleren kontogesteuerten Plan akzeptieren.
codex_subscription_required: Die Migration hat das App-gestützte Plugin nicht installiert, weil das Konto des Quell-Codex-App-Servers nicht mit einem ChatGPT-Abonnementkonto angemeldet war. Melden Sie sich in der Codex-App mit Abonnementauthentifizierung an und führen Sie die Migration dann erneut aus.
codex_account_unavailable: Die Migration hat das App-gestützte Plugin nicht installiert, weil das Konto des Quell-Codex-App-Servers nicht gelesen werden konnte. Beheben Sie die Authentifizierung des Quell-Codex-App-Servers oder führen Sie erneut mit --verify-plugin-apps aus, wenn das Quell-App-Inventar bei fehlgeschlagener Kontoabfrage über die Berechtigung entscheiden soll.
marketplace_missing oder plugin_missing: Der Ziel-Codex-App-Server kann den erwarteten openai-curated-Marketplace oder das Plugin nicht sehen. Führen Sie die Migration erneut gegen die Ziellaufzeit aus oder prüfen Sie den Plugin-Status des Codex-App-Servers.
app_inventory_missing oder app_inventory_stale: Die App-Bereitschaft stammt aus einem leeren oder veralteten Cache. OpenClaw plant eine asynchrone Aktualisierung und schließt Plugin-Apps aus, bis Eigentümerschaft und Bereitschaft bekannt sind.
app_ownership_ambiguous: Das App-Inventar stimmte nur nach Anzeigename überein, daher wird die App dem Codex-Thread nicht offengelegt.
Konfiguration geändert, aber der Agent kann das Plugin nicht sehen: Verwenden Sie /new, /reset oder starten Sie den Gateway neu. Bestehende Codex-Thread-Bindungen behalten die App-Konfiguration, mit der sie gestartet wurden, bis OpenClaw eine neue Harness-Sitzung einrichtet oder eine veraltete Bindung ersetzt.
Destruktive Aktion wird abgelehnt: Prüfen Sie die globalen und Plugin-spezifischen allow_destructive_actions-Werte. Selbst wenn die Richtlinie true ist, schlagen unsichere Elicitation-Schemas und mehrdeutige Plugin-Identität weiterhin geschlossen fehl.