Plugin maintainer reference

API für eingehende Kanäle

Channel-Plugins sollten Empfangspfade mit den Begriffen inbound und message modellieren:

text
platform event -> inbound facts/context -> agent reply -> message delivery

Verwenden Sie openclaw/plugin-sdk/channel-inbound für die Normalisierung eingehender Ereignisse, Formatierung, Roots und Orchestrierung. Verwenden Sie openclaw/plugin-sdk/channel-outbound für natives Senden, Empfangsbestätigungen, dauerhafte Zustellung und Live-Vorschauverhalten.

Kernhilfen

ts
   buildChannelInboundEventContext,  runChannelInboundEvent,  dispatchChannelInboundReply,} from "openclaw/plugin-sdk/channel-inbound";
  • buildChannelInboundEventContext(...): projiziert normalisierte Channel-Fakten in den Prompt-/Sitzungskontext. Verwenden Sie channelContext, um sender/chat-Metadaten im Besitz des Channels an den Plugin-Hook ctx.channelContext weiterzugeben; erweitern Sie PluginHookChannelSenderContext oder PluginHookChannelChatContext aus diesem Unterpfad für channelspezifische Felder.
  • runChannelInboundEvent(...): führt Ingest, Klassifizierung, Preflight, Auflösung, Aufzeichnung, Dispatch und Finalisierung für ein eingehendes Plattformereignis aus.
  • dispatchChannelInboundReply(...): zeichnet eine bereits zusammengestellte eingehende Antwort auf und dispatcht sie mit einem Zustellungsadapter.

Die injizierte Plugin-Laufzeit stellt dieselben High-Level-Hilfen unter runtime.channel.inbound.* für gebündelte/native Channels bereit, die bereits das Laufzeitobjekt erhalten.

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

Kompatibilitäts-Dispatcher sollten Eingaben für dispatchChannelInboundReply(...) zusammenstellen und die Plattformzustellung im Zustellungsadapter belassen. Neue Sendepfade sollten Message-Adapter und dauerhafte Message-Hilfen bevorzugen.

Migration

Die alten Laufzeit-Aliasse runtime.channel.turn.* wurden entfernt. Verwenden Sie:

  • runtime.channel.inbound.run(...) für rohe eingehende Ereignisse.
  • runtime.channel.inbound.dispatchReply(...) für zusammengestellte Antwortkontexte.
  • runtime.channel.inbound.buildContext(...) für eingehende Kontext-Payloads.
  • runtime.channel.inbound.runPreparedReply(...) nur für vorbereitete Dispatch-Pfade im Besitz des Channels, die bereits ihre eigene Dispatch-Closure zusammenstellen.

Neuer Plugin-Code sollte keine Channel-APIs mit turn im Namen einführen. Halten Sie Modell- oder Agent-Turn-Vokabular in Agent-/Provider-Code; Channel-Plugins verwenden Begriffe wie inbound, message, delivery und reply.

Was this useful?
On this page

On this page