Plugin maintainer reference

API входящих сообщений канала

Пути получения сообщений каналом следуют единому потоку:

text
событие платформы -> входные факты/контекст -> ответ агента -> доставка сообщения

Используйте openclaw/plugin-sdk/channel-inbound для нормализации входных событий, форматирования, корневых объектов и оркестрации. Используйте openclaw/plugin-sdk/channel-outbound для нативной отправки, подтверждений получения, гарантированной доставки и предварительного просмотра в реальном времени.

Основные вспомогательные функции

ts
   buildChannelInboundEventContext,  runChannelInboundEvent,  dispatchChannelInboundReply,} from "openclaw/plugin-sdk/channel-inbound";
  • buildChannelInboundEventContext(...): преобразует нормализованные данные канала в контекст запроса/сеанса. Передавайте метаданные отправителя/чата, принадлежащие каналу, через channelContext, которые хуки плагина получают как ctx.channelContext. Дополняйте PluginHookChannelSenderContext или PluginHookChannelChatContext из этого подпути полями, специфичными для канала.
  • runChannelInboundEvent(...): выполняет прием, классификацию, предварительную проверку, разрешение, запись, диспетчеризацию и завершение обработки одного входного события платформы.
  • dispatchChannelInboundReply(...): записывает и диспетчеризирует уже сформированный входной ответ с помощью адаптера доставки.

Встроенные/нативные каналы, которые уже получают внедренный объект среды выполнения плагина, могут вызывать те же вспомогательные функции через runtime.channel.inbound.* вместо прямого импорта этого подпути:

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

Формируйте входные данные dispatchChannelInboundReply(...) для диспетчеров совместимости, которые оставляют доставку через платформу в адаптере доставки. Новые пути отправки должны использовать адаптеры сообщений и вспомогательные функции гарантированной доставки сообщений из channel-outbound.

Миграция

Псевдонимы среды выполнения runtime.channel.turn.* удалены. Используйте:

  • runtime.channel.inbound.run(...) для необработанных входных событий.
  • runtime.channel.inbound.dispatchReply(...) для сформированных контекстов ответа.
  • runtime.channel.inbound.buildContext(...) для полезной нагрузки входного контекста.
  • runtime.channel.inbound.runPreparedReply(...), устаревший, только для подготовленных путей диспетчеризации, принадлежащих каналу и уже формирующих собственное замыкание диспетчеризации.

Новый код плагина не должен вводить API каналов с именами turn. Терминологию, связанную с ходом модели или агента, следует использовать только в коде агента/провайдера; плагины каналов используют термины, связанные с входными данными, сообщениями, доставкой и ответами.

Was this useful?
On this page

On this page