Ein Agent Harness ist der Low-Level-Executor für einen vorbereiteten OpenClaw-Agenten-Turn. Er ist kein Modell-Provider, kein Kanal und keine Tool-Registry. Für das nutzerorientierte mentale Modell siehe Agent-Runtimes. Verwenden Sie diese Oberfläche nur für gebündelte oder vertrauenswürdige native Plugins. Der Vertrag ist noch experimentell, weil die Parametertypen bewusst den aktuellen eingebetteten Runner widerspiegeln.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.
Wann Sie einen Harness verwenden sollten
Registrieren Sie einen Agent Harness, wenn eine Modellfamilie ihre eigene native Session-Runtime hat und der normale OpenClaw-Provider-Transport die falsche Abstraktion ist. Beispiele:- ein nativer Coding-Agent-Server, der Threads und Compaction besitzt
- eine lokale CLI oder ein Daemon, der native Plan-/Reasoning-/Tool-Events streamen muss
- eine Modell-Runtime, die zusätzlich zum OpenClaw-Session-Transkript eine eigene Resume-ID benötigt
Was Core weiterhin besitzt
Bevor ein Harness ausgewählt wird, hat OpenClaw bereits Folgendes aufgelöst:- Provider und Modell
- Runtime-Authentifizierungsstatus
- Denkstufe und Kontextbudget
- die OpenClaw-Transkript-/Session-Datei
- Workspace, Sandbox und Tool-Richtlinie
- Kanal-Antwort-Callbacks und Streaming-Callbacks
- Modell-Fallback und Richtlinie für Live-Modellwechsel
params.runtimePlan, ein von OpenClaw besessenes Richtlinienpaket für Runtime-Entscheidungen, die über Pi und native Harnesses hinweg geteilt bleiben müssen:
runtimePlan.tools.normalize(...)undruntimePlan.tools.logDiagnostics(...)für Provider-bewusste Tool-Schema-RichtlinienruntimePlan.transcript.resolvePolicy(...)für Transkriptsanitisierung und Tool-Call-ReparaturrichtlinienruntimePlan.delivery.isSilentPayload(...)für gemeinsameNO_REPLY- und MedienauslieferungsunterdrückungruntimePlan.outcome.classifyRunResult(...)für Modell-Fallback-KlassifizierungruntimePlan.observabilityfür aufgelöste Provider-/Modell-/Harness-Metadaten
Einen Harness registrieren
Import:openclaw/plugin-sdk/agent-harness
Auswahlrichtlinie
OpenClaw wählt nach der Provider-/Modellauflösung einen Harness aus:- Modellbezogene Runtime-Richtlinie gewinnt.
- Providerbezogene Runtime-Richtlinie kommt als Nächstes.
autofragt registrierte Harnesses, ob sie den aufgelösten Provider/das aufgelöste Modell unterstützen.- Wenn kein registrierter Harness passt, verwendet OpenClaw Pi, sofern Pi-Fallback nicht deaktiviert ist.
auto-Modus wird Pi-Fallback nur verwendet, wenn kein registrierter Plugin-Harness den aufgelösten Provider/das aufgelöste Modell unterstützt. Sobald ein Plugin-Harness einen Lauf beansprucht hat, spielt OpenClaw denselben Turn nicht erneut über Pi ab, weil das Auth-/Runtime-Semantik ändern oder Seiteneffekte duplizieren kann.
Runtime-Pins für die gesamte Session und den gesamten Agenten werden von der Auswahl ignoriert. Dazu gehören veraltete Session-Werte für agentHarnessId, agents.defaults.agentRuntime, agents.list[].agentRuntime und OPENCLAW_AGENT_RUNTIME. /status zeigt die effektive Runtime, die aus der Provider-/Modellroute ausgewählt wurde.
Wenn der ausgewählte Harness überraschend ist, aktivieren Sie agents/harness-Debug-Logging und prüfen Sie den strukturierten Gateway-Datensatz agent harness selected. Er enthält die ausgewählte Harness-ID, den Auswahlgrund, die Runtime-/Fallback-Richtlinie und im auto-Modus das Unterstützungsergebnis jedes Plugin-Kandidaten.
Das gebündelte Codex-Plugin registriert codex als seine Harness-ID. Core behandelt dies als gewöhnliche Plugin-Harness-ID; Codex-spezifische Aliase gehören in das Plugin oder die Operator-Konfiguration, nicht in den gemeinsamen Runtime-Selector.
Provider-plus-Harness-Paarung
Die meisten Harnesses sollten auch einen Provider registrieren. Der Provider macht Modellreferenzen, Auth-Status, Modellmetadaten und/model-Auswahl für den Rest von OpenClaw sichtbar. Der Harness beansprucht diesen Provider dann in supports(...).
Das gebündelte Codex-Plugin folgt diesem Muster:
- bevorzugte Nutzermodellreferenzen:
openai/gpt-5.5 - Kompatibilitätsreferenzen: Legacy-Referenzen
codex/gpt-*bleiben akzeptiert, neue Konfigurationen sollten sie aber nicht als normale Provider-/Modellreferenzen verwenden - Harness-ID:
codex - Auth: synthetische Provider-Verfügbarkeit, weil der Codex-Harness den nativen Codex-Login/die native Codex-Session besitzt
- App-Server-Anfrage: OpenClaw sendet die reine Modell-ID an Codex und lässt den Harness mit dem nativen App-Server-Protokoll kommunizieren
openai/gpt-*-Agentenreferenzen beim offiziellen OpenAI-Provider wählen standardmäßig den Codex-Harness aus. Ältere codex/gpt-*-Referenzen wählen aus Kompatibilitätsgründen weiterhin den Codex-Provider und -Harness aus.
Für Operator-Einrichtung, Modellpräfix-Beispiele und Codex-only-Konfigurationen siehe Codex Harness.
OpenClaw erfordert Codex-App-Server 0.125.0 oder neuer. Das Codex-Plugin prüft den Initialize-Handshake des App-Servers und blockiert ältere oder unversionierte Server, damit OpenClaw nur gegen die Protokolloberfläche läuft, mit der es getestet wurde. Die Untergrenze 0.125.0 enthält die native MCP-Hook-Payload-Unterstützung, die in Codex 0.124.0 eingeführt wurde, während OpenClaw an die neuere getestete stabile Linie gebunden wird.
Tool-Ergebnis-Middleware
Gebündelte Plugins können Runtime-neutrale Tool-Ergebnis-Middleware überapi.registerAgentToolResultMiddleware(...) anhängen, wenn ihr Manifest die Ziel-Runtime-IDs in contracts.agentToolResultMiddleware deklariert. Diese vertrauenswürdige Schnittstelle ist für asynchrone Tool-Ergebnis-Transformationen gedacht, die ausgeführt werden müssen, bevor Pi oder Codex Tool-Ausgaben wieder in das Modell einspeist.
Legacy-gebündelte Plugins können weiterhin api.registerCodexAppServerExtensionFactory(...) für Middleware verwenden, die nur für den Codex-App-Server gilt, neue Ergebnis-Transformationen sollten jedoch die Runtime-neutrale API verwenden. Der Pi-only-Hook api.registerEmbeddedExtensionFactory(...) wurde entfernt; Pi-Tool-Ergebnis-Transformationen müssen Runtime-neutrale Middleware verwenden.
Terminale Ergebnisklassifizierung
Native Harnesses, die ihre eigene Protokollprojektion besitzen, könnenclassifyAgentHarnessTerminalOutcome(...) aus openclaw/plugin-sdk/agent-harness-runtime verwenden, wenn ein abgeschlossener Turn keinen sichtbaren Assistententext erzeugt hat. Der Helper gibt empty, reasoning-only oder planning-only zurück, damit die Fallback-Richtlinie von OpenClaw entscheiden kann, ob auf einem anderen Modell erneut versucht werden soll. Er lässt Prompt-Fehler, laufende Turns und beabsichtigte stille Antworten wie NO_REPLY bewusst unklassifiziert.
Nativer Codex-Harness-Modus
Der gebündeltecodex-Harness ist der native Codex-Modus für eingebettete OpenClaw-Agenten-Turns. Aktivieren Sie zuerst das gebündelte codex-Plugin und nehmen Sie codex in plugins.allow auf, wenn Ihre Konfiguration eine restriktive Allowlist verwendet. Native App-Server-Konfigurationen sollten openai/gpt-* verwenden; OpenAI-Agenten-Turns wählen standardmäßig den Codex-Harness. Legacy-Routen openai-codex/* sollten mit openclaw doctor --fix repariert werden, und Legacy-Modellreferenzen codex/* bleiben Kompatibilitätsaliase für den nativen Harness.
Wenn dieser Modus läuft, besitzt Codex die native Thread-ID, das Resume-Verhalten, Compaction und die App-Server-Ausführung. OpenClaw besitzt weiterhin den Chatkanal, den sichtbaren Transkriptspiegel, die Tool-Richtlinie, Genehmigungen, Medienauslieferung und Session-Auswahl. Verwenden Sie Provider/Modell agentRuntime.id: "codex", wenn Sie nachweisen müssen, dass nur der Codex-App-Server-Pfad den Lauf beanspruchen kann. Explizite Plugin-Runtimes schlagen geschlossen fehl; Codex-App-Server-Auswahlfehler und Runtime-Fehler werden nicht über Pi erneut versucht.
Runtime-Striktheit
Standardmäßig verwendet OpenClaw die Provider-/Modell-Runtime-Richtlinieauto: Registrierte Plugin-Harnesses können ein Provider-/Modellpaar beanspruchen, und Pi verarbeitet den Turn, wenn keines passt. OpenAI-Agentenreferenzen beim offiziellen OpenAI-Provider verwenden standardmäßig Codex. Verwenden Sie eine explizite Provider-/Modell-Plugin-Runtime wie agentRuntime.id: "codex", wenn eine fehlende Harness-Auswahl fehlschlagen soll, statt über Pi geroutet zu werden. Ausfälle ausgewählter Plugin-Harnesses schlagen immer hart fehl. Dies blockiert keine explizite Provider-/Modell-Konfiguration agentRuntime.id: "pi".
Für Codex-only-eingebettete Läufe:
Native Sessions und Transkriptspiegel
Ein Harness kann eine native Session-ID, Thread-ID oder ein Resume-Token auf Daemon-Seite behalten. Halten Sie diese Bindung explizit mit der OpenClaw-Session verknüpft und spiegeln Sie nutzersichtbare Assistenten-/Tool-Ausgaben weiterhin in das OpenClaw-Transkript. Das OpenClaw-Transkript bleibt die Kompatibilitätsschicht für:- kanalsichtbaren Session-Verlauf
- Transkriptsuche und Indexierung
- Wechsel zurück zum eingebauten Pi-Harness in einem späteren Turn
- generisches Verhalten für
/new,/resetund Session-Löschung
reset(...), damit OpenClaw sie löschen kann, wenn die besitzende OpenClaw-Session zurückgesetzt wird.
Tool- und Medienergebnisse
Core erstellt die OpenClaw-Toolliste und übergibt sie an den vorbereiteten Versuch. Wenn ein Harness einen dynamischen Tool-Call ausführt, geben Sie das Tool-Ergebnis über die Harness-Ergebnisform zurück, statt selbst Kanalmedien zu senden. So bleiben Text-, Bild-, Video-, Musik-, TTS-, Genehmigungs- und Messaging-Tool-Ausgaben auf demselben Auslieferungspfad wie Pi-gestützte Läufe.Aktuelle Einschränkungen
- Der öffentliche Importpfad ist generisch, aber einige Attempt-/Result-Typaliase tragen aus Kompatibilitätsgründen weiterhin
Pi-Namen. - Die Installation von Drittanbieter-Harnesses ist experimentell. Bevorzugen Sie Provider-Plugins, bis Sie eine native Session-Runtime benötigen.
- Harness-Wechsel werden über Turns hinweg unterstützt. Wechseln Sie Harnesses nicht mitten in einem Turn, nachdem native Tools, Genehmigungen, Assistententext oder Nachrichtensendungen begonnen haben.