De OpenClaw App SDK is de openbare client-API voor apps buiten het OpenClaw-proces. GebruikDocumentation 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 wanneer een script, dashboard, CI-taak,
IDE-extensie of andere externe app verbinding wil maken met de Gateway,
agent-uitvoeringen wil starten, events wil streamen, op resultaten wil wachten,
werk wil annuleren of Gateway-resources wil inspecteren.
De App SDK is anders dan de Plugin SDK.
@openclaw/sdk praat met de Gateway van buiten OpenClaw.
openclaw/plugin-sdk/* is alleen voor plugins die binnen OpenClaw draaien en
providers, kanalen, tools, hooks of vertrouwde runtimes registreren.Wat vandaag wordt meegeleverd
@openclaw/sdk wordt geleverd met:
| Oppervlak | Status | Wat het doet |
|---|---|---|
OpenClaw | Gereed | Belangrijkste client-entrypoint. Beheert transport, verbinding, aanvragen en events. |
GatewayClientTransport | Gereed | WebSocket-transport ondersteund door de Gateway-client. |
oc.agents | Gereed | Geeft agent-handles weer, maakt ze aan, werkt ze bij, verwijdert ze en haalt ze op. |
Agent.run() | Gereed | Start een Gateway-agent-uitvoering en retourneert een Run. |
oc.runs | Gereed | Maakt uitvoeringen aan, haalt ze op, wacht erop, annuleert ze en streamt ze. |
Run.events() | Gereed | Streamt genormaliseerde events per uitvoering, met replay voor snelle uitvoeringen. |
Run.wait() | Gereed | Roept agent.wait aan en retourneert een stabiele RunResult. |
Run.cancel() | Gereed | Roept sessions.abort aan op run-id, met sessiesleutel wanneer beschikbaar. |
oc.sessions | Gereed | Maakt sessie-handles aan, resolveert ze, stuurt ernaar, patcht ze, compacteert ze en haalt ze op. |
Session.send() | Gereed | Roept sessions.send aan en retourneert een Run. |
oc.tasks | Gereed | Geeft Gateway-taakledgeritems weer, leest ze en annuleert ze. |
oc.models | Gereed | Roept models.list en de huidige status-RPC models.authStatus aan. |
oc.tools | Gereed | Geeft Gateway-tools weer, scoped ze en roept ze aan via de policy-pijplijn. |
oc.artifacts | Gereed | Geeft Gateway-transcriptartefacten weer, haalt ze op en downloadt ze. |
oc.approvals | Gereed | Geeft exec-goedkeuringen weer en resolveert ze via Gateway-goedkeurings-RPC’s. |
oc.environments | Gedeeltelijk | Geeft Gateway-lokale en node-omgevingskandidaten weer; aanmaken/verwijderen is niet aangesloten. |
oc.rawEvents() | Gereed | Stelt ruwe Gateway-events beschikbaar voor geavanceerde consumenten. |
normalizeGatewayEvent() | Gereed | Converteert ruwe Gateway-events naar de stabiele SDK-eventvorm. |
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 en gerelateerde
resultaattypen.
Verbinden met een Gateway
Maak een client met een expliciete Gateway-URL, of injecteer een aangepast transport voor tests en ingebedde app-runtimes.new OpenClaw({ gateway: "ws://..." }) is gelijkwaardig aan url. De optie
gateway: "auto" wordt door de constructor geaccepteerd, maar automatische
Gateway-detectie is nog geen afzonderlijke SDK-functie; geef url door wanneer
de app nog niet weet hoe de Gateway moet worden ontdekt.
Geef voor tests een object door dat OpenClawTransport implementeert:
Een agent uitvoeren
Gebruikoc.agents.get(id) wanneer de app een agent-handle wil, en roep daarna
agent.run() aan.
openai/gpt-5.5 worden
gesplitst in Gateway-overschrijvingen voor provider en model. timeoutMs
blijft in de SDK milliseconden en wordt voor de agent-RPC geconverteerd naar
Gateway-timeoutseconden.
run.wait() gebruikt de Gateway-agent.wait-RPC. Een wachtdeadline die
verloopt terwijl de uitvoering nog actief is, retourneert status: "accepted"
in plaats van te doen alsof de uitvoering zelf een timeout had. Runtime-timeouts,
afgebroken uitvoeringen en geannuleerde uitvoeringen worden genormaliseerd naar
timed_out of cancelled.
Sessies maken en hergebruiken
Gebruik sessies wanneer de app duurzame transcriptstatus wil.Session.send() roept sessions.send aan en retourneert een Run.
Sessie-handles ondersteunen ook:
Events streamen
De SDK normaliseert ruwe Gateway-events naar een stabieleOpenClawEvent-envelop:
| Eventtype | Bron-Gateway-event |
|---|---|
run.started | Begin van agent-levenscyclus |
run.completed | Einde van agent-levenscyclus |
run.failed | Fout in agent-levenscyclus |
run.cancelled | Einde van afgebroken/geannuleerde levenscyclus |
run.timed_out | Einde van timeout-levenscyclus |
assistant.delta | Streamingdelta van assistant |
assistant.message | Bericht van assistant |
thinking.delta | Denk- of planstream |
tool.call.started | Start van tool/item/opdracht |
tool.call.delta | Update van tool/item/opdracht |
tool.call.completed | Voltooiing van tool/item/opdracht |
tool.call.failed | Fout of geblokkeerde status van tool/item/opdracht |
approval.requested | Exec- of Plugin-goedkeuringsaanvraag |
approval.resolved | Exec- of Plugin-goedkeuringsresolutie |
session.created | Aanmaken via sessions.changed |
session.updated | Update via sessions.changed |
session.compacted | Compaction via sessions.changed |
task.updated | Taakupdate-events |
artifact.updated | Patchstream-events |
raw | Elk event zonder stabiele SDK-mapping tot nu toe |
Run.events() filtert events op één run-id en speelt al geziene events opnieuw
af voor snelle uitvoeringen. Dat betekent dat de gedocumenteerde flow veilig is:
oc.events() voor app-brede streams. Gebruik oc.rawEvents() voor ruwe
Gateway-frames.
Modellen, tools, artefacten en goedkeuringen
Modelhelpers mappen naar huidige Gateway-methoden:oc.tools.invoke() retourneert een getypte envelop
in plaats van te throwen bij policy- of goedkeuringsweigeringen.
sessionKey,
runId of taskId.
openclaw tasks ondersteunt:
Vandaag expliciet niet ondersteund
De SDK bevat namen voor het productmodel dat we willen, maar doet niet stilzwijgend alsof Gateway-RPC’s bestaan. Deze aanroepen throwen momenteel expliciete niet-ondersteund-fouten:workspace, runtime, environment en approvals per uitvoering
zijn getypt als toekomstige vorm, maar de huidige Gateway ondersteunt deze
overschrijvingen niet op de agent-RPC. Als aanroepers ze doorgeven, throwt de
SDK voordat de uitvoering wordt ingediend, zodat werk niet per ongeluk wordt
uitgevoerd met standaardgedrag voor workspace, runtime, omgeving of goedkeuringen.
App SDK versus Plugin SDK
Gebruik de App SDK wanneer code buiten OpenClaw leeft:- Node-scripts die agent-uitvoeringen starten of observeren
- CI-taken die een Gateway aanroepen
- dashboards en beheerderspanelen
- IDE-extensies
- externe bridges die geen kanaalplugins hoeven te worden
- integratietests met neppe of echte Gateway-transporten
- providerplugins
- kanaalplugins
- tool- of levenscyclus-hooks
- agent-harnessplugins
- vertrouwde runtimehelpers
@openclaw/sdk. Plugincode moet importeren uit
gedocumenteerde openclaw/plugin-sdk/*-subpaden. Meng de twee contracten niet.