Le SDK d’application OpenClaw est l’API cliente publique pour les applications en dehors du processus OpenClaw. UtilisezDocumentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
@openclaw/sdk lorsqu’un script, un tableau de bord, une tâche CI, une extension IDE
ou une autre application externe veut se connecter au Gateway, démarrer des exécutions d’agent,
diffuser des événements en continu, attendre des résultats, annuler du travail ou inspecter les
ressources du Gateway.
Le SDK d’application est différent du SDK Plugin.
@openclaw/sdk communique avec le Gateway depuis l’extérieur d’OpenClaw.
openclaw/plugin-sdk/* est réservé aux plugins qui s’exécutent dans OpenClaw et
enregistrent des fournisseurs, des canaux, des outils, des hooks ou des environnements d’exécution de confiance.Ce qui est livré aujourd’hui
@openclaw/sdk est livré avec :
| Surface | État | Ce que cela fait |
|---|---|---|
OpenClaw | Prêt | Point d’entrée principal du client. Gère le transport, la connexion, les requêtes et les événements. |
GatewayClientTransport | Prêt | Transport WebSocket adossé au client Gateway. |
oc.agents | Prêt | Liste, crée, met à jour, supprime et obtient des handles d’agent. |
Agent.run() | Prêt | Démarre une exécution Gateway agent et renvoie un Run. |
oc.runs | Prêt | Crée, obtient, attend, annule et diffuse des exécutions en continu. |
Run.events() | Prêt | Diffuse des événements normalisés par exécution avec relecture pour les exécutions rapides. |
Run.wait() | Prêt | Appelle agent.wait et renvoie un RunResult stable. |
Run.cancel() | Prêt | Appelle sessions.abort par identifiant d’exécution, avec la clé de session lorsqu’elle est disponible. |
oc.sessions | Prêt | Crée, résout, envoie vers, corrige, compacte et obtient des handles de session. |
Session.send() | Prêt | Appelle sessions.send et renvoie un Run. |
oc.tasks | Prêt | Liste, lit et annule les entrées du registre des tâches Gateway. |
oc.models | Prêt | Appelle models.list et le RPC d’état models.authStatus actuel. |
oc.tools | Prêt | Liste, définit la portée et invoque les outils Gateway via le pipeline de politique. |
oc.artifacts | Prêt | Liste, obtient et télécharge les artefacts de transcription Gateway. |
oc.approvals | Prêt | Liste et résout les approbations d’exécution via les RPC d’approbation Gateway. |
oc.environments | Partiel | Liste les candidats d’environnement locaux au Gateway et de nœud ; la création/suppression n’est pas câblée. |
oc.rawEvents() | Prêt | Expose les événements Gateway bruts pour les consommateurs avancés. |
normalizeGatewayEvent() | Prêt | Convertit les événements Gateway bruts vers la forme d’événement stable du SDK. |
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, ainsi que les types de
résultat associés.
Se connecter à un Gateway
Créez un client avec une URL Gateway explicite, ou injectez un transport personnalisé pour les tests et les environnements d’exécution d’applications embarquées.new OpenClaw({ gateway: "ws://..." }) est équivalent à url. L’option
gateway: "auto" est acceptée par le constructeur, mais la découverte automatique du Gateway
n’est pas encore une fonctionnalité SDK distincte ; transmettez url lorsque l’application ne
sait pas déjà comment découvrir le Gateway.
Pour les tests, transmettez un objet qui implémente OpenClawTransport :
Exécuter un agent
Utilisezoc.agents.get(id) lorsque l’application veut un handle d’agent, puis appelez
agent.run().
openai/gpt-5.5, sont séparées en
remplacements Gateway provider et model. timeoutMs reste en millisecondes dans le SDK et
est converti en secondes de délai d’expiration Gateway pour le RPC agent.
run.wait() utilise le RPC Gateway agent.wait. Une échéance d’attente qui expire
alors que l’exécution est toujours active renvoie status: "accepted" au lieu de prétendre
que l’exécution elle-même a expiré. Les expirations d’environnement d’exécution, les exécutions abandonnées et les exécutions annulées sont
normalisées en timed_out ou cancelled.
Créer et réutiliser des sessions
Utilisez les sessions lorsque l’application veut un état de transcription durable.Session.send() appelle sessions.send et renvoie un Run. Les handles de session prennent aussi
en charge :
Diffuser des événements en continu
Le SDK normalise les événements Gateway bruts dans une enveloppeOpenClawEvent stable :
| Type d’événement | Événement Gateway source |
|---|---|
run.started | Début du cycle de vie agent |
run.completed | Fin du cycle de vie agent |
run.failed | Erreur du cycle de vie agent |
run.cancelled | Fin de cycle de vie abandonnée/annulée |
run.timed_out | Fin de cycle de vie par expiration |
assistant.delta | Delta de diffusion en continu de l’assistant |
assistant.message | Message de l’assistant |
thinking.delta | Flux de réflexion ou de plan |
tool.call.started | Début d’outil/élément/commande |
tool.call.delta | Mise à jour d’outil/élément/commande |
tool.call.completed | Achèvement d’outil/élément/commande |
tool.call.failed | Échec d’outil/élément/commande ou état bloqué |
approval.requested | Demande d’approbation d’exécution ou de plugin |
approval.resolved | Résolution d’approbation d’exécution ou de plugin |
session.created | Création sessions.changed |
session.updated | Mise à jour sessions.changed |
session.compacted | Compaction sessions.changed |
task.updated | Événements de mise à jour de tâche |
artifact.updated | Événements de flux de patch |
raw | Tout événement sans mappage SDK stable pour l’instant |
Run.events() filtre les événements vers un identifiant d’exécution et relit les événements déjà vus pour
les exécutions rapides. Cela signifie que le flux documenté est sûr :
oc.events(). Pour les trames Gateway brutes, utilisez
oc.rawEvents().
Modèles, outils, artefacts et approbations
Les helpers de modèle correspondent aux méthodes Gateway actuelles :oc.tools.invoke() renvoie une enveloppe typée au lieu de
lever une exception en cas de refus par politique ou approbation.
sessionKey, runId ou
taskId :
openclaw tasks :
Explicitement non pris en charge aujourd’hui
Le SDK inclut des noms pour le modèle de produit que nous voulons, mais il ne fait pas semblant silencieusement que les RPC Gateway existent. Ces appels lèvent actuellement des erreurs explicites de non-prise en charge :workspace, runtime, environment et approvals sont typés
comme forme future, mais le Gateway actuel ne prend pas en charge ces remplacements sur
le RPC agent. Si les appelants les transmettent, le SDK lève une exception avant de soumettre l’exécution
afin que le travail ne s’exécute pas accidentellement avec le comportement par défaut d’espace de travail, d’environnement d’exécution,
d’environnement ou d’approbation.
SDK d’application vs SDK Plugin
Utilisez le SDK d’application lorsque le code vit en dehors d’OpenClaw :- scripts Node qui démarrent ou observent des exécutions d’agent
- tâches CI qui appellent un Gateway
- tableaux de bord et panneaux d’administration
- extensions IDE
- ponts externes qui n’ont pas besoin de devenir des plugins de canal
- tests d’intégration avec de faux ou vrais transports Gateway
- plugins de fournisseur
- plugins de canal
- hooks d’outil ou de cycle de vie
- plugins de harnais d’agent
- helpers d’environnement d’exécution de confiance
@openclaw/sdk. Le code de Plugin doit importer depuis
les sous-chemins documentés openclaw/plugin-sdk/*. Ne mélangez pas les deux contrats.