Plugin maintainer reference

API de entrada do canal

Os caminhos de recebimento dos canais seguem um único fluxo:

text
evento da plataforma -> fatos/contexto de entrada -> resposta do agente -> entrega da mensagem

Use openclaw/plugin-sdk/channel-inbound para normalização de eventos de entrada, formatação, raízes e orquestração. Use openclaw/plugin-sdk/channel-outbound para envio nativo, comprovante, entrega durável e comportamento de visualização ao vivo.

Auxiliares principais

ts
   buildChannelInboundEventContext,  runChannelInboundEvent,  dispatchChannelInboundReply,} from "openclaw/plugin-sdk/channel-inbound";
  • buildChannelInboundEventContext(...): projeta os fatos normalizados do canal no contexto do prompt/da sessão. Passe os metadados do remetente/chat pertencentes ao canal por meio de channelContext, que os hooks do plugin recebem como ctx.channelContext. Amplie PluginHookChannelSenderContext ou PluginHookChannelChatContext a partir deste subcaminho para campos específicos do canal.
  • runChannelInboundEvent(...): executa ingestão, classificação, pré-verificação, resolução, registro, encaminhamento e finalização para um evento de entrada da plataforma.
  • dispatchChannelInboundReply(...): registra e encaminha uma resposta de entrada já montada com um adaptador de entrega.

Os canais integrados/nativos que já recebem o objeto de runtime do plugin injetado podem chamar os mesmos auxiliares em runtime.channel.inbound.*, em vez de importar este subcaminho diretamente:

ts
await runtime.channel.inbound.run({  channel: "demo",  accountId,  raw: platformEvent,  adapter: {    ingest: normalizePlatformEvent,    resolveTurn: resolveInboundReply,  },});

Monte as entradas de dispatchChannelInboundReply(...) para encaminhadores de compatibilidade que mantêm a entrega da plataforma no adaptador de entrega. Novos caminhos de envio devem usar adaptadores de mensagem e auxiliares de mensagens duráveis de channel-outbound.

Migração

Os aliases de runtime runtime.channel.turn.* foram removidos. Use:

  • runtime.channel.inbound.run(...) para eventos de entrada brutos.
  • runtime.channel.inbound.dispatchReply(...) para contextos de resposta montados.
  • runtime.channel.inbound.buildContext(...) para cargas de contexto de entrada.
  • runtime.channel.inbound.runPreparedReply(...), descontinuado, somente para caminhos de encaminhamento preparado pertencentes ao canal que já montam seu próprio closure de encaminhamento.

O novo código de plugin não deve introduzir APIs de canal nomeadas com turn. Mantenha o vocabulário de turno do modelo ou do agente no código do agente/provedor; os plugins de canal usam os termos entrada, mensagem, entrega e resposta.

Was this useful?
On this page

On this page