Fundamentals
Agentenlaufzeitumgebungen
Eine Agent-Runtime besitzt genau eine vorbereitete Modellschleife: Sie empfängt den Prompt, steuert die Modellausgabe, verarbeitet native Tool-Aufrufe und gibt den abgeschlossenen Turn an OpenClaw zurück.
Runtimes können leicht mit Providern verwechselt werden, da beide in der Nähe der Modellkonfiguration erscheinen. Es handelt sich um unterschiedliche Ebenen:
| Ebene | Beispiele | Bedeutung |
|---|---|---|
| Provider | anthropic, github-copilot, openai |
Wie OpenClaw sich authentifiziert, Modelle ermittelt und Modellreferenzen benennt. |
| Modell | claude-opus-4-6, gpt-5.6-sol |
Das für den Agent-Turn ausgewählte Modell. |
| Agent-Runtime | claude-cli, codex, copilot, openclaw |
Die Low-Level-Schleife oder das Backend, die bzw. das den vorbereiteten Turn ausführt. |
| Kanal | Discord, Slack, Telegram, WhatsApp | Wo Nachrichten in OpenClaw eingehen und OpenClaw verlassen. |
Ein Harness ist die Implementierung, die eine Agent-Runtime bereitstellt
(Codebegriff). Beispielsweise implementiert das gebündelte Codex-Harness die Runtime codex.
Die öffentliche Konfiguration verwendet agentRuntime.id in Provider- oder Modelleinträgen;
Runtime-Schlüssel für den gesamten Agent sind veraltet und werden ignoriert. openclaw doctor --fix
entfernt alte Runtime-Festlegungen für den gesamten Agent und schreibt veraltete
Runtime-Modellreferenzen in kanonische Provider-/Modellreferenzen sowie, falls erforderlich,
in eine modellbezogene Runtime-Richtlinie um.
Zwei Runtime-Familien:
- Eingebettete Harnesses werden innerhalb der vorbereiteten Agent-Schleife von OpenClaw ausgeführt:
die integrierte Runtime
openclawsowie registrierte Plugin-Harnesses wiecodexundcopilot. - CLI-Backends führen einen lokalen CLI-Prozess aus, während die Modellreferenz
kanonisch bleibt. Beispielsweise bedeutet
anthropic/claude-opus-5mit einem modellbezogenenagentRuntime.id: "claude-cli": „Das Anthropic-Modell auswählen und über die Claude CLI ausführen.“claude-cliist keine ID eines eingebetteten Harnesses und darf nicht an die AgentHarness-Auswahl übergeben werden.
Das Harness copilot ist ein separates, optionales externes Plugin-Harness für die
GitHub Copilot CLI; Informationen zur nutzerseitigen Entscheidung zwischen PI, Codex und
der GitHub-Copilot-Agent-Runtime finden Sie unter GitHub-Copilot-Agent-Runtime.
Codex-Oberflächen
Mehrere Oberflächen verwenden den Namen Codex:
| Oberfläche | OpenClaw-Name/-Konfiguration | Funktion |
|---|---|---|
| Native Codex-App-Server-Runtime | openai/*-Modellreferenzen |
Führt eingebettete OpenAI-Agent-Turns über den Codex-App-Server aus. Dies ist die übliche Einrichtung mit einem ChatGPT-/Codex-Abonnement. |
| Codex-OAuth-Authentifizierungsprofile | openai-OAuth-Profile |
Speichert die Authentifizierung des ChatGPT-/Codex-Abonnements, die das Codex-App-Server-Harness verwendet. |
| Codex-ACP-Adapter | runtime: "acp", agentId: "codex" |
Führt Codex über die externe ACP-/acpx-Steuerungsebene aus. Nur verwenden, wenn ACP/acpx ausdrücklich angefordert wird. |
| Nativer Codex-Befehlssatz zur Chat-Steuerung | /codex ... |
Bindet Codex-App-Server-Threads, setzt sie fort, steuert und beendet sie und zeigt Informationen zu ihnen an. |
| OpenAI-Platform-API-Route für Nicht-Agent-Oberflächen | openai/* plus API-Schlüssel-Authentifizierung |
Direkte OpenAI-APIs wie Bilder, Einbettungen, Sprache und Echtzeit. |
Diese Oberflächen sind bewusst voneinander unabhängig. Durch Aktivieren des Plugins codex
werden native App-Server-Funktionen verfügbar; openclaw doctor --fix ist für
die Reparatur veralteter Codex-Routen und die Bereinigung überholter Sitzungsfestlegungen zuständig. Die Auswahl von openai/*
für ein Agent-Modell bedeutet nun „dies über Codex ausführen“, sofern keine
Nicht-Agent-Oberfläche der OpenAI API verwendet wird.
Die übliche Einrichtung mit einem ChatGPT-/Codex-Abonnement verwendet Codex OAuth zur Authentifizierung,
behält jedoch openai/* als Modellreferenz bei und wählt die Runtime codex aus:
{ agents: { defaults: { model: "openai/gpt-5.6-sol", }, },}Das bedeutet, dass OpenClaw eine OpenAI-Modellreferenz auswählt und anschließend die Codex-App-Server-Runtime auffordert, den eingebetteten Agent-Turn auszuführen. Es bedeutet weder „API-Abrechnung verwenden“, noch dass der Kanal, der Modell-Provider-Katalog oder der Sitzungsspeicher von OpenClaw zu Codex wird.
Wenn das gebündelte Plugin codex aktiviert ist, verwenden Sie zur natürlichsprachlichen
Codex-Steuerung anstelle von ACP die native Befehlsoberfläche /codex
(/codex bind, /codex threads, /codex resume, /codex steer,
/codex stop). Verwenden Sie ACP für Codex nur, wenn ausdrücklich ACP/acpx angefordert
oder der Pfad des ACP-Adapters getestet wird. Claude Code, Gemini CLI, OpenCode,
Cursor und ähnliche externe Harnesses verwenden weiterhin ACP.
Entscheidungsbaum:
- Codex binden/steuern/Thread fortsetzen/lenken/beenden -> native Befehlsoberfläche
/codex, wenn das gebündelte Plugincodexaktiviert ist. - Codex als eingebettete Runtime oder die normale abonnementgestützte Codex-Agent-Erfahrung ->
openai/<model>. - OpenClaw ausdrücklich für ein OpenAI-Modell ausgewählt -> Modellreferenz als
openai/<model>beibehalten und die Provider-/Modell-Runtime-Richtlinie aufagentRuntime.id: "openclaw"festlegen. Ein ausgewähltes OAuth-Profilopenaiwird intern über den Codex-Authentifizierungstransport von OpenClaw geleitet. - Veraltete Codex-Modellreferenzen in der Konfiguration -> mit
openclaw doctor --fixzuopenai/<model>reparieren; Doctor behält die Codex-Authentifizierungsroute bei, indem bei Bedarf ein provider-/modellbezogenesagentRuntime.id: "codex"hinzugefügt wird, sofern die alte Modellreferenz dies implizierte. Veraltetecodex-cli/*-Modellreferenzen werden zur gleichen Codex-App-Server-Routeopenai/<model>repariert; OpenClaw enthält kein gebündeltes Codex-CLI-Backend mehr. - ACP, acpx oder Codex-ACP-Adapter ausdrücklich angefordert ->
runtime: "acp"undagentId: "codex". - Claude Code, Gemini CLI, OpenCode, Cursor, Droid oder ein anderes externes Harness -> ACP/acpx, nicht die native Sub-Agent-Runtime.
| Gemeint ist ... | Verwenden Sie ... |
|---|---|
| Chat-/Thread-Steuerung des Codex-App-Servers | /codex ... aus dem gebündelten Plugin codex |
| Eingebettete Agent-Runtime des Codex-App-Servers | Agent-Modellreferenzen openai/* |
| OpenAI Codex OAuth | OAuth-Profile openai |
| Claude Code oder ein anderes externes Harness | ACP/acpx |
Informationen zur Aufteilung der Präfixe der OpenAI-Familie finden Sie unter OpenAI und Modell-Provider. Informationen zum Supportvertrag der Codex-Runtime finden Sie unter Codex-Harness-Runtime.
Runtime-Zuständigkeit
Unterschiedliche Runtimes sind für unterschiedliche Teile der Schleife zuständig:
| Oberfläche | In OpenClaw eingebettet | Codex-App-Server |
|---|---|---|
| Eigentümer der Modellschleife | OpenClaw, über den eingebetteten OpenClaw-Runner | Codex-App-Server |
| Kanonischer Thread-Status | OpenClaw-Transkript | Codex-Thread sowie eine Spiegelung des OpenClaw-Transkripts |
| Dynamische OpenClaw-Tools | Native OpenClaw-Tool-Schleife | Über den Codex-Adapter angebunden |
| Native Shell- und Datei-Tools | OpenClaw-Pfad | Codex-native Tools, soweit unterstützt über native Hooks angebunden |
| Kontext-Engine | Native OpenClaw-Kontextzusammenstellung | OpenClaw projiziert den zusammengestellten Kontext in den Codex-Turn |
| Compaction | OpenClaw oder ausgewählte Kontext-Engine | Codex-native Compaction mit OpenClaw-Benachrichtigungen und Spiegelpflege |
| Kanalzustellung | OpenClaw | OpenClaw |
Entwurfsregel: Wenn OpenClaw für die Oberfläche zuständig ist, kann es das normale Verhalten von Plugin-Hooks bereitstellen. Wenn die native Runtime für die Oberfläche zuständig ist, benötigt OpenClaw Runtime-Ereignisse oder native Hooks. Wenn die native Runtime für den kanonischen Thread-Status zuständig ist, spiegelt OpenClaw den Kontext und projiziert ihn, anstatt nicht unterstützte Interna umzuschreiben.
Runtime-Auswahl
OpenClaw löst nach der Provider- und Modellauflösung eine eingebettete Runtime in dieser Reihenfolge auf:
- Modellbezogene Runtime-Richtlinie hat Vorrang. Sie befindet sich in einem konfigurierten
Provider-Modelleintrag oder in
agents.defaults.models["provider/model"].agentRuntime/agents.entries.*.models["provider/model"].agentRuntime. Ein Provider- Platzhalter wieagents.defaults.models["vllm/*"].agentRuntimegreift nach der exakten Modellrichtlinie, sodass dynamisch ermittelte Provider-Modelle dieselbe Runtime verwenden können, ohne exakte modellspezifische Ausnahmen zu überschreiben. - Provider-bezogene Runtime-Richtlinie:
models.providers.<provider>.agentRuntime. - Modus
auto: Registrierte Plugin-Runtimes können unterstützte Provider-/Modellpaare beanspruchen. - Wenn im Modus
autonichts den Turn beansprucht, fällt OpenClaw aufopenclawals Kompatibilitäts-Runtime zurück. Verwenden Sie eine explizite Runtime-ID, wenn die Ausführung strikt sein muss.
Runtime-Festlegungen für die gesamte Sitzung und den gesamten Agent werden ignoriert: OPENCLAW_AGENT_RUNTIME,
der Sitzungsstatus agentHarnessId/agentRuntimeOverride, agents.defaults.agentRuntime
und agents.entries.*.agentRuntime. Führen Sie openclaw doctor --fix aus, um veraltete
Runtime-Konfigurationen für den gesamten Agent zu entfernen und veraltete Runtime-Modellreferenzen
zu konvertieren, sofern die Absicht beibehalten werden kann.
Explizite Provider-/Modell-Plugin-Runtimes schlagen geschlossen fehl: agentRuntime.id: "codex"
bei einem Provider oder Modell bedeutet Codex oder einen eindeutigen Auswahl-/Runtime-Fehler – es wird
niemals stillschweigend zu OpenClaw zurückgeleitet. Nur auto darf einen nicht zugeordneten
Turn an OpenClaw leiten.
CLI-Backend-Aliasse unterscheiden sich von IDs eingebetteter Harnesses. Bevorzugte Form für die Claude CLI:
{ agents: { defaults: { model: "anthropic/claude-opus-5", models: { "anthropic/claude-opus-5": { agentRuntime: { id: "claude-cli" }, }, }, }, },}Veraltete Referenzen wie claude-cli/claude-opus-4-7 werden aus
Kompatibilitätsgründen weiterhin unterstützt, neue Konfigurationen sollten jedoch Provider und Modell
kanonisch halten und das Ausführungs-Backend in der Provider-/Modell-Runtime-Richtlinie angeben.
Veraltete Referenzen codex-cli/* unterscheiden sich davon: Doctor migriert sie zu openai/*, sodass
sie über das Codex-App-Server-Harness ausgeführt werden, anstatt ein Codex-
CLI-Backend beizubehalten.
Der Modus auto ist für die meisten Provider bewusst konservativ. OpenAI-Agent-
Modelle bilden die Ausnahme: Sowohl eine nicht festgelegte Runtime als auch auto werden zum Codex-
Harness aufgelöst. Eine explizite OpenClaw-Runtime-Konfiguration bleibt eine optionale Kompatibilitätsroute
für Agent-Turns openai/*; in Kombination mit einem ausgewählten OAuth-
Profil openai leitet OpenClaw diesen Pfad intern über den Codex-Authentifizierungstransport,
während die öffentliche Modellreferenz openai/* bleibt. Veraltete OpenAI-
Runtime-Sitzungsfestlegungen werden bei der Runtime-Auswahl ignoriert und können mit
openclaw doctor --fix bereinigt werden.
Wenn openclaw doctor davor warnt, dass das Plugin codex aktiviert ist, während veraltete
Codex-Modellreferenzen in der Konfiguration verbleiben, behandeln Sie dies als veralteten Routing-Zustand und führen Sie
openclaw doctor --fix aus, um ihn auf openai/* mit der Codex-Runtime umzuschreiben.
GitHub-Copilot-Agent-Runtime
Das externe Plugin @openclaw/copilot registriert eine optionale copilot-Runtime,
die auf der GitHub Copilot CLI (@github/copilot-sdk) basiert. Es beansprucht den
kanonischen Abonnement-Provider github-copilot und wird von
auto niemals ausgewählt. Aktivieren Sie es über agentRuntime.id je Modell oder Provider:
{ agents: { defaults: { model: "github-copilot/gpt-5.5", models: { "github-copilot/gpt-5.5": { agentRuntime: { id: "copilot" }, }, }, }, },}Der Harness beansprucht seinen Provider, seine Runtime, seinen CLI-Sitzungsschlüssel und sein Authentifizierungsprofilpräfix
in extensions/copilot/doctor-contract-api.ts, das openclaw doctor
automatisch lädt. Informationen zur Konfiguration, Authentifizierung, Transkriptspiegelung, Compaction, zum
deklarativen Doctor-Vertrag und zur umfassenderen SDK-Entscheidung zwischen PI, Codex und Copilot
finden Sie unter GitHub-Copilot-Agent-Runtime.
Kompatibilitätsvertrag
Wenn eine Runtime nicht OpenClaw ist, sollte ihre Dokumentation angeben, welche OpenClaw-Oberflächen sie unterstützt:
| Frage | Warum dies relevant ist |
|---|---|
| Wer ist für die Modellschleife zuständig? | Bestimmt, wo Wiederholungsversuche, Tool-Fortsetzungen und Entscheidungen über die endgültige Antwort erfolgen. |
| Wer ist für den kanonischen Threadverlauf zuständig? | Bestimmt, ob OpenClaw den Verlauf bearbeiten oder nur spiegeln kann. |
| Funktionieren dynamische OpenClaw-Tools? | Nachrichtenübermittlung, Sitzungen, Cron und OpenClaw-eigene Tools sind darauf angewiesen. |
| Funktionieren Hooks für dynamische Tools? | Plugins erwarten before_tool_call, after_tool_call und Middleware rund um OpenClaw-eigene Tools. |
| Funktionieren Hooks für native Tools? | Shell-, Patch- und Runtime-eigene Tools benötigen native Hook-Unterstützung für Richtlinien und Beobachtung. |
| Wird der Lebenszyklus der Kontext-Engine ausgeführt? | Speicher- und Kontext-Plugins sind vom Lebenszyklus für Zusammenstellung, Aufnahme, Nachbearbeitung und Compaction abhängig. |
| Welche Compaction-Daten werden bereitgestellt? | Einige Plugins benötigen nur Benachrichtigungen, andere Metadaten zu beibehaltenen und verworfenen Inhalten. |
| Was wird absichtlich nicht unterstützt? | Benutzer sollten keine Gleichwertigkeit mit OpenClaw annehmen, wenn die native Runtime mehr Zustand verwaltet. |
Der Unterstützungsvertrag der Codex-Runtime ist unter Codex-Harness-Runtime dokumentiert.
Statusbezeichnungen
Die Statusausgabe kann sowohl Execution- als auch Runtime-Bezeichnungen anzeigen. Verstehen Sie diese als
Diagnoseangaben, nicht als Providernamen:
- Eine Modellreferenz wie
openai/gpt-5.6-solbezeichnet den ausgewählten Provider und das ausgewählte Modell. - Eine Runtime-ID wie
codexbezeichnet die Schleife, die den Durchlauf ausführt. - Eine Kanalbezeichnung wie Telegram oder Discord gibt an, wo die Unterhaltung stattfindet.
Wenn ein Durchlauf eine unerwartete Runtime anzeigt, prüfen Sie zuerst die Runtime-Richtlinie des ausgewählten Providers/Modells. Veraltete Runtime-Festlegungen für Sitzungen bestimmen das Routing nicht mehr.