Plugin maintainer reference
チャネル受信 API
チャネルの受信パスは、次の 1 つのフローに従います。
プラットフォームイベント -> 受信ファクト/コンテキスト -> エージェントの応答 -> メッセージ配信受信イベントの正規化、フォーマット、ルート、およびオーケストレーションには openclaw/plugin-sdk/channel-inbound を使用します。ネイティブ送信、受領情報、永続的な配信、およびライブプレビューの動作には openclaw/plugin-sdk/channel-outbound を使用します。
コアヘルパー
buildChannelInboundEventContext, runChannelInboundEvent, dispatchChannelInboundReply,} from "openclaw/plugin-sdk/channel-inbound";buildChannelInboundEventContext(...): 正規化されたチャネルのファクトをプロンプト/セッションコンテキストに投影します。チャネルが所有する送信者/チャットのメタデータをchannelContext経由で渡します。Plugin フックからはctx.channelContextとして参照できます。チャネル固有のフィールドについては、このサブパスのPluginHookChannelSenderContextまたはPluginHookChannelChatContextを拡張します。runChannelInboundEvent(...): 1 つの受信プラットフォームイベントについて、取り込み、分類、事前チェック、解決、記録、ディスパッチ、および完了処理を実行します。dispatchChannelInboundReply(...): すでに組み立てられた受信応答を、配信アダプターを使用して記録およびディスパッチします。
注入された Plugin ランタイムオブジェクトをすでに受け取っている同梱/ネイティブチャネルは、このサブパスを直接インポートする代わりに、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(...)は非推奨であり、独自のディスパッチクロージャをすでに組み立てる、チャネル所有の準備済みディスパッチパスにのみ使用します。
新しい Plugin コードに、turn という名前のチャネル API を導入しないでください。モデルまたはエージェントのターンという語彙はエージェント/プロバイダーコード内に限定し、チャネル Plugin では受信、メッセージ、配信、および応答という用語を使用します。
Was this useful?