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, доступний хукам Plugin як ctx.channelContext. Розширюйте PluginHookChannelSenderContext або PluginHookChannelChatContext з цього підшляху полями, специфічними для каналу.
  • runChannelInboundEvent(...): виконує приймання, класифікацію, попередню перевірку, визначення, запис, диспетчеризацію та завершення для однієї вхідної події платформи.
  • dispatchChannelInboundReply(...): записує та диспетчеризує вже сформовану вхідну відповідь за допомогою адаптера доставлення.

Вбудовані/нативні канали, які вже отримують упроваджений об’єкт середовища виконання Plugin, можуть викликати ті самі допоміжні засоби через 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(...), застарілий, лише для підготовлених шляхів диспетчеризації, якими володіє канал і які вже формують власне замикання диспетчеризації.

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

Was this useful?
On this page

On this page