Plugin maintainer reference
API входящих сообщений канала
Пути получения сообщений каналом следуют единому потоку:
событие платформы -> входные факты/контекст -> ответ агента -> доставка сообщенияИспользуйте openclaw/plugin-sdk/channel-inbound для нормализации входных событий,
форматирования, корневых объектов и оркестрации. Используйте
openclaw/plugin-sdk/channel-outbound для нативной отправки, подтверждений получения, гарантированной
доставки и предварительного просмотра в реальном времени.
Основные вспомогательные функции
buildChannelInboundEventContext, runChannelInboundEvent, dispatchChannelInboundReply,} from "openclaw/plugin-sdk/channel-inbound";buildChannelInboundEventContext(...): преобразует нормализованные данные канала в контекст запроса/сеанса. Передавайте метаданные отправителя/чата, принадлежащие каналу, черезchannelContext, которые хуки плагина получают какctx.channelContext. ДополняйтеPluginHookChannelSenderContextилиPluginHookChannelChatContextиз этого подпути полями, специфичными для канала.runChannelInboundEvent(...): выполняет прием, классификацию, предварительную проверку, разрешение, запись, диспетчеризацию и завершение обработки одного входного события платформы.dispatchChannelInboundReply(...): записывает и диспетчеризирует уже сформированный входной ответ с помощью адаптера доставки.
Встроенные/нативные каналы, которые уже получают внедренный объект среды выполнения плагина,
могут вызывать те же вспомогательные функции через runtime.channel.inbound.* вместо
прямого импорта этого подпути:
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. Терминологию,
связанную с ходом модели или агента, следует использовать только в коде агента/провайдера; плагины каналов используют термины,
связанные с входными данными, сообщениями, доставкой и ответами.