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

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

  • buildChannelInboundEventContext(...): преобразует нормализованные данные канала в контекст запроса/сеанса. Передавайте метаданные отправителя/чата, принадлежащие каналу, через channelContext, которые хуки плагина получают как ctx.channelContext. Дополняйте PluginHookChannelSenderContext или PluginHookChannelChatContext из этого подпути полями, специфичными для канала.
  • runChannelInboundEvent(...): выполняет прием, классификацию, предварительную проверку, разрешение, запись, диспетчеризацию и завершение обработки одного входного события платформы.
  • dispatchChannelInboundReply(...): записывает и диспетчеризирует уже сформированный входной ответ с помощью адаптера доставки.
Встроенные/нативные каналы, которые уже получают внедренный объект среды выполнения плагина, могут вызывать те же вспомогательные функции через runtime.channel.inbound.* вместо прямого импорта этого подпути:
Формируйте входные данные dispatchChannelInboundReply(...) для диспетчеров совместимости, которые оставляют доставку через платформу в адаптере доставки. Новые пути отправки должны использовать адаптеры сообщений и вспомогательные функции гарантированной доставки сообщений из channel-outbound.

Миграция

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