Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Perché esisteva
- Confine di sicurezza: il bridge espone una piccola lista consentita invece dell’intera superficie API del Gateway.
- Abbinamento + identità del nodo: l’ammissione dei nodi è gestita dal Gateway ed è legata a un token per nodo.
- UX di discovery: i nodi possono individuare i Gateway tramite Bonjour su LAN, oppure connettersi direttamente su una tailnet.
- WS in loopback: il piano di controllo WS completo resta locale a meno che non venga instradato tramite tunnel SSH.
Trasporto
- TCP, un oggetto JSON per riga (JSONL).
- TLS opzionale (quando
bridge.tls.enabledè true). - La porta listener predefinita storica era
18790(le build attuali non avviano un bridge TCP).
bridgeTls=1 più bridgeTlsSha256 come suggerimento non segreto. Nota che i record TXT Bonjour/mDNS non sono autenticati; i client non devono trattare l’impronta pubblicizzata come un pin autorevole senza un’intenzione esplicita dell’utente o un’altra verifica fuori banda.
Handshake + abbinamento
- Il client invia
hellocon metadati del nodo + token (se già abbinato). - Se non è abbinato, il Gateway risponde
error(NOT_PAIRED/UNAUTHORIZED). - Il client invia
pair-request. - Il Gateway attende l’approvazione, poi invia
pair-okehello-ok.
hello-ok restituiva serverName; le superfici dei Plugin ospitati sono ora pubblicizzate tramite pluginSurfaceUrls. Canvas/A2UI usa pluginSurfaceUrls.canvas; l’alias deprecato canvasHostUrl non fa parte del protocollo rifattorizzato.
Frame
Client → Gateway:req/res: RPC del Gateway con ambito (chat, sessions, config, health, voicewake, skills.bins)event: segnali del nodo (trascrizione vocale, richiesta agente, iscrizione alla chat, ciclo di vita exec)
invoke/invoke-res: comandi del nodo (canvas.*,camera.*,screen.record,location.get,sms.send)event: aggiornamenti chat per le sessioni sottoscritteping/pong: keepalive
src/gateway/server-bridge.ts (rimosso).
Eventi del ciclo di vita exec
I nodi possono emettere eventiexec.finished o exec.denied per esporre l’attività system.run.
Questi vengono mappati a eventi di sistema nel Gateway. (I nodi legacy possono ancora emettere exec.started.)
Campi del payload (tutti opzionali salvo diversa indicazione):
sessionKey(obbligatorio): sessione agente che deve ricevere l’evento di sistema.runId: ID exec univoco per il raggruppamento.command: stringa del comando grezza o formattata.exitCode,timedOut,success,output: dettagli di completamento (solo finished).reason: motivo del rifiuto (solo denied).
Uso storico della tailnet
- Associa il bridge a un IP della tailnet:
bridge.bind: "tailnet"in~/.openclaw/openclaw.json(solo storico;bridge.*non è più valido). - I client si connettono tramite nome MagicDNS o IP della tailnet.
- Bonjour non attraversa le reti; usa host/porta manuali o DNS-SD wide-area quando necessario.