Channel inbound API
先看人话
这页用于补齐 OpenClaw 官方最新文档里的新增内容。先按命令和字段原样理解;如果你只是普通用户,优先看本页的标题、小节和示例命令,不需要一口气读完所有维护者细节。
Channel plugins should model receive paths with inbound and message nouns:
platform event -> inbound facts/context -> agent reply -> message deliveryUse openclaw/plugin-sdk/channel-inbound for inbound event normalization, formatting, roots, and orchestration. Use openclaw/plugin-sdk/channel-outbound for native send, receipt, durable delivery, and live preview behavior.
Core Helpers
import {
buildChannelInboundEventContext,
runChannelInboundEvent,
dispatchChannelInboundReply,
} from "openclaw/plugin-sdk/channel-inbound";buildChannelInboundEventContext(...): project normalized channel facts into the prompt/session context.runChannelInboundEvent(...): run ingest, classify, preflight, resolve, record, dispatch, and finalize for one inbound platform event.dispatchChannelInboundReply(...): record and dispatch an already assembled inbound reply with a delivery adapter.
The injected plugin runtime exposes the same high-level helpers under runtime.channel.inbound.* for bundled/native channels that already receive the runtime object.
await runtime.channel.inbound.run({
channel: "demo",
accountId,
raw: platformEvent,
adapter: {
ingest: normalizePlatformEvent,
resolveTurn: resolveInboundReply,
},
});Compatibility dispatchers should assemble dispatchChannelInboundReply(...) inputs and keep platform delivery in the delivery adapter. New send paths should prefer message adapters and durable message helpers.
Migration
The old runtime.channel.turn.* runtime aliases were removed. Use:
runtime.channel.inbound.run(...)for raw inbound events.runtime.channel.inbound.dispatchReply(...)for assembled reply contexts.runtime.channel.inbound.buildContext(...)for inbound context payloads.runtime.channel.inbound.runPreparedReply(...)only for channel-owned prepared dispatch paths that already assemble their own dispatch closure.
New plugin code should not introduce turn-named channel APIs. Keep model or agent turn vocabulary inside agent/provider code; channel plugins use inbound, message, delivery, and reply terms.
