Plugin maintainer reference
Interfejs API wiadomości przychodzących kanału
Ścieżki odbierania kanałów korzystają z jednego przepływu:
zdarzenie platformy -> fakty/kontekst wejściowy -> odpowiedź agenta -> dostarczenie wiadomościUżyj openclaw/plugin-sdk/channel-inbound do normalizacji zdarzeń wejściowych,
formatowania, katalogów głównych i orkiestracji. Użyj
openclaw/plugin-sdk/channel-outbound do natywnego wysyłania, potwierdzeń, trwałego
dostarczania i działania podglądu na żywo.
Podstawowe funkcje pomocnicze
buildChannelInboundEventContext, runChannelInboundEvent, dispatchChannelInboundReply,} from "openclaw/plugin-sdk/channel-inbound";buildChannelInboundEventContext(...): odwzorowuje znormalizowane fakty kanału w kontekście promptu/sesji. Przekaż metadane nadawcy/czatu należące do kanału przezchannelContext, który hooki Pluginu otrzymują jakoctx.channelContext. RozszerzPluginHookChannelSenderContextlubPluginHookChannelChatContextz tej podścieżki o pola specyficzne dla kanału.runChannelInboundEvent(...): wykonuje przyjęcie, klasyfikację, kontrolę wstępną, rozpoznanie, zapis, wysłanie i finalizację jednego przychodzącego zdarzenia platformy.dispatchChannelInboundReply(...): zapisuje i wysyła już złożoną odpowiedź wejściową za pomocą adaptera dostarczania.
Wbudowane/natywne kanały, które już otrzymują wstrzyknięty obiekt środowiska uruchomieniowego Pluginu,
mogą wywoływać te same funkcje pomocnicze przez runtime.channel.inbound.*, zamiast
bezpośrednio importować tę podścieżkę:
await runtime.channel.inbound.run({ channel: "demo", accountId, raw: platformEvent, adapter: { ingest: normalizePlatformEvent, resolveTurn: resolveInboundReply, },});Przygotuj dane wejściowe dispatchChannelInboundReply(...) dla zgodnych wstecznie
dyspozytorów, które pozostawiają dostarczanie przez platformę w adapterze dostarczania. Nowe ścieżki
wysyłania powinny zamiast tego używać adapterów wiadomości i funkcji pomocniczych trwałych wiadomości z
channel-outbound.
Migracja
Aliasy środowiska uruchomieniowego runtime.channel.turn.* zostały usunięte. Użyj:
runtime.channel.inbound.run(...)dla nieprzetworzonych zdarzeń wejściowych.runtime.channel.inbound.dispatchReply(...)dla złożonych kontekstów odpowiedzi.runtime.channel.inbound.buildContext(...)dla ładunków kontekstu wejściowego.runtime.channel.inbound.runPreparedReply(...), przestarzałe, tylko dla należących do kanału ścieżek wysyłania przygotowanych odpowiedzi, które już tworzą własne domknięcie wysyłające.
Nowy kod Pluginu nie powinien wprowadzać interfejsów API kanałów z turn w nazwie. Terminologię dotyczącą przebiegu modelu lub
agenta należy zachować w kodzie agenta/dostawcy; Pluginy kanałów używają terminów dotyczących danych wejściowych,
wiadomości, dostarczania i odpowiedzi.