OpenClaw App SDK è l’API client pubblica per le app esterne al processo OpenClaw. UsaDocumentation 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 quando uno script, una dashboard, un job CI, un’estensione IDE
o un’altra app esterna vuole connettersi al Gateway, avviare esecuzioni degli agenti,
trasmettere eventi in streaming, attendere risultati, annullare lavoro o ispezionare
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 i plugins che vengono eseguiti dentro OpenClaw e
registrano provider, canali, strumenti, hook o runtime attendibili.Cosa Viene Fornito Oggi
@openclaw/sdk include:
| Superficie | 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 un’esecuzione agent del Gateway e restituisce un Run. |
oc.runs | Pronto | Crea, ottiene, attende, annulla e trasmette in streaming le esecuzioni. |
Run.events() | Pronto | Trasmette in streaming eventi normalizzati per esecuzione con replay per esecuzioni rapide. |
Run.wait() | Pronto | Chiama agent.wait e restituisce un RunResult stabile. |
Run.cancel() | Pronto | Chiama sessions.abort per ID esecuzione, con 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 un Run. |
oc.models | Pronto | Chiama models.list e l’RPC di stato models.authStatus corrente. |
oc.tools | Pronto | Elenca, definisce ambiti e invoca strumenti del Gateway attraverso la pipeline di policy. |
oc.artifacts | Pronto | Elenca, ottiene e scarica artefatti di trascrizione del Gateway. |
oc.approvals | Pronto | Elenca e risolve approvazioni exec tramite RPC di approvazione del Gateway. |
oc.rawEvents() | Pronto | Espone eventi grezzi del Gateway per consumatori avanzati. |
normalizeGatewayEvent() | Pronto | Converte eventi grezzi del Gateway nella forma evento stabile dell’SDK. |
AgentRunParams, RunResult, RunStatus, OpenClawEvent,
OpenClawEventType, GatewayEvent, OpenClawTransport,
GatewayRequestOptions, SessionCreateParams, SessionSendParams,
ArtifactSummary, ArtifactQuery, ArtifactsListResult,
ArtifactsGetResult, ArtifactsDownloadResult, 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 incorporate.new OpenClaw({ gateway: "ws://..." }) è equivalente a url. L’opzione
gateway: "auto" è accettata dal costruttore, ma la scoperta automatica del Gateway
non è ancora una funzionalità SDK separata; passa url quando l’app non sa già
come scoprire il Gateway.
Per i test, passa un oggetto che implementa OpenClawTransport:
Eseguire Un Agente
Usaoc.agents.get(id) quando l’app vuole un handle di agente, poi chiama
agent.run().
openai/gpt-5.5 vengono suddivisi in override
provider e model del Gateway. timeoutMs resta 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 termina
mentre l’esecuzione è ancora attiva restituisce status: "accepted" invece di fingere
che l’esecuzione stessa sia andata in timeout. Timeout di runtime, esecuzioni interrotte ed esecuzioni annullate sono
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 un Run. Gli handle di sessione
supportano anche:
Trasmettere Eventi In Streaming
L’SDK normalizza gli eventi grezzi del Gateway in un envelopeOpenClawEvent stabile:
| Tipo di evento | Evento Gateway sorgente |
|---|---|
run.started | Avvio ciclo di vita agent |
run.completed | Fine ciclo di vita agent |
run.failed | Errore ciclo di vita agent |
run.cancelled | Fine ciclo di vita interrotto/annullato |
run.timed_out | Fine ciclo di vita per timeout |
assistant.delta | Delta di streaming dell’assistente |
assistant.message | Messaggio dell’assistente |
thinking.delta | Flusso di pensiero o piano |
tool.call.started | Avvio strumento/elemento/comando |
tool.call.delta | Aggiornamento strumento/elemento/comando |
tool.call.completed | Completamento 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 attività |
artifact.updated | Eventi del flusso patch |
raw | Qualsiasi evento senza ancora una mappatura SDK stabile |
Run.events() filtra gli eventi su un ID esecuzione e riproduce gli eventi già visti per
esecuzioni rapide. Questo significa che il flusso documentato è sicuro:
oc.events(). Per frame Gateway grezzi, usa
oc.rawEvents().
Modelli, Strumenti, Artefatti E Approvazioni
Gli helper dei modelli mappano ai metodi Gateway correnti:oc.tools.invoke() restituisce un envelope tipizzato invece
di generare eccezioni per rifiuti di policy o approvazione.
sessionKey, runId o
taskId:
Esplicitamente Non Supportato Oggi
L’SDK include nomi per il modello di prodotto che vogliamo, ma non finge silenziosamente che le RPC Gateway esistano. Queste chiamate attualmente generano errori espliciti di funzionalità non supportata:workspace, runtime, environment e approvals sono tipizzati
come forma futura, ma il Gateway corrente non supporta questi override
sull’RPC agent. Se i chiamanti li passano, l’SDK genera un errore prima di inviare l’esecuzione,
così il lavoro non viene eseguito accidentalmente con il comportamento predefinito di workspace, runtime,
ambiente o approvazione.
App SDK Rispetto A Plugin SDK
Usa l’App SDK quando il codice vive fuori da OpenClaw:- script Node che avviano o osservano esecuzioni di agenti
- job CI che chiamano un Gateway
- dashboard e pannelli di amministrazione
- estensioni IDE
- bridge esterni che non devono diventare plugins di canale
- test di integrazione con trasporti Gateway finti o reali
- plugins provider
- plugins di canale
- hook di strumenti o ciclo di vita
- plugins di harness per agenti
- helper di runtime attendibili
@openclaw/sdk. Il codice Plugin deve importare dai
sottopercorsi documentati openclaw/plugin-sdk/*. Non mescolare i due contratti.