---
read_when:
    - Вы создаёте или рефакторите тракт приёма сообщений плагина канала обмена сообщениями
    - Вам требуется общее формирование контекста входящих сообщений, запись сессии или подготовленная отправка ответа
    - Вы переносите старые вспомогательные функции обработки ходов канала на API входящих данных и сообщений
summary: 'Вспомогательные средства для входящих событий плагинов каналов: формирование контекста, оркестрация общего средства запуска, запись сеанса и отправка подготовленного ответа'
title: API входящих сообщений канала
x-i18n:
    generated_at: "2026-07-13T18:25:55Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: a85ffaf9501af00e1493b5fbb0454a070626ed6ca41977323b55e84b92075ed1
    source_path: plugins/sdk-channel-inbound.md
    workflow: 16
---

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

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

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

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

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