Een agent harness is de low-level uitvoerder voor één voorbereide OpenClaw-agentbeurt. Het is geen modelprovider, geen kanaal en geen toolregister. Voor het gebruikersgerichte mentale model, zie Agent-runtimes. Gebruik dit oppervlak alleen voor gebundelde of vertrouwde native plugins. Het contract is nog experimenteel omdat de parametertypen bewust de huidige embedded runner weerspiegelen.Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Wanneer een harness gebruiken
Registreer een agent harness wanneer een modelfamilie een eigen native sessie- runtime heeft en het normale OpenClaw-providertransport de verkeerde abstractie is. Voorbeelden:- een native coding-agent-server die threads en Compaction beheert
- een lokale CLI of daemon die native plan-/redenerings-/tool-events moet streamen
- een modelruntime die een eigen resume-id nodig heeft naast het OpenClaw- sessietranscript
Wat core nog steeds beheert
Voordat een harness wordt geselecteerd, heeft OpenClaw al het volgende bepaald:- provider en model
- runtime-authenticatiestatus
- denkniveau en contextbudget
- het OpenClaw-transcript-/sessiebestand
- werkruimte, sandbox en toolbeleid
- callbacks voor kanaalantwoorden en streamingcallbacks
- model-fallback en beleid voor live modelwisselingen
params.runtimePlan, een door OpenClaw beheerde
beleidsbundel voor runtimebeslissingen die gedeeld moet blijven tussen PI en native
harnesses:
runtimePlan.tools.normalize(...)enruntimePlan.tools.logDiagnostics(...)voor providerbewust toolschemabeleidruntimePlan.transcript.resolvePolicy(...)voor transcriptsanering en herstelbeleid voor toolaanroepenruntimePlan.delivery.isSilentPayload(...)voor gedeeldeNO_REPLYen onderdrukking van media- bezorgingruntimePlan.outcome.classifyRunResult(...)voor classificatie van model-fallbackruntimePlan.observabilityvoor opgeloste provider-/model-/harnessmetadata
Een harness registreren
Import:openclaw/plugin-sdk/agent-harness
Selectiebeleid
OpenClaw kiest een harness na provider-/modelresolutie:- Modelgescoped runtimebeleid wint.
- Providergescoped runtimebeleid komt daarna.
autovraagt geregistreerde harnesses of ze de opgeloste provider/model-combinatie ondersteunen.- Als geen geregistreerde harness overeenkomt, gebruikt OpenClaw PI tenzij PI-fallback is uitgeschakeld.
auto-modus wordt PI-fallback
alleen gebruikt wanneer geen geregistreerde plugin-harness de opgeloste
provider/model-combinatie ondersteunt. Zodra een plugin-harness een run heeft geclaimd, speelt OpenClaw
diezelfde beurt niet opnieuw via PI af, omdat dat auth-/runtime-semantiek kan wijzigen
of neveneffecten kan dupliceren.
Runtime-pins voor hele sessies en hele agents worden genegeerd door de selectie. Dat
omvat verouderde sessiewaarden voor agentHarnessId, agents.defaults.agentRuntime,
agents.list[].agentRuntime en OPENCLAW_AGENT_RUNTIME. /status toont de
effectieve runtime die is geselecteerd vanuit de provider-/modelroute.
Als de geselecteerde harness verrassend is, schakel dan debuglogging voor agents/harness in en
inspecteer de gestructureerde agent harness selected-record van de gateway. Die bevat
de geselecteerde harness-id, selectiereden, runtime-/fallbackbeleid en, in
auto-modus, het ondersteuningsresultaat van elke pluginkandidaat.
De gebundelde Codex-plugin registreert codex als harness-id. Core behandelt dat
als een gewone plugin-harness-id; Codex-specifieke aliassen horen thuis in de plugin
of operatorconfiguratie, niet in de gedeelde runtimeselector.
Provider plus harness-koppeling
De meeste harnesses moeten ook een provider registreren. De provider maakt modelreferenties, authenticatiestatus, modelmetadata en/model-selectie zichtbaar voor de rest van
OpenClaw. De harness claimt die provider vervolgens in supports(...).
De gebundelde Codex-plugin volgt dit patroon:
- voorkeursmodelreferenties voor gebruikers:
openai/gpt-5.5 - compatibiliteitsreferenties: legacy
codex/gpt-*-referenties blijven geaccepteerd, maar nieuwe configuraties zouden ze niet als normale provider-/modelreferenties moeten gebruiken - harness-id:
codex - auth: synthetische providerbeschikbaarheid, omdat de Codex-harness de native Codex-login/-sessie beheert
- app-server-aanvraag: OpenClaw stuurt de kale model-id naar Codex en laat de harness met het native app-serverprotocol praten
openai/gpt-*-agentreferenties op de officiële
OpenAI-provider selecteren standaard de Codex-harness. Oudere codex/gpt-*-referenties
selecteren nog steeds de Codex-provider en -harness voor compatibiliteit.
Voor operatorconfiguratie, voorbeelden van modelprefixen en Codex-only configuraties, zie
Codex Harness.
OpenClaw vereist Codex app-server 0.125.0 of nieuwer. De Codex-plugin controleert
de initialize-handshake van de app-server en blokkeert oudere of niet-geversioneerde servers zodat
OpenClaw alleen draait tegen het protocoloppervlak waarmee het is getest. De
0.125.0-ondergrens omvat de ondersteuning voor native MCP-hookpayloads die in
Codex 0.124.0 is geland, terwijl OpenClaw wordt vastgezet op de nieuwere geteste stabiele lijn.
Toolresultaat-middleware
Gebundelde plugins kunnen runtime-neutrale toolresultaat-middleware koppelen viaapi.registerAgentToolResultMiddleware(...) wanneer hun manifest de
gerichte runtime-id’s declareert in contracts.agentToolResultMiddleware. Deze vertrouwde
naad is voor asynchrone toolresultaattransformaties die moeten draaien voordat PI of Codex
tooluitvoer terugvoert naar het model.
Legacy gebundelde plugins kunnen nog steeds
api.registerCodexAppServerExtensionFactory(...) gebruiken voor middleware die alleen voor Codex app-server is,
maar nieuwe resultaattransformaties moeten de runtime-neutrale API gebruiken.
De Pi-only hook api.registerEmbeddedExtensionFactory(...) is verwijderd;
Pi-toolresultaattransformaties moeten runtime-neutrale middleware gebruiken.
Classificatie van terminale uitkomst
Native harnesses die hun eigen protocolprojectie beheren, kunnenclassifyAgentHarnessTerminalOutcome(...) uit
openclaw/plugin-sdk/agent-harness-runtime gebruiken wanneer een voltooide beurt geen
zichtbare assistenttekst heeft geproduceerd. De helper retourneert empty, reasoning-only of
planning-only, zodat het fallbackbeleid van OpenClaw kan beslissen of opnieuw moet worden geprobeerd op een
ander model. Promptfouten, lopende beurten en
opzettelijke stille antwoorden zoals NO_REPLY blijven bewust ongeclassificeerd.
Native Codex-harnessmodus
De gebundeldecodex-harness is de native Codex-modus voor embedded OpenClaw-
agentbeurten. Schakel eerst de gebundelde codex-plugin in en neem codex op in
plugins.allow als je configuratie een restrictieve allowlist gebruikt. Native app-server-
configuraties moeten openai/gpt-* gebruiken; OpenAI-agentbeurten selecteren standaard de Codex-harness. Legacy openai-codex/*-routes moeten worden hersteld met
openclaw doctor --fix, en legacy codex/*-modelreferenties blijven compatibiliteitsaliassen voor de native harness.
Wanneer deze modus draait, beheert Codex de native thread-id, resume-gedrag,
Compaction en app-serveruitvoering. OpenClaw beheert nog steeds het chatkanaal,
de zichtbare transcriptspiegel, toolbeleid, goedkeuringen, mediabezorging en sessie-
selectie. Gebruik provider/model agentRuntime.id: "codex" wanneer je moet aantonen
dat alleen het Codex app-server-pad de run kan claimen. Expliciete pluginruntimes
falen gesloten; fouten bij Codex app-server-selectie en runtimefouten worden niet
opnieuw geprobeerd via PI.
Runtime-striktheid
Standaard gebruikt OpenClawauto provider-/modelruntimebeleid: geregistreerde
plugin-harnesses kunnen een provider/model-paar claimen, en PI verwerkt de beurt wanneer
niets overeenkomt. OpenAI-agentreferenties op de officiële OpenAI-provider gaan standaard naar Codex.
Gebruik een expliciete provider-/model-pluginruntime zoals
agentRuntime.id: "codex" wanneer ontbrekende harnessselectie moet falen in plaats van
via PI te routeren. Fouten in geselecteerde plugin-harnesses falen altijd hard. Dit
blokkeert geen expliciete provider/model agentRuntime.id: "pi".
Voor Codex-only embedded runs:
Native sessies en transcriptspiegel
Een harness kan een native sessie-id, thread-id of resume-token aan de daemonzijde bewaren. Houd die binding expliciet gekoppeld aan de OpenClaw-sessie, en blijf gebruikerszichtbare assistent-/tooluitvoer spiegelen naar het OpenClaw-transcript. Het OpenClaw-transcript blijft de compatibiliteitslaag voor:- kanaalzichtbare sessiegeschiedenis
- transcriptzoekopdrachten en indexering
- terugschakelen naar de ingebouwde PI-harness in een latere beurt
- generiek gedrag voor
/new,/reseten sessieverwijdering
reset(...) zodat OpenClaw die kan
wissen wanneer de eigenaar-OpenClaw-sessie wordt gereset.
Tool- en mediaresultaten
Core construeert de OpenClaw-toollijst en geeft die door aan de voorbereide poging. Wanneer een harness een dynamische toolaanroep uitvoert, retourneer het toolresultaat dan via de resultaatvorm van de harness in plaats van zelf kanaalmedia te verzenden. Zo blijven tekst-, image-, video-, music-, TTS-, goedkeurings- en messaging-tool-uitvoer op hetzelfde bezorgpad als door PI ondersteunde runs.Huidige beperkingen
- Het publieke importpad is generiek, maar sommige poging-/resultaattype-aliassen dragen nog steeds
Pi-namen voor compatibiliteit. - Installatie van harnesses van derden is experimenteel. Geef de voorkeur aan providerplugins totdat je een native sessieruntime nodig hebt.
- Wisselen van harness wordt ondersteund tussen beurten. Wissel niet van harness midden in een beurt nadat native tools, goedkeuringen, assistenttekst of berichtverzendingen zijn gestart.