Agent-Harness-Plugins
Ein Agent-Harness ist der Low-Level-Executor für einen vorbereiteten OpenClaw-Agenten- Zug. Es ist kein Modell-Provider, kein Kanal und keine Tool-Registry. Verwenden Sie diese Oberfläche nur für gebündelte oder vertrauenswürdige native Plugins. Der Vertrag ist weiterhin experimentell, da die Parametertypen absichtlich den aktuellen eingebetteten Runner widerspiegeln.Wann ein Harness verwendet werden sollte
Registrieren Sie ein Agent-Harness, wenn eine Modelfamilie eine eigene native Sitzungs- Laufzeit hat und der normale OpenClaw-Provider-Transport die falsche Abstraktion ist. Beispiele:- ein nativer Coding-Agent-Server, der Threads und Kompaktierung selbst verwaltet
- eine lokale CLI oder ein Daemon, der native Plan-/Reasoning-/Tool-Ereignisse streamen muss
- eine Modell-Laufzeit, die zusätzlich zum OpenClaw-Sitzungsprotokoll eine eigene Resume-ID benötigt
Was der Core weiterhin verwaltet
Bevor ein Harness ausgewählt wird, hat OpenClaw bereits Folgendes aufgelöst:- Provider und Modell
- Laufzeit-Auth-Status
- Thinking-Stufe und Kontextbudget
- das OpenClaw-Transkript bzw. die Sitzungsdatei
- Workspace, Sandbox und Tool-Richtlinie
- Kanal-Antwort-Callbacks und Streaming-Callbacks
- Richtlinie für Modell-Fallback und Live-Modellwechsel
Ein Harness registrieren
Import:openclaw/plugin-sdk/agent-harness
Auswahlrichtlinie
OpenClaw wählt ein Harness nach der Auflösung von Provider/Modell aus:OPENCLAW_AGENT_RUNTIME=<id>erzwingt ein registriertes Harness mit dieser ID.OPENCLAW_AGENT_RUNTIME=pierzwingt das integrierte PI-Harness.OPENCLAW_AGENT_RUNTIME=autofragt registrierte Harnesses, ob sie den aufgelösten Provider/das aufgelöste Modell unterstützen.- Wenn kein registriertes Harness passt, verwendet OpenClaw PI, sofern der PI-Fallback nicht deaktiviert ist.
auto
kann OpenClaw auf PI zurückfallen, wenn das ausgewählte Plugin-Harness fehlschlägt, bevor ein
Zug Nebeneffekte erzeugt hat. Setzen Sie OPENCLAW_AGENT_HARNESS_FALLBACK=none oder
embeddedHarness.fallback: "none", um diesen Fallback stattdessen zu einem harten Fehler zu machen.
Das gebündelte Codex-Plugin registriert codex als seine Harness-ID. Der Core behandelt dies
als normale Plugin-Harness-ID; Codex-spezifische Aliasse gehören in das Plugin
oder die Operatorkonfiguration, nicht in den gemeinsamen Laufzeit-Selektor.
Pairing von Provider und Harness
Die meisten Harnesses sollten auch einen Provider registrieren. Der Provider macht Modellreferenzen, Auth-Status, Modellmetadaten und die Auswahl über/model für den Rest von
OpenClaw sichtbar. Das Harness beansprucht dann diesen Provider in supports(...).
Das gebündelte Codex-Plugin folgt diesem Muster:
- Provider-ID:
codex - Modellreferenzen für Benutzer:
codex/gpt-5.4,codex/gpt-5.2oder ein anderes Modell, das vom Codex-App-Server zurückgegeben wird - Harness-ID:
codex - Auth: synthetische Provider-Verfügbarkeit, weil das Codex-Harness den nativen Codex-Login/die native Codex-Sitzung verwaltet
- App-Server-Request: OpenClaw sendet die reine Modell-ID an Codex und lässt das Harness mit dem nativen App-Server-Protokoll sprechen
openai/gpt-*-Referenzen bleiben OpenAI-Provider-
Referenzen und verwenden weiterhin den normalen OpenClaw-Providerpfad. Wählen Sie codex/gpt-*,
wenn Sie von Codex verwaltete Auth, Codex-Modellerkennung, native Threads und
Codex-App-Server-Ausführung nutzen möchten. /model kann zwischen den vom Codex-App-Server zurückgegebenen
Codex-Modellen wechseln, ohne OpenAI-Provider-Zugangsdaten zu erfordern.
Informationen zur Operatoreinrichtung, Beispiele für Modellpräfixe und reine Codex-Konfigurationen finden Sie unter
Codex Harness.
OpenClaw erfordert Codex-App-Server 0.118.0 oder neuer. Das Codex-Plugin prüft den
Initialize-Handshake des App-Servers und blockiert ältere oder versionslose Server, damit
OpenClaw nur gegen die Protokolloberfläche läuft, mit der es getestet wurde.
PI-Fallback deaktivieren
Standardmäßig führt OpenClaw eingebettete Agenten mitagents.defaults.embeddedHarness
auf { runtime: "auto", fallback: "pi" } gesetzt aus. Im Modus auto können registrierte Plugin-
Harnesses ein Provider-/Modell-Paar beanspruchen. Wenn keines passt oder wenn ein automatisch ausgewähltes
Plugin-Harness fehlschlägt, bevor es Ausgabe erzeugt, fällt OpenClaw auf PI zurück.
Setzen Sie fallback: "none", wenn Sie nachweisen müssen, dass ein Plugin-Harness die einzige
verwendete Laufzeit ist. Dadurch wird der automatische PI-Fallback deaktiviert; ein explizites
runtime: "pi" oder OPENCLAW_AGENT_RUNTIME=pi wird dadurch nicht blockiert.
Für eingebettete reine-Codex-Läufe:
runtime: "auto" bei und deaktivieren
Sie den Fallback:
OPENCLAW_AGENT_RUNTIME überschreibt weiterhin die konfigurierte Laufzeit. Verwenden Sie
OPENCLAW_AGENT_HARNESS_FALLBACK=none, um den PI-Fallback über die
Umgebung zu deaktivieren.
Native Sitzungen und Transkript-Spiegelung
Ein Harness kann eine native Sitzungs-ID, Thread-ID oder ein daemonseitiges Resume-Token behalten. Halten Sie diese Bindung explizit mit der OpenClaw-Sitzung verknüpft und spiegeln Sie für Benutzer sichtbare Assistenten-/Tool-Ausgaben weiterhin in das OpenClaw-Transkript. Das OpenClaw-Transkript bleibt die Kompatibilitätsschicht für:- sitzungsverlauf, der in Kanälen sichtbar ist
- Transkriptsuche und -indizierung
- späteres Zurückwechseln zum integrierten PI-Harness in einem späteren Zug
- generisches Verhalten von
/new,/resetund Sitzungs-Löschung
reset(...), damit OpenClaw sie
löschen kann, wenn die zugehörige OpenClaw-Sitzung zurückgesetzt wird.
Tool- und Medienergebnisse
Der Core erstellt die OpenClaw-Tool-Liste und übergibt sie an den vorbereiteten Versuch. Wenn ein Harness einen dynamischen Tool-Aufruf ausführt, geben Sie das Tool-Ergebnis über die Ergebnisform des Harnesses zurück, anstatt Kanalmedien selbst zu senden. Dadurch bleiben Text-, Bild-, Video-, Musik-, TTS-, Genehmigungs- und Messaging-Tool-Ausgaben auf demselben Zustellungspfad wie bei PI-gestützten Läufen.Aktuelle Einschränkungen
- Der öffentliche Importpfad ist generisch, aber einige Typaliasse für Versuch/Ergebnis tragen aus
Kompatibilitätsgründen weiterhin
Pi-Namen. - Die Installation von Drittanbieter-Harnesses ist experimentell. Bevorzugen Sie Provider-Plugins, bis Sie eine native Sitzungs-Laufzeit benötigen.
- Das Wechseln von Harnesses zwischen Zügen wird unterstützt. Wechseln Sie Harnesses nicht mitten in einem Zug, nachdem native Tools, Genehmigungen, Assistententext oder Nachrichtensendungen begonnen haben.