> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

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

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

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
событие платформы -> входные факты/контекст -> ответ агента -> доставка сообщения
```

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

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

```ts theme={"theme":{"light":"min-light","dark":"min-dark"}}
import {
  buildChannelInboundEventContext,
  runChannelInboundEvent,
  dispatchChannelInboundReply,
} from "openclaw/plugin-sdk/channel-inbound";
```

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

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

```ts theme={"theme":{"light":"min-light","dark":"min-dark"}}
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`. Терминологию,
связанную с ходом модели или агента, следует использовать только в коде агента/провайдера; плагины каналов используют термины,
связанные с входными данными, сообщениями, доставкой и ответами.
