Technical reference
Architektur der Agentenlaufzeit
OpenClaw ist für die integrierte Agent-Runtime verantwortlich. Der Runtime-Code befindet sich unter src/agents/, der Modell-/Provider-Transport unter src/llm/, und die für Plugins vorgesehenen Verträge werden über die Barrels openclaw/plugin-sdk/* bereitgestellt.
Runtime-Struktur
| Pfad | Verantwortungsbereich |
|---|---|
src/agents/embedded-agent-runner/ |
Integrierte Versuchsschleife (run.ts, run/), Modellauswahl und Provider-Normalisierung (model*.ts), anfragespezifische Parameter je Provider (extra-params.*), Compaction sowie Verknüpfung von Transkript und Sitzung. |
src/agents/sessions/ |
Sitzungspersistenz (session-manager.ts), Ressourcenerkennung (package-manager.ts, resource-loader.ts), Laden von extensions innerhalb der Sitzung, Prompt-Vorlagen, Skills, Themes und TUI-basierte Tool-Renderer (tools/). |
packages/agent-core/ |
Wiederverwendbarer Agent-Kern (@openclaw/agent-core): Agentenschleife, Harness-Typen, Nachrichten, Compaction-Hilfsfunktionen, Prompt-Vorlagen, Skills und Verträge für die Sitzungsspeicherung. |
src/agents/runtime/ |
OpenClaw-Fassade, die @openclaw/agent-core mit der LLM-Runtime des Plugin-SDK verbindet und diese zusammen mit lokalen Proxy-Hilfsfunktionen erneut exportiert. |
src/agents/agent-tools*.ts |
OpenClaw-eigene Tool-Definitionen, Parameterschemas, Tool-Richtlinien, Adapter vor und nach Tool-Aufrufen sowie Bearbeitungs-Tools für Host und Sandbox. |
src/agents/agent-hooks/ |
Integrierte Runtime-Hooks: Compaction-Schutzmechanismus, Compaction-Anweisungen, Kontextbereinigung. |
src/agents/harness/ |
Harness-Registry, Auswahlrichtlinie und Lebenszyklus für die integrierten und von Plugins registrierten Harnesses. |
src/llm/ |
Modell-/Provider-Registry, Transport-Hilfsfunktionen und providerspezifische Stream-Implementierungen (src/llm/providers/). |
Grenzen
Der Kern ruft die integrierte Runtime über OpenClaw-Module und SDK-Barrels auf; es verbleiben keine externen Pakete für Agent-Frameworks. Plugins verwenden die dokumentierten Einstiegspunkte openclaw/plugin-sdk/* und importieren keine Interna aus src/**.
@earendil-works/pi-tui bleibt eine Drittanbieterabhängigkeit: ein Toolkit für Terminalkomponenten, das von der lokalen TUI und den Tool-Renderern für Sitzungen verwendet wird. Seine Internalisierung wäre ein separates Vendoring-Vorhaben.
Manifeste
Ressourcenpakete deklarieren OpenClaw-Ressourcen in den package.json-Metadaten. Einträge sind Dateipfade oder Globs relativ zum Paketstamm:
{ "openclaw": { "extensions": ["extensions/index.ts"], "skills": ["skills/*.md"], "prompts": ["prompts/*.md"], "themes": ["themes/*.json"] }}Ressourcentypen, die nicht in einem Manifest aufgeführt sind, greifen auf die Erkennung der konventionellen Verzeichnisse extensions/, skills/, prompts/ und themes/ zurück.
Runtime-Auswahl
- Die ID der integrierten Runtime ist
openclaw. Der veraltete Aliaspiwird zuopenclawnormalisiert;codex-app-serverwird zucodexnormalisiert. - Plugin-Harnesses registrieren zusätzliche Runtime-IDs (zum Beispiel
codex). - Die Runtime-Richtlinie wird über die modell-/providerspezifische Konfiguration
agentRuntime.idfestgelegt (der Modelleintrag hat Vorrang vor dem Providereintrag). Nicht festgelegt oderdefaultwird zuautoaufgelöst. autowählt einen registrierten Plugin-Harness aus, der die effektive Provider-Route unterstützt, andernfalls die integrierte OpenClaw-Runtime. Ein Provider- oder Modellpräfix allein wählt niemals einen Harness aus.- OpenAI darf
codexnur für eine exakt übereinstimmende offizielle HTTPS-Route für Platform Responses oder ChatGPT Responses implizit auswählen, wenn keine vom Autor festgelegte Anforderungsüberschreibung vorliegt. Completions-Adapter, benutzerdefinierte Endpunkte und Routen mit vom Autor festgelegtem Anfrageverhalten verbleiben aufopenclaw; offizielle Klartext-HTTP-Endpunkte werden abgelehnt. Siehe Implizite OpenAI-Agent-Runtime.