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-Ausführungen starten, Events streamen, auf Ergebnisse
warten, Arbeit abbrechen oder Gateway-Ressourcen prüfen soll.
Das App SDK unterscheidet sich vom Plugin SDK.
@openclaw/sdk spricht von außerhalb von OpenClaw mit dem Gateway.
openclaw/plugin-sdk/* ist nur für Plugins gedacht, 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 | Was sie macht |
|---|---|---|
OpenClaw | Bereit | Haupteinstiegspunkt für Clients. Besitzt Transport, Verbindung, Anfragen und Events. |
GatewayClientTransport | Bereit | WebSocket-Transport auf Basis des Gateway-Clients. |
oc.agents | Bereit | Listet, erstellt, aktualisiert, löscht und ruft Agent-Handles ab. |
Agent.run() | Bereit | Startet eine Gateway-agent-Ausführung und gibt einen Run zurück. |
oc.runs | Bereit | Erstellt, ruft ab, wartet auf, bricht ab und streamt Ausführungen. |
Run.events() | Bereit | Streamt normalisierte Events pro Ausführung mit Replay für schnelle Ausführungen. |
Run.wait() | Bereit | Ruft agent.wait auf und gibt ein stabiles RunResult zurück. |
Run.cancel() | Bereit | Ruft sessions.abort nach Ausführungs-ID auf, mit Sitzungsschlüssel, sofern verfügbar. |
oc.sessions | Bereit | Erstellt, löst auf, sendet an, patcht, kompaktiert und ruft Sitzungs-Handles ab. |
Session.send() | Bereit | Ruft sessions.send auf und gibt einen Run zurück. |
oc.tasks | Bereit | Listet, liest und bricht Gateway-Task-Ledger-Einträge ab. |
oc.models | Bereit | Ruft models.list und den aktuellen Status-RPC models.authStatus auf. |
oc.tools | Bereit | Listet, scoped und ruft Gateway-Tools über die Policy-Pipeline auf. |
oc.artifacts | Bereit | Listet, ruft ab und lädt Gateway-Transkript-Artefakte herunter. |
oc.approvals | Bereit | Listet und löst Exec-Freigaben über Gateway-Freigabe-RPCs auf. |
oc.environments | Teilweise | Listet Gateway-lokale und Node-Umgebungskandidaten; Erstellen/Löschen ist nicht verdrahtet. |
oc.rawEvents() | Bereit | Stellt rohe Gateway-Events für fortgeschrittene Consumer bereit. |
normalizeGatewayEvent() | Bereit | Wandelt rohe Gateway-Events in die stabile SDK-Event-Form um. |
AgentRunParams, RunResult, RunStatus, OpenClawEvent,
OpenClawEventType, GatewayEvent, OpenClawTransport,
GatewayRequestOptions, SessionCreateParams, SessionSendParams,
ArtifactSummary, ArtifactQuery, ArtifactsListResult,
ArtifactsGetResult, ArtifactsDownloadResult,
TaskSummary, TaskStatus, TasksListParams, TasksListResult,
TasksGetResult, TasksCancelResult, 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 gleichwertig mit url. Die Option
gateway: "auto" wird vom Konstruktor akzeptiert, aber automatische
Gateway-Erkennung ist noch kein separates SDK-Feature; übergeben Sie url, wenn
die App nicht bereits 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 dann 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-RPC agent.wait. Eine Wait-Deadline, die abläuft,
während die Ausführung noch aktiv ist, gibt status: "accepted" zurück, anstatt
vorzutäuschen, dass die Ausführung selbst einen Timeout hatte. Runtime-Timeouts,
abgebrochene Ausführungen und stornierte Ausführungen 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:
Events streamen
Das SDK normalisiert rohe Gateway-Events in einen stabilenOpenClawEvent-Umschlag:
| Event-Typ | Gateway-Quell-Event |
|---|---|
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 eines Timeout-Lebenszyklus |
assistant.delta | Streaming-Delta des Assistenten |
assistant.message | Assistentennachricht |
thinking.delta | Denk- oder Plan-Stream |
tool.call.started | Start von Tool/Item/Befehl |
tool.call.delta | Aktualisierung von Tool/Item/Befehl |
tool.call.completed | Abschluss von Tool/Item/Befehl |
tool.call.failed | Fehler oder blockierter Status von Tool/Item/Befehl |
approval.requested | Exec- oder Plugin-Freigabeanforderung |
approval.resolved | Exec- oder Plugin-Freigabeauflösung |
session.created | sessions.changed-Erstellung |
session.updated | sessions.changed-Aktualisierung |
session.compacted | sessions.changed-Compaction |
task.updated | Task-Aktualisierungs-Events |
artifact.updated | Patch-Stream-Events |
raw | Jedes Event ohne bisher stabiles SDK-Mapping |
Run.events() filtert Events auf eine Ausführungs-ID und spielt bereits gesehene
Events für schnelle Ausführungen erneut ab. Das bedeutet, dass der dokumentierte
Ablauf sicher ist:
oc.events(). Verwenden Sie für rohe Gateway-Frames
oc.rawEvents().
Modelle, Tools, Artefakte und Freigaben
Modell-Helfer ordnen aktuellen Gateway-Methoden zu:oc.tools.invoke() gibt einen typisierten Umschlag zurück,
anstatt bei Policy- oder Freigabeverweigerungen eine Exception auszulösen.
sessionKey, runId oder taskId:
openclaw tasks unterstützt:
Heute ausdrücklich nicht unterstützt
Das SDK enthält Namen für das Produktmodell, das wir anstreben, tut aber nicht stillschweigend so, als ob Gateway-RPCs existierten. Diese Aufrufe lösen derzeit explizite Nicht-unterstützt-Fehler aus:workspace, runtime, environment und approvals pro Ausführung sind
als zukünftige Form typisiert, aber das aktuelle Gateway unterstützt diese Overrides
im agent-RPC nicht. Wenn Aufrufer sie übergeben, löst das SDK vor dem Absenden der
Ausführung eine Exception aus, damit Arbeit nicht versehentlich mit Standardverhalten
für Workspace, Runtime, Umgebung oder Freigaben ausgeführt wird.
App SDK vs. Plugin SDK
Verwenden Sie das App SDK, wenn Code außerhalb von OpenClaw lebt:- Node-Skripte, die Agent-Ausführungen starten oder beobachten
- CI-Jobs, die ein Gateway aufrufen
- Dashboards und Admin-Panels
- IDE-Erweiterungen
- externe Bridges, die nicht zu 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-Helfer
@openclaw/sdk importieren. Plugin-Code sollte aus
dokumentierten openclaw/plugin-sdk/*-Unterpfaden importieren. Mischen Sie die
beiden Verträge nicht.