L’OpenClaw App SDK è l’API client pubblica per app esterne al processo OpenClaw. UsaDocumentation 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 quando uno script, una dashboard, un job
CI, un’estensione IDE o un’altra app esterna vuole connettersi al Gateway,
avviare esecuzioni di agenti, trasmettere eventi in streaming, attendere i
risultati, annullare il lavoro o ispezionare le risorse del Gateway.
L’App SDK è diverso dal Plugin SDK.
@openclaw/sdk comunica con il Gateway dall’esterno di OpenClaw.
openclaw/plugin-sdk/* è solo per Plugin eseguiti dentro OpenClaw e che
registrano provider, canali, strumenti, hook o runtime attendibili.Cosa è incluso oggi
@openclaw/sdk include:
| Area | Stato | Cosa fa |
|---|---|---|
OpenClaw | Pronto | Punto di ingresso principale del client. Gestisce trasporto, connessione, richieste ed eventi. |
GatewayClientTransport | Pronto | Trasporto WebSocket basato sul client Gateway. |
oc.agents | Pronto | Elenca, crea, aggiorna, elimina e ottiene handle degli agenti. |
Agent.run() | Pronto | Avvia una run agent del Gateway e restituisce una Run. |
oc.runs | Pronto | Crea, ottiene, attende, annulla e trasmette run in streaming. |
Run.events() | Pronto | Trasmette eventi normalizzati per run con replay per run rapide. |
Run.wait() | Pronto | Chiama agent.wait e restituisce un RunResult stabile. |
Run.cancel() | Pronto | Chiama sessions.abort per ID run, con la chiave di sessione quando disponibile. |
oc.sessions | Pronto | Crea, risolve, invia a, applica patch, compatta e ottiene handle di sessione. |
Session.send() | Pronto | Chiama sessions.send e restituisce una Run. |
oc.tasks | Pronto | Elenca, legge e annulla voci del registro task del Gateway. |
oc.models | Pronto | Chiama models.list e l’attuale RPC di stato models.authStatus. |
oc.tools | Pronto | Elenca, definisce ambiti e invoca strumenti del Gateway tramite la pipeline di policy. |
oc.artifacts | Pronto | Elenca, ottiene e scarica artifact di trascrizione del Gateway. |
oc.approvals | Pronto | Elenca e risolve approvazioni exec tramite RPC di approvazione del Gateway. |
oc.environments | Parziale | Elenca candidati di ambiente locali al Gateway e del nodo; creazione/eliminazione non sono collegate. |
oc.rawEvents() | Pronto | Espone eventi Gateway grezzi per consumer avanzati. |
normalizeGatewayEvent() | Pronto | Converte eventi Gateway grezzi nella forma evento stabile dell’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 e tipi di
risultato correlati.
Connettersi a un Gateway
Crea un client con un URL Gateway esplicito, oppure inietta un trasporto personalizzato per test e runtime di app incorporati.new OpenClaw({ gateway: "ws://..." }) è equivalente a url. L’opzione
gateway: "auto" è accettata dal costruttore, ma la discovery automatica del
Gateway non è ancora una funzionalità separata dell’SDK; passa url quando
l’app non sa già come individuare il Gateway.
Per i test, passa un oggetto che implementa OpenClawTransport:
Eseguire un agente
Usaoc.agents.get(id) quando l’app vuole un handle agente, quindi chiama
agent.run().
openai/gpt-5.5,
vengono suddivisi in override provider e model del Gateway. timeoutMs
rimane in millisecondi nell’SDK e viene convertito in secondi di timeout del
Gateway per l’RPC agent.
run.wait() usa l’RPC agent.wait del Gateway. Una scadenza di attesa che
scade mentre la run è ancora attiva restituisce status: "accepted" invece di
far sembrare che la run stessa sia andata in timeout. Timeout di runtime, run
interrotte e run annullate vengono normalizzati in timed_out o cancelled.
Creare e riutilizzare sessioni
Usa le sessioni quando l’app vuole uno stato di trascrizione durevole.Session.send() chiama sessions.send e restituisce una Run. Gli handle di
sessione supportano anche:
Trasmettere eventi in streaming
L’SDK normalizza gli eventi Gateway grezzi in un envelopeOpenClawEvent
stabile:
| Tipo di evento | Evento Gateway di origine |
|---|---|
run.started | Avvio del ciclo di vita agent |
run.completed | Fine del ciclo di vita agent |
run.failed | Errore del ciclo di vita agent |
run.cancelled | Fine del ciclo di vita interrotto/annullato |
run.timed_out | Fine del ciclo di vita per timeout |
assistant.delta | Delta di streaming dell’assistente |
assistant.message | Messaggio dell’assistente |
thinking.delta | Stream di pensiero o piano |
tool.call.started | Avvio di strumento/elemento/comando |
tool.call.delta | Aggiornamento di strumento/elemento/comando |
tool.call.completed | Completamento di strumento/elemento/comando |
tool.call.failed | Errore o stato bloccato di strumento/elemento/comando |
approval.requested | Richiesta di approvazione exec o Plugin |
approval.resolved | Risoluzione di approvazione exec o Plugin |
session.created | Creazione sessions.changed |
session.updated | Aggiornamento sessions.changed |
session.compacted | Compaction sessions.changed |
task.updated | Eventi di aggiornamento task |
artifact.updated | Eventi di stream patch |
raw | Qualsiasi evento senza ancora una mappatura SDK stabile |
Run.events() filtra gli eventi per un solo ID run e riproduce gli eventi già
visti per run rapide. Questo significa che il flusso documentato è sicuro:
oc.events(). Per frame Gateway grezzi, usa
oc.rawEvents().
Modelli, strumenti, artifact e approvazioni
Gli helper dei modelli si mappano ai metodi Gateway attuali:oc.tools.invoke() restituisce un envelope tipizzato invece di generare
un’eccezione per rifiuti di policy o approvazione.
sessionKey, runId o taskId:
openclaw tasks:
Esplicitamente non supportato oggi
L’SDK include nomi per il modello di prodotto che vogliamo, ma non finge silenziosamente che esistano RPC Gateway. Queste chiamate attualmente generano errori espliciti di non supportato:workspace, runtime, environment e approvals sono
tipizzati come forma futura, ma il Gateway attuale non supporta questi override
sull’RPC agent. Se i chiamanti li passano, l’SDK genera un errore prima di
sottomettere la run, così il lavoro non viene eseguito accidentalmente con
comportamento predefinito di workspace, runtime, ambiente o approvazione.
App SDK e Plugin SDK
Usa l’App SDK quando il codice vive fuori da OpenClaw:- script Node che avviano o osservano run di agenti
- job CI che chiamano un Gateway
- dashboard e pannelli di amministrazione
- estensioni IDE
- bridge esterni che non devono diventare Plugin di canale
- test di integrazione con trasporti Gateway finti o reali
- Plugin provider
- Plugin di canale
- hook di strumenti o ciclo di vita
- Plugin harness agente
- helper runtime attendibili
@openclaw/sdk. Il codice Plugin deve
importare dai sottopercorsi documentati openclaw/plugin-sdk/*. Non mescolare i
due contratti.