Codex harness

Uitvoeringsomgeving van het Codex-harnas

Deze pagina documenteert het runtimecontract voor Codex-harnessbeurten. Begin voor installatie en routering met Codex-harness. Zie voor configuratievelden Codex-harnessreferentie.

Overzicht

Codex-modus is geen PI met daaronder een andere modelaanroep. Codex beheert meer van de native modellus, en OpenClaw past zijn Plugin-, tool-, sessie- en diagnostische oppervlakken aan rond die grens.

OpenClaw beheert nog steeds kanaalroutering, sessiebestanden, bezorging van zichtbare berichten, OpenClaw dynamische tools, goedkeuringen, mediabezorging en een transcriptspiegel. Codex beheert de canonieke native thread, native modellus, native tool- voortzetting en native Compaction.

Threadbindingen en modelwijzigingen

Wanneer een OpenClaw-sessie aan een bestaande Codex-thread is gekoppeld, verzendt de volgende beurt het momenteel geselecteerde OpenAI-model, goedkeuringsbeleid, sandbox en serviceniveau opnieuw naar app-server. Overschakelen van openai/gpt-5.5 naar openai/gpt-5.2 behoudt de threadbinding, maar vraagt Codex om door te gaan met het nieuw geselecteerde model.

Zichtbare antwoorden en Heartbeats

Wanneer een bronchatbeurt via de Codex-harness loopt, gebruiken zichtbare antwoorden standaard de OpenClaw message-tool als de implementatie messages.visibleReplies niet expliciet heeft geconfigureerd. De agent kan zijn Codex-beurt nog steeds privé afronden; hij plaatst alleen iets in het kanaal wanneer hij message(action="send") aanroept. Stel messages.visibleReplies: "automatic" in om definitieve antwoorden in directe chats op het oude automatische bezorgingspad te houden.

Codex-Heartbeatbeurten krijgen standaard ook heartbeat_respond in de doorzoekbare OpenClaw toolcatalogus, zodat de agent kan vastleggen of de wake stil moet blijven of een melding moet geven zonder die besturingsstroom in definitieve tekst te coderen.

Heartbeat-specifieke initiatiefrichtlijnen worden verzonden als een Codex-ontwikkelaarsinstructie voor samenwerkingsmodus op de Heartbeatbeurt zelf. Gewone chatbeurten herstellen in plaats daarvan de Codex Default-modus, zonder Heartbeat-filosofie mee te nemen in hun normale runtimeprompt.

Hookgrenzen

De Codex-harness heeft drie hooklagen:

Laag Eigenaar Doel
OpenClaw Plugin-hooks OpenClaw Product-/Plugin-compatibiliteit tussen PI- en Codex-harnesses.
Codex app-server-extensiemiddleware Gebundelde OpenClaw Plugins Adaptergedrag per beurt rond OpenClaw dynamische tools.
Codex native hooks Codex Low-level Codex-levenscyclus en native toolbeleid uit Codex-configuratie.

OpenClaw gebruikt geen project- of globale Codex hooks.json-bestanden om OpenClaw Plugin-gedrag te routeren. Voor de ondersteunde native tool- en machtigingsbrug injecteert OpenClaw Codex-configuratie per thread voor PreToolUse, PostToolUse, PermissionRequest en Stop.

Wanneer Codex app-server-goedkeuringen zijn ingeschakeld, wat betekent dat approvalPolicy niet "never" is, laat de standaard geinjecteerde native hookconfiguratie PermissionRequest weg, zodat de Codex app-server-reviewer en de OpenClaw-goedkeuringsbrug echte escalaties na review afhandelen. Operators kunnen expliciet permission_request toevoegen aan nativeHookRelay.events wanneer ze de compatibiliteitsrelay nodig hebben.

Andere Codex-hooks zoals SessionStart en UserPromptSubmit blijven Codex-niveaucontroles. Ze worden in het v1-contract niet blootgesteld als OpenClaw Plugin-hooks.

Voor OpenClaw dynamische tools voert OpenClaw de tool uit nadat Codex om de aanroep vraagt, dus OpenClaw activeert het Plugin- en middlewaregedrag dat het beheert in de harnessadapter. Voor Codex-native tools beheert Codex het canonieke toolrecord. OpenClaw kan geselecteerde events spiegelen, maar het kan de native Codex- thread niet herschrijven tenzij Codex die bewerking via app-server of native hook- callbacks blootstelt.

Codex app-server-itemmeldingen leveren ook asynchrone after_tool_call- observaties voor native toolvoltooiingen die nog niet door de native PostToolUse-relay worden gedekt. Deze observaties zijn alleen bedoeld voor telemetrie en Plugin- compatibiliteit; ze kunnen de native toolaanroep niet blokkeren, vertragen of muteren.

