Plugin guides
Plugin nativi di Codex
Il supporto nativo dei Plugin Codex consente a un agente OpenClaw in modalità Codex di utilizzare le funzionalità di app e Plugin proprie di Codex
app-server all'interno dello stesso thread Codex che
gestisce il turno OpenClaw. Le chiamate ai Plugin rimangono nella trascrizione nativa di Codex;
Codex app-server gestisce l'esecuzione MCP basata sulle app. OpenClaw non converte
i Plugin Codex in strumenti dinamici OpenClaw sintetici codex_plugin_*.
Usa questa pagina dopo aver configurato correttamente l'harness Codex di base.
Requisiti
- Il runtime dell'agente deve essere l'harness Codex nativo.
plugins.entries.codex.enableddeve esseretrue.plugins.entries.codex.config.codexPlugins.enableddeve esseretrue.- Il Codex app-server di destinazione deve poter visualizzare l'inventario previsto di marketplace, Plugin e app.
- La migrazione supporta solo i Plugin
openai-curatedrilevati come installati dall'origine nella home Codex di origine. - I Plugin
workspace-directoryconfigurati manualmente richiedono un Codex app-server il cuiplugin/listaccettimarketplaceKindse i cui riepiloghi dell'area di lavoro senza percorso includanoremotePluginId. Il Plugin deve essere già installato e abilitato e le app di sua proprietà devono essere accessibili inapp/list.
codexPlugins non ha effetto sulle esecuzioni del provider OpenClaw, sulle associazioni delle conversazioni
ACP o su altri harness, perché questi percorsi non creano mai thread Codex
app-server con una configurazione apps nativa.
L'account Codex lato OpenAI, la disponibilità delle app e i controlli sulle app e sui Plugin dell'area di lavoro dipendono dall'account Codex con cui è stato effettuato l'accesso. Consulta Utilizzare Codex con il proprio piano ChatGPT per il modello di account e amministrazione di OpenAI.
Avvio rapido
Visualizza l'anteprima della migrazione dalla home Codex di origine:
openclaw migrate codex --dry-runAggiungi --verify-plugin-apps per fare in modo che la migrazione chiami app/list sull'origine e
richieda che ogni app di proprietà sia presente, abilitata e accessibile prima di
pianificare l'attivazione nativa:
openclaw migrate codex --dry-run --verify-plugin-appsApplica la migrazione quando il piano è corretto:
openclaw migrate apply codex --yesLa migrazione scrive voci codexPlugins esplicite per i Plugin idonei e
chiama plugin/install di Codex app-server per i Plugin selezionati. Una configurazione
migrata ha questo aspetto:
{ plugins: { entries: { codex: { enabled: true, config: { codexPlugins: { enabled: true, allow_destructive_actions: true, plugins: { "google-calendar": { enabled: true, marketplaceName: "openai-curated", pluginName: "google-calendar", }, }, }, }, }, }, },}La migrazione rimane limitata a openai-curated. Per utilizzare un Plugin
workspace-directory esistente, aggiungilo manualmente con il valore esatto
summary.id qualificato dal marketplace restituito da plugin/list. Ad esempio, se
Codex restituisce example-plugin@workspace-directory, configura tale valore
completo anziché il relativo nome visualizzato:
{ plugins: { entries: { codex: { enabled: true, config: { codexPlugins: { enabled: true, plugins: { "example-plugin": { enabled: true, marketplaceName: "workspace-directory", pluginName: "example-plugin@workspace-directory", }, }, }, }, }, }, },}OpenClaw non chiama plugin/install né avvia l'autenticazione per un
Plugin workspace-directory. Installalo, abilitalo ed esegui l'autenticazione in Codex
prima di aggiungere o abilitare il criterio di OpenClaw. OpenClaw mantiene nascoste le app quando
la risposta omette il marketplace esatto, l'ID del Plugin, l'ID dei dettagli o le prove
di disponibilità dell'app. Se Codex rifiuta la richiesta esplicita plugin/list dell'area di lavoro,
OpenClaw segnala marketplace_missing per ogni Plugin dell'area di lavoro abilitato e
mantiene disponibili gli eventuali Plugin selezionati rilevati in modo indipendente.
Dopo una modifica a codexPlugins, le nuove conversazioni Codex acquisiscono automaticamente
il set di app aggiornato. Esegui /new o /reset per aggiornare la conversazione
corrente. Non è necessario riavviare il Gateway per le modifiche di abilitazione o disabilitazione
dei Plugin.
Gestire i Plugin dalla chat
/codex plugins esamina o modifica i Plugin Codex nativi configurati dalla
stessa chat in cui utilizzi l'harness Codex:
/codex plugins/codex plugins list/codex plugins disable google-calendar/codex plugins enable google-calendar/codex plugins è un alias di /codex plugins list. L'elenco mostra la chiave,
lo stato attivo/disattivo, il nome del Plugin Codex e il marketplace di ogni
Plugin configurato, ricavati da plugins.entries.codex.config.codexPlugins.plugins.
enable/disable scrivono solo in ~/.openclaw/openclaw.json; non modificano mai
~/.codex/config.toml né installano nuovi Plugin Codex. Solo il proprietario o un
client Gateway con l'ambito operator.admin può eseguirli.
L'abilitazione di un Plugin configurato attiva anche l'opzione globale
codexPlugins.enabled. Se un Plugin selezionato è stato scritto come disabilitato perché la migrazione ha restituito
auth_required, autorizza nuovamente l'app in Codex prima di abilitarla in OpenClaw.
Per una voce workspace-directory, abilitarla qui modifica solo il criterio di OpenClaw;
il Plugin e l'app devono essere già attivi in Codex.
Funzionamento della configurazione nativa dei Plugin
L'integrazione tiene traccia di tre stati:
| Stato | Significato |
|---|---|
| Installato | Codex dispone del pacchetto del Plugin nel runtime app-server di destinazione. |
| Abilitato | Codex segnala che il Plugin è abilitato e la configurazione di OpenClaw lo consente per i turni dell'harness Codex. |
| Accessibile | Codex app-server conferma che le voci dell'app del Plugin sono disponibili per l'account attivo e corrispondono all'identità del Plugin configurata. |
Per i Plugin openai-curated, la migrazione costituisce il passaggio permanente di installazione e verifica
dell'idoneità:
- Durante la pianificazione, OpenClaw legge i dettagli di
plugin/readdel Codex di origine e verifica che l'account Codex app-server di origine sia un account con abbonamento ChatGPT. Una risposta relativa a un account non ChatGPT o mancante esclude i Plugin basati su app concodex_subscription_required. - Per impostazione predefinita, la migrazione non esegue la chiamata
app/listsull'origine: i Plugin di origine basati su app che superano il controllo dell'account vengono pianificati senza verificare l'accessibilità dell'app di origine, mentre gli errori di trasporto durante la ricerca dell'account determinano l'esclusione concodex_account_unavailable. - Con
--verify-plugin-apps, la migrazione acquisisce una nuova istantaneaapp/listdall'origine e richiede che ogni app di proprietà sia presente, abilitata e accessibile prima di pianificare l'attivazione nativa. Gli errori di trasporto durante la ricerca dell'account passano quindi al controllo dell'inventario delle app di origine anziché causare direttamente l'esclusione.
Per i Plugin workspace-directory, la configurazione avviene al di fuori di OpenClaw. OpenClaw
interroga tale marketplace solo quando è configurata almeno una voce dell'area di lavoro abilitata,
risolve ogni Plugin tramite il valore esatto summary.id e riutilizza i controlli esistenti
della proprietà tramite plugin/read e della disponibilità tramite app/list. Un Plugin non installato,
disabilitato, inaccessibile o non autenticato non espone alcuna app; OpenClaw
non tenta l'installazione o l'autenticazione.
L'inventario delle app di runtime costituisce il controllo dell'accessibilità della sessione di destinazione sia per
i Plugin selezionati migrati sia per i Plugin dell'area di lavoro configurati manualmente. La configurazione
della sessione dell'harness Codex calcola una configurazione restrittiva delle app del thread a partire dalle app
dei Plugin abilitate e accessibili; non viene ricalcolata a ogni turno, pertanto
/codex plugins enable/disable influisce solo sulle
nuove conversazioni Codex. Usa /new o /reset per applicare la modifica alla
conversazione corrente.
Limiti del supporto V1
- Solo i Plugin
openai-curatedgià installati nell'inventario Codex app-server di origine sono idonei alla migrazione. - Il runtime supporta anche voci
workspace-directoryesplicite nelle build app-server il cuiplugin/listimplementamarketplaceKindse restituisceremotePluginIdper i riepiloghi dell'area di lavoro senza percorso. Queste voci devono utilizzare il rispettivo valore esattosummary.idqualificato dal marketplace e devono essere già installate, abilitate e accessibili dall'app. Una richiesta rifiutata dell'elenco dell'area di lavoro produce la diagnosticamarketplace_missingesistente per ogni Plugin; in assenza di prove relative a marketplace, Plugin, dettagli o app, non viene esposta alcuna app dell'area di lavoro. L'inventario selezionato derivante dalla richiesta di elenco predefinita rimane utilizzabile. - I Plugin di origine basati su app devono superare il controllo dell'abbonamento al momento della migrazione.
--verify-plugin-appsaggiunge il controllo dell'inventario delle app di origine. Gli account soggetti al controllo dell'abbonamento e, in modalità di verifica, le app di origine inaccessibili, disabilitate o mancanti oppure gli errori di aggiornamento dell'inventario delle app vengono segnalati come elementi manuali esclusi anziché come voci di configurazione abilitate. I dettagli dei Plugin illeggibili vengono esclusi prima del controllo dell'inventario delle app. - La migrazione scrive identità esplicite dei Plugin (
marketplaceNameepluginName); non scrive percorsi della cache localemarketplacePath. codexPlugins.enabledè l'unica opzione di abilitazione globale; non esistono caratteri jollyplugins["*"]né chiavi di configurazione che concedano un'autorità di installazione arbitraria.- I marketplace non selezionati, i pacchetti dei Plugin memorizzati nella cache, gli hook e i file di configurazione
di Codex vengono conservati nel rapporto di migrazione per la revisione manuale, non attivati
automaticamente. Il runtime accetta voci
workspace-directoryconfigurate manualmente; gli altri marketplace non sono supportati.
Inventario e proprietà delle app
OpenClaw legge l'inventario delle app Codex tramite app/list di app-server, lo memorizza
in memoria per un'ora e aggiorna in modo asincrono le voci obsolete o mancanti.
La cache è locale al processo; il riavvio della CLI o del Gateway
la elimina e OpenClaw la ricostruisce a partire dalla successiva lettura di app/list.
La migrazione e il runtime utilizzano chiavi di cache separate:
- La verifica della migrazione di origine utilizza la home Codex di origine e le opzioni di
avvio. Viene eseguita solo con
--verify-plugin-appse forza un nuovo attraversamento diapp/listdell'origine per tale esecuzione di pianificazione. - La configurazione del runtime di destinazione utilizza l'identità Codex app-server dell'agente di destinazione durante
la creazione della configurazione delle app del thread. L'attivazione del Plugin selezionato invalida tale
chiave di cache di destinazione, quindi ne forza l'aggiornamento dopo
plugin/install. La configurazione diworkspace-directorynon esegue mai questo percorso di attivazione.
Un'app di un Plugin viene esposta solo quando OpenClaw può ricondurla al Plugin configurato tramite una proprietà stabile: un ID app esatto ricavato dai dettagli del Plugin, un nome di server MCP noto o metadati stabili univoci. La proprietà basata unicamente sul nome visualizzato o ambigua viene esclusa finché il successivo aggiornamento dell'inventario non ne dimostra la proprietà.
App degli account connessi
Gli agenti gestiti dal proprietario possono scegliere di includere tutte le app già connesse al proprio account Codex senza richiedere un pacchetto Plugin corrispondente:
{ plugins: { entries: { codex: { enabled: true, config: { codexPlugins: { enabled: true, allow_all_plugins: true, allow_destructive_actions: "auto", }, }, }, }, },}allow_all_plugins: true acquisisce un'istantanea completa di app/list quando viene creato un nuovo thread
Codex nativo e ammette solo le app contrassegnate come accessibili per tale
account. Non installa, autentica o abilita le app a livello globale. I thread
esistenti mantengono il proprio set di app persistente; usa /new, /reset o riavvia il
Gateway per acquisire le app appena connesse o revocate.
Le app dell'account ereditano il valore globale codexPlugins.allow_destructive_actions,
che accetta true, false, "auto" o "ask". Il criterio esplicito per singolo Plugin
sostituisce il criterio globale per gli ID app sovrapposti. Gli errori dell'inventario determinano
una chiusura sicura anziché il ripiego su un'impostazione predefinita senza restrizioni.
Configurazione delle app del thread
OpenClaw inserisce una patch restrittiva per config.apps nel thread Codex:
_default è disabilitato e sono abilitate solo le app appartenenti ai Plugin configurati e abilitati oppure le app dell'account accessibili ammesse da allow_all_plugins.
Il valore destructive_enabled di ciascuna app deriva dal criterio effettivo globale o per Plugin allow_destructive_actions; true, "auto" e "ask" impostano tutti destructive_enabled: true, mentre false lo imposta su false. Codex continua ad applicare i metadati degli strumenti distruttivi provenienti dalle annotazioni native degli strumenti dell'app.
_default è disabilitato con open_world_enabled: false; le app dei Plugin abilitati ricevono open_world_enabled: true. OpenClaw non espone un'impostazione separata a livello di Plugin per il criterio open-world e non mantiene elenchi di esclusione dei nomi degli strumenti distruttivi per ciascun Plugin.
La modalità di approvazione degli strumenti è automaticamente predefinita per le app ammesse, pertanto gli strumenti di lettura non distruttivi vengono eseguiti senza una richiesta di approvazione nello stesso thread. Gli strumenti distruttivi restano soggetti al criterio destructive_enabled di ciascuna app.
Criterio per le azioni distruttive
Le richieste di conferma distruttive dei Plugin sono consentite per impostazione predefinita per i Plugin Codex configurati, mentre gli schemi non sicuri e la proprietà ambigua causano un rifiuto preventivo:
- Il valore globale predefinito di
allow_destructive_actionsètrue. - Il valore
allow_destructive_actionsper Plugin sostituisce il criterio globale per quel Plugin. false: OpenClaw restituisce un rifiuto deterministico.true: OpenClaw accetta automaticamente solo gli schemi sicuri che può associare a una risposta di approvazione, come un campo booleano di approvazione."auto": OpenClaw espone a Codex le azioni distruttive dei Plugin, quindi converte le richieste di approvazione MCP con proprietà verificata in approvazioni dei Plugin OpenClaw prima di restituire la risposta di approvazione di Codex."ask": OpenClaw usa lo stesso controllo di Codex per le operazioni di scrittura/distruttive adottato da"auto", cancella le sostituzioni persistenti dell'approvazione per strumento di Codex relative all'app prima dell'avvio del thread e offre soltanto un'approvazione o un rifiuto una tantum, affinché le approvazioni persistenti non possano impedire le successive richieste per azioni di scrittura. Per ogni app ammessa che usa"ask", OpenClaw seleziona il revisore umano delle approvazioni di Codex per tale app, in modo che Codex invii le proprie richieste di approvazione a OpenClaw; le altre app e le approvazioni del thread non relative alle app mantengono il revisore e il criterio configurati.- L'assenza dell'identità del Plugin, una proprietà ambigua, un ID del turno mancante o non corrispondente oppure uno schema di richiesta non sicuro determinano un rifiuto anziché la visualizzazione di una richiesta.
Risoluzione dei problemi
| Codice | Significato | Soluzione |
|---|---|---|
auth_required |
La migrazione ha installato il Plugin, ma una delle sue app richiede ancora l'autenticazione. La voce viene scritta come disabilitata finché non viene autorizzata nuovamente. | Autorizza nuovamente l'app in Codex, quindi abilita il Plugin in OpenClaw. |
app_inaccessible, app_disabled, app_missing |
Con --verify-plugin-apps, l'inventario delle app Codex di origine non mostrava tutte le app appartenenti al Plugin come presenti, abilitate e accessibili. |
Autorizza nuovamente o abilita l'app in Codex, quindi riesegui la migrazione con --verify-plugin-apps. |
app_inventory_unavailable |
È stata richiesta una verifica rigorosa delle app di origine, ma l'aggiornamento dell'inventario delle app Codex di origine non è riuscito. | Correggi l'accesso all'app-server Codex di origine oppure riprova senza --verify-plugin-apps per accettare il piano più rapido basato sull'account. |
codex_subscription_required |
L'account dell'app-server Codex di origine non era un account con abbonamento ChatGPT. | Accedi all'app Codex usando l'autenticazione dell'abbonamento, quindi riesegui la migrazione. |
codex_account_unavailable |
Non è stato possibile leggere l'account dell'app-server Codex di origine. | Correggi l'autenticazione dell'app-server Codex di origine oppure riesegui con --verify-plugin-apps affinché sia l'inventario delle app di origine a determinare l'idoneità. |
marketplace_missing, plugin_missing |
Il marketplace o il Plugin esatto non è disponibile; la richiesta esplicita del catalogo dell'area di lavoro potrebbe essere stata rifiutata; le app dell'area di lavoro vengono escluse preventivamente. | Verifica il contratto compatibile dell'app-server e l'ID esatto descritti di seguito. |
plugin_detail_unavailable |
OpenClaw non è riuscito a leggere i dettagli sulla proprietà del Plugin. | Esamina le risposte plugin/list e plugin/read dell'app-server di destinazione. |
plugin_disabled |
Codex segnala che il Plugin è installato ma disabilitato. | L'attivazione curata potrebbe correggere il problema; abilita un Plugin dell'area di lavoro in Codex prima di riprovare. |
plugin_activation_failed |
L'attivazione del Plugin non è stata completata. | Usa la diagnostica allegata per distinguere gli errori del marketplace, di autenticazione, di aggiornamento o di preparazione dell'area di lavoro. |
app_inventory_missing, app_inventory_stale |
Lo stato di preparazione dell'app proviene da una cache vuota o obsoleta. | OpenClaw pianifica automaticamente un aggiornamento asincrono; le app dei Plugin restano escluse finché proprietà e stato di preparazione non sono noti. |
app_ownership_ambiguous |
L'inventario delle app ha trovato una corrispondenza soltanto in base al nome visualizzato. | L'app resta nascosta al thread Codex finché un aggiornamento successivo non ne dimostra la proprietà. |
Il Plugin dell'area di lavoro è installato ma non è visibile: verifica che il risultato
plugin/list dell'area di lavoro riporti l'ID configurato esatto come installato e abilitato,
quindi verifica che app/list riporti ogni app appartenente al Plugin come accessibile per lo stesso
account Codex. OpenClaw può abilitare un'app accessibile per il thread anche quando
l'inventario dell'account segnala attualmente tale app come disabilitata. Se hai modificato questo stato dopo che il Gateway ha memorizzato nella cache l'inventario
delle app, attendi l'aggiornamento orario della cache oppure riavvia il Gateway, quindi usa
/new o /reset. OpenClaw non corregge né autentica i Plugin dell'area di lavoro.
Se la richiesta esplicita dell'elenco dell'area di lavoro viene rifiutata, ogni voce abilitata dell'area di lavoro
segnala marketplace_missing; le voci curate non correlate continuano a essere elaborate
in base alla risposta dell'elenco predefinito.
Per plugin_detail_unavailable, un riepilogo dell'area di lavoro privo di percorso deve includere
remotePluginId; OpenClaw mantiene nascoste le app appartenenti al Plugin quando tale selettore o il
successivo risultato plugin/read non è disponibile. Per
plugin_activation_failed, i Plugin curati possono segnalare un errore del marketplace, di autenticazione o
di aggiornamento successivo all'installazione. Un Plugin dell'area di lavoro segnala questo codice quando non è
già attivo; installalo, abilitalo e autenticalo al di fuori di OpenClaw.
La configurazione è cambiata ma l'agente non riesce a vedere il Plugin: esegui /codex plugins list per verificare lo stato configurato, quindi /new o /reset. I collegamenti
esistenti dei thread Codex mantengono la configurazione delle app con cui sono stati avviati finché OpenClaw
non stabilisce una nuova sessione dell'harness o sostituisce un collegamento obsoleto.
L'azione distruttiva viene rifiutata: controlla i valori globali e per Plugin
di allow_destructive_actions. Anche con true, "auto" o "ask",
gli schemi di richiesta non sicuri e un'identità ambigua del Plugin causano comunque un rifiuto preventivo.