Das OpenClaw App SDK ist die öffentliche Client-API für Apps außerhalb des OpenClaw-Prozesses. Verwenden SieDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
@openclaw/sdk, wenn ein Skript, Dashboard,
CI-Job, eine IDE-Erweiterung oder eine andere externe App eine Verbindung zum
Gateway herstellen, Agent-Läufe starten, Ereignisse streamen, auf Ergebnisse
warten, Arbeit abbrechen oder Gateway-Ressourcen prüfen möchte.
Das App SDK unterscheidet sich vom Plugin SDK.
@openclaw/sdk kommuniziert von außerhalb von OpenClaw mit dem Gateway.
openclaw/plugin-sdk/* ist nur für Plugins vorgesehen, die innerhalb von
OpenClaw laufen und Provider, Kanäle, Tools, Hooks oder vertrauenswürdige
Runtimes registrieren.Was heute ausgeliefert wird
@openclaw/sdk wird mit Folgendem ausgeliefert:
| Oberfläche | Status | Funktion |
|---|---|---|
OpenClaw | Bereit | Haupteinstiegspunkt für Clients. Verwaltet Transport, Verbindung, Anfragen und Ereignisse. |
GatewayClientTransport | Bereit | WebSocket-Transport, gestützt durch den Gateway-Client. |
oc.agents | Bereit | Listet, erstellt, aktualisiert, löscht und ruft Agent-Handles ab. |
Agent.run() | Bereit | Startet einen Gateway-agent-Lauf und gibt einen Run zurück. |
oc.runs | Bereit | Erstellt, ruft ab, wartet auf, bricht ab und streamt Läufe. |
Run.events() | Bereit | Streamt normalisierte Ereignisse pro Lauf mit Replay für schnelle Läufe. |
Run.wait() | Bereit | Ruft agent.wait auf und gibt ein stabiles RunResult zurück. |
Run.cancel() | Bereit | Ruft sessions.abort nach Lauf-ID auf, mit Sitzungsschlüssel, falls verfügbar. |
oc.sessions | Bereit | Erstellt, löst auf, sendet an, patcht, compactet und ruft Sitzungs-Handles ab. |
Session.send() | Bereit | Ruft sessions.send auf und gibt einen Run zurück. |
oc.models | Bereit | Ruft models.list und den aktuellen models.authStatus-Status-RPC auf. |
oc.tools | Teilweise | Listet Tool-Katalog und effektive Tools; direkte Tool-Aufrufe sind nicht verdrahtet. |
oc.approvals | Bereit | Listet und löst Exec-Genehmigungen über Gateway-Genehmigungs-RPCs. |
oc.rawEvents() | Bereit | Stellt rohe Gateway-Ereignisse für fortgeschrittene Verbraucher bereit. |
normalizeGatewayEvent() | Bereit | Wandelt rohe Gateway-Ereignisse in die stabile SDK-Ereignisform um. |
AgentRunParams, RunResult, RunStatus, OpenClawEvent,
OpenClawEventType, GatewayEvent, OpenClawTransport,
GatewayRequestOptions, SessionCreateParams, SessionSendParams,
RuntimeSelection, EnvironmentSelection, WorkspaceSelection,
ApprovalMode und verwandte Ergebnistypen.
Verbindung zu einem Gateway herstellen
Erstellen Sie einen Client mit einer expliziten Gateway-URL oder injizieren Sie einen benutzerdefinierten Transport für Tests und eingebettete App-Runtimes.new OpenClaw({ gateway: "ws://..." }) ist äquivalent zu url. Die Option
gateway: "auto" wird vom Konstruktor akzeptiert, aber die automatische
Gateway-Erkennung ist noch kein separates SDK-Feature; übergeben Sie url,
wenn die App noch nicht weiß, wie sie das Gateway erkennen soll.
Übergeben Sie für Tests ein Objekt, das OpenClawTransport implementiert:
Einen Agent ausführen
Verwenden Sieoc.agents.get(id), wenn die App ein Agent-Handle benötigt, und
rufen Sie anschließend agent.run() auf.
openai/gpt-5.5 werden in
Gateway-Overrides für provider und model aufgeteilt. timeoutMs bleibt im
SDK in Millisekunden und wird für den agent-RPC in Gateway-Timeout-Sekunden
umgewandelt.
run.wait() verwendet den Gateway-agent.wait-RPC. Eine Warte-Deadline, die
abläuft, während der Lauf noch aktiv ist, gibt status: "accepted" zurück,
anstatt vorzutäuschen, dass der Lauf selbst eine Zeitüberschreitung hatte.
Runtime-Timeouts, abgebrochene Läufe und stornierte Läufe werden zu timed_out
oder cancelled normalisiert.
Sitzungen erstellen und wiederverwenden
Verwenden Sie Sitzungen, wenn die App dauerhaften Transkriptzustand benötigt.Session.send() ruft sessions.send auf und gibt einen Run zurück.
Sitzungs-Handles unterstützen außerdem:
Ereignisse streamen
Das SDK normalisiert rohe Gateway-Ereignisse in einen stabilenOpenClawEvent-Umschlag:
| Ereignistyp | Quell-Gateway-Ereignis |
|---|---|
run.started | Start des agent-Lebenszyklus |
run.completed | Ende des agent-Lebenszyklus |
run.failed | Fehler im agent-Lebenszyklus |
run.cancelled | Ende eines abgebrochenen/stornierten Lebenszyklus |
run.timed_out | Ende des Timeout-Lebenszyklus |
assistant.delta | Streaming-Delta des Assistant |
assistant.message | Assistant-Nachricht |
thinking.delta | Denk- oder Plan-Stream |
tool.call.started | Start von Tool/Element/Befehl |
tool.call.delta | Aktualisierung von Tool/Element/Befehl |
tool.call.completed | Abschluss von Tool/Element/Befehl |
tool.call.failed | Fehler oder blockierter Status von Tool/Element/Befehl |
approval.requested | Exec- oder Plugin-Genehmigungsanfrage |
approval.resolved | Exec- oder Plugin-Genehmigungsauflösung |
session.created | sessions.changed-Erstellung |
session.updated | sessions.changed-Aktualisierung |
session.compacted | sessions.changed-Compaction |
task.updated | Aufgabenaktualisierungsereignisse |
artifact.updated | Patch-Stream-Ereignisse |
raw | Jedes Ereignis, das noch kein stabiles SDK-Mapping hat |
Run.events() filtert Ereignisse auf eine Lauf-ID und spielt bereits
gesehene Ereignisse für schnelle Läufe erneut ab. Das bedeutet, dass der
dokumentierte Ablauf sicher ist:
oc.events(). Verwenden Sie für rohe
Gateway-Frames oc.rawEvents().
Modelle, Tools und Genehmigungen
Modell-Helper werden auf aktuelle Gateway-Methoden abgebildet:Heute ausdrücklich nicht unterstützt
Das SDK enthält Namen für das Produktmodell, das wir anstreben, tut aber nicht stillschweigend so, als würden Gateway-RPCs existieren. Diese Aufrufe werfen derzeit explizite Nicht-unterstützt-Fehler:workspace, runtime, environment und approvals sind als
zukünftige Form typisiert, aber das aktuelle Gateway unterstützt diese
Overrides beim agent-RPC nicht. Wenn Aufrufer sie übergeben, wirft das SDK
vor dem Absenden des Laufs, damit Arbeit nicht versehentlich mit dem
Standardverhalten für Workspace, Runtime, Umgebung oder Genehmigung ausgeführt
wird.
App SDK im Vergleich zum Plugin SDK
Verwenden Sie das App SDK, wenn Code außerhalb von OpenClaw lebt:- Node-Skripte, die Agent-Läufe starten oder beobachten
- CI-Jobs, die ein Gateway aufrufen
- Dashboards und Admin-Panels
- IDE-Erweiterungen
- externe Bridges, die keine Kanal-Plugins werden müssen
- Integrationstests mit gefälschten oder echten Gateway-Transporten
- Provider-Plugins
- Kanal-Plugins
- Tool- oder Lebenszyklus-Hooks
- Agent-Harness-Plugins
- vertrauenswürdige Runtime-Helper
@openclaw/sdk importieren. Plugin-Code sollte aus
dokumentierten openclaw/plugin-sdk/*-Unterpfaden importieren. Vermischen Sie
die beiden Verträge nicht.