Compaction- en LLM-levenscyclusprojecties komen uit Codex app-server- meldingen en OpenClaw-adapterstatus, niet uit native Codex-hookopdrachten. OpenClaw's before_compaction, after_compaction, llm_input en llm_output-events zijn observaties op adapterniveau, geen byte-voor-byte vastleggingen van Codex' interne aanvraag- of Compaction-payloads.

Codex native hook/started- en hook/completed app-server-meldingen worden geprojecteerd als codex_app_server.hook-agentevents voor traject en debugging. Ze roepen geen OpenClaw Plugin-hooks aan.

V1-ondersteuningscontract

Ondersteund in Codex-runtime v1:

Oppervlak Ondersteuning Waarom
OpenAI-modellus via Codex Ondersteund Codex app-server beheert de OpenAI-beurt, native threadhervatting en native toolvoortzetting.
OpenClaw-kanaalroutering en -bezorging Ondersteund Telegram, Discord, Slack, WhatsApp, iMessage en andere kanalen blijven buiten de modelruntime.
OpenClaw dynamische tools Ondersteund Codex vraagt OpenClaw om deze tools uit te voeren, zodat OpenClaw in het uitvoeringspad blijft.
Prompt- en context-Plugins Ondersteund OpenClaw bouwt promptoverlays en projecteert context in de Codex-beurt voordat de thread wordt gestart of hervat.
Levenscyclus van contextengine Ondersteund Assemblage, ingestie, onderhoud na de beurt en coordinatie van contextengine-Compaction worden uitgevoerd voor Codex-beurten.
Dynamische tool-hooks Ondersteund before_tool_call, after_tool_call en middleware voor toolresultaten draaien rond dynamische tools die OpenClaw beheert.
Levenscyclushooks Ondersteund als adapterobservaties llm_input, llm_output, agent_end, before_compaction en after_compaction worden geactiveerd met eerlijke Codex-moduspayloads.
Revisiepoort voor definitief antwoord Ondersteund via native hookrelay Codex Stop wordt doorgegeven aan before_agent_finalize; revise vraagt Codex om nog een modelpassage voor afronding.
Native shell, patch en MCP blokkeren of observeren Ondersteund via native hookrelay Codex PreToolUse en PostToolUse worden doorgegeven voor vastgelegde native tooloppervlakken, inclusief MCP-payloads op Codex app-server 0.125.0 of nieuwer. Blokkeren wordt ondersteund; argumenten herschrijven niet.
Native machtigingsbeleid Ondersteund via Codex app-server-goedkeuringen en compatibele native hookrelay Codex app-server-goedkeuringsverzoeken lopen na Codex-review via OpenClaw. De native hookrelay PermissionRequest is opt-in voor native goedkeuringsmodi omdat Codex deze voor guardian-review uitzendt.
Trajectvastlegging van app-server Ondersteund OpenClaw registreert de aanvraag die het naar app-server heeft verzonden en de app-server-meldingen die het ontvangt.

Niet ondersteund in Codex-runtime v1:

Oppervlak V1-grens Toekomstig pad
Mutatie van native toolargumenten Codex native pre-tool-hooks kunnen blokkeren, maar OpenClaw herschrijft geen Codex-native toolargumenten. Vereist Codex-hook-/schemaondersteuning voor vervangende toolinvoer.
Bewerkbare Codex-native transcriptgeschiedenis Codex beheert de canonieke native threadgeschiedenis. OpenClaw beheert een spiegel en kan toekomstige context projecteren, maar mag niet-ondersteunde internals niet muteren. Voeg expliciete Codex app-server-API's toe als native threadchirurgie nodig is.
tool_result_persist voor Codex-native toolrecords Die hook transformeert transcriptwrites die OpenClaw beheert, geen Codex-native toolrecords. Kan getransformeerde records spiegelen, maar canoniek herschrijven vereist Codex-ondersteuning.
Rijke native Compaction-metadata OpenClaw observeert start en voltooiing van Compaction, maar ontvangt geen stabiele bewaarde/verwijderde lijst, token-delta of samenvattingspayload. Vereist rijkere Codex-Compaction-events.
Compaction-interventie Huidige OpenClaw Compaction-hooks zijn in Codex-modus op meldingsniveau. Voeg Codex pre-/post-Compaction-hooks toe als Plugins native Compaction moeten kunnen vetoen of herschrijven.
Byte-voor-byte vastlegging van model-API-aanvraag OpenClaw kan app-server-aanvragen en meldingen vastleggen, maar Codex core bouwt de uiteindelijke OpenAI API-aanvraag intern. Vereist een Codex model-request tracing-event of debug-API.

Native machtigingen en MCP-elicitations

Voor PermissionRequest retourneert OpenClaw alleen expliciete toestaan- of weigeren-beslissingen wanneer beleid beslist. Een resultaat zonder beslissing is geen toestemming. Codex behandelt dit als geen hookbeslissing en valt terug naar zijn eigen guardian- of gebruikersgoedkeuringspad.

Codex-app-servergoedkeuringsmodi laten deze native hook standaard weg. Dit gedrag is van toepassing wanneer permission_request expliciet is opgenomen in nativeHookRelay.events of wanneer een compatibiliteitsruntime deze installeert.

Wanneer een operator allow-always kiest voor een native Codex-toestemmingsverzoek, onthoudt OpenClaw die exacte vingerafdruk van provider/sessie/toolinvoer/cwd voor een begrensd sessievenster. De onthouden beslissing is bewust alleen voor exacte overeenkomsten: een gewijzigde opdracht, argumenten, toolpayload of cwd maakt een nieuwe goedkeuring aan.

Codex MCP-toolgoedkeuringselicitations worden via OpenClaw's Plugin-goedkeuringsflow geleid wanneer Codex _meta.codex_approval_kind markeert als "mcp_tool_call". Codex-request_user_input-prompts worden teruggestuurd naar de oorspronkelijke chat, en het volgende in de wachtrij geplaatste vervolgbericht beantwoordt dat native serververzoek in plaats van als extra context te worden gestuurd. Andere MCP-elicitationverzoeken falen gesloten.

Wachtrijbesturing

Wachtrijbesturing voor actieve runs wordt gekoppeld aan Codex-app-server turn/steer. Met de standaard messages.queue.mode: "steer" bundelt OpenClaw chatberichten in de wachtrij gedurende het geconfigureerde stille venster en stuurt deze als één turn/steer-verzoek in volgorde van aankomst. De legacy queue-modus stuurt afzonderlijke turn/steer-verzoeken.

Codex-review- en handmatige Compaction-beurten kunnen besturing binnen dezelfde beurt weigeren. In dat geval gebruikt OpenClaw de vervolgwachtrij wanneer de geselecteerde modus fallback toestaat. Zie Wachtrijbesturing.

Codex-feedbackupload

Wanneer /diagnostics [note] wordt goedgekeurd voor een sessie die de native Codex-harness gebruikt, roept OpenClaw ook Codex-app-server feedback/upload aan voor relevante Codex-threads. De upload vraagt de app-server om logs op te nemen voor elke vermelde thread en, indien beschikbaar, gespawnde Codex-subthreads.

De upload verloopt via Codex's normale feedbackpad naar OpenAI-servers. Als Codex-feedback in die app-server is uitgeschakeld, retourneert de opdracht de app-serverfout. Het voltooide diagnostics-antwoord vermeldt de kanalen, OpenClaw-sessie-id's, Codex-thread-id's en lokale codex resume <thread-id>-opdrachten voor de threads die zijn verzonden.

Als je de goedkeuring weigert of negeert, drukt OpenClaw die Codex-id's niet af en verzendt het geen Codex-feedback. De upload vervangt de lokale Gateway-diagnosticsexport niet. Zie Diagnosticsexport voor het goedkeurings-, privacy-, lokale bundel- en groepschatgedrag.

Gebruik /codex diagnostics [note] alleen wanneer je specifiek de Codex-feedbackupload voor de momenteel gekoppelde thread wilt zonder de volledige Gateway-diagnosticsbundel.

Compaction en transcriptspiegel

Wanneer het geselecteerde model de Codex-harness gebruikt, wordt native thread-Compaction gedelegeerd aan de Codex-app-server. OpenClaw houdt een transcriptspiegel bij voor kanaalgeschiedenis, zoeken, /new, /reset en toekomstig wisselen van model of harness.

De spiegel bevat de gebruikersprompt, de definitieve assistenttekst en lichte Codex-redeneer- of planrecords wanneer de app-server deze uitzendt. Op dit moment registreert OpenClaw alleen native signalen voor start en voltooiing van Compaction. Het stelt nog geen menselijk leesbare Compaction-samenvatting of controleerbare lijst beschikbaar van welke items Codex na Compaction heeft bewaard.

Omdat Codex eigenaar is van de canonieke native thread, herschrijft tool_result_persist momenteel geen Codex-native toolresultaatrecords. Het is alleen van toepassing wanneer OpenClaw een toolresultaat naar een OpenClaw-eigen sessietranscript schrijft.

Media en aflevering

OpenClaw blijft eigenaar van media-aflevering en selectie van mediaproviders. Afbeeldingen, video, muziek, PDF, TTS en mediabegrip gebruiken overeenkomende provider-/modelinstellingen zoals agents.defaults.imageGenerationModel, videoGenerationModel, pdfModel en messages.tts.

Tekst, afbeeldingen, video, muziek, TTS, goedkeuringen en output van berichtentools blijven via het normale OpenClaw-afleverpad lopen. Mediageneratie vereist geen PI. Wanneer Codex een native afbeeldingsgeneratie-item met een savedPath uitzendt, stuurt OpenClaw dat exacte bestand door via het normale antwoordmediapad, zelfs als de Codex-beurt geen assistenttekst heeft.

Gerelateerd