Plugin maintainer reference
API in ingresso del canale
I percorsi di ricezione dei canali seguono un unico flusso:
evento della piattaforma -> dati/contesto in ingresso -> risposta dell'agente -> consegna del messaggioUsa openclaw/plugin-sdk/channel-inbound per la normalizzazione degli eventi in ingresso,
la formattazione, le radici e l'orchestrazione. Usa
openclaw/plugin-sdk/channel-outbound per l'invio nativo, la ricevuta, la consegna
persistente e il comportamento dell'anteprima in tempo reale.
Helper principali
buildChannelInboundEventContext, runChannelInboundEvent, dispatchChannelInboundReply,} from "openclaw/plugin-sdk/channel-inbound";buildChannelInboundEventContext(...): proietta i dati normalizzati del canale nel contesto del prompt/della sessione. Passa i metadati del mittente/della chat gestiti dal canale tramitechannelContext, che gli hook del plugin vedono comectx.channelContext. EstendiPluginHookChannelSenderContextoPluginHookChannelChatContextda questo percorso secondario per i campi specifici del canale.runChannelInboundEvent(...): esegue acquisizione, classificazione, verifica preliminare, risoluzione, registrazione, invio e finalizzazione per un evento della piattaforma in ingresso.dispatchChannelInboundReply(...): registra e invia una risposta in ingresso già assemblata mediante un adattatore di consegna.
I canali integrati/nativi che ricevono già l'oggetto runtime del plugin inserito
possono chiamare gli stessi helper tramite runtime.channel.inbound.* anziché
importare direttamente questo percorso secondario:
await runtime.channel.inbound.run({ channel: "demo", accountId, raw: platformEvent, adapter: { ingest: normalizePlatformEvent, resolveTurn: resolveInboundReply, },});Assembla gli input di dispatchChannelInboundReply(...) per i dispatcher di
compatibilità che mantengono la consegna alla piattaforma nell'adattatore di
consegna. I nuovi percorsi di invio devono invece usare gli adattatori dei messaggi
e gli helper per i messaggi persistenti di channel-outbound.
Migrazione
Gli alias runtime runtime.channel.turn.* sono stati rimossi. Usa:
runtime.channel.inbound.run(...)per gli eventi grezzi in ingresso.runtime.channel.inbound.dispatchReply(...)per i contesti di risposta assemblati.runtime.channel.inbound.buildContext(...)per i payload del contesto in ingresso.runtime.channel.inbound.runPreparedReply(...), deprecato, solo per i percorsi di invio preparati gestiti dal canale che assemblano già la propria closure di invio.
Il nuovo codice dei plugin non deve introdurre API di canale con nomi contenenti
turn. Mantieni la terminologia relativa ai turni del modello o dell'agente nel
codice dell'agente/del provider; i plugin dei canali usano termini relativi a
ingresso, messaggio, consegna e risposta.