Plugin maintainer reference
API masuk saluran
Plugin kanal harus memodelkan jalur penerimaan dengan nomina masuk dan pesan:
platform event -> inbound facts/context -> agent reply -> message deliveryGunakan openclaw/plugin-sdk/channel-inbound untuk normalisasi event masuk,
pemformatan, root, dan orkestrasi. Gunakan
openclaw/plugin-sdk/channel-outbound untuk perilaku
pengiriman native, tanda terima, pengiriman persisten, dan pratinjau langsung.
Helper Inti
buildChannelInboundEventContext, runChannelInboundEvent, dispatchChannelInboundReply,} from "openclaw/plugin-sdk/channel-inbound";buildChannelInboundEventContext(...): proyeksikan fakta kanal yang telah dinormalisasi ke dalam konteks prompt/sesi. GunakanchannelContextuntuk meneruskan metadata pengirim/percakapan milik kanal ke hook Pluginctx.channelContext; perluasPluginHookChannelSenderContextatauPluginHookChannelChatContextdari subjalur ini untuk field khusus kanal.runChannelInboundEvent(...): jalankan ingest, klasifikasi, preflight, resolve, perekaman, dispatch, dan finalisasi untuk satu event platform masuk.dispatchChannelInboundReply(...): rekam dan dispatch balasan masuk yang sudah dirakit dengan adapter pengiriman.
Runtime Plugin yang diinjeksi mengekspos helper tingkat tinggi yang sama di bawah
runtime.channel.inbound.* untuk kanal bawaan/native yang sudah menerima objek
runtime.
await runtime.channel.inbound.run({ channel: "demo", accountId, raw: platformEvent, adapter: { ingest: normalizePlatformEvent, resolveTurn: resolveInboundReply, },});Dispatcher kompatibilitas harus merakit input dispatchChannelInboundReply(...)
dan mempertahankan pengiriman platform di dalam adapter pengiriman. Jalur pengiriman baru harus
mengutamakan adapter pesan dan helper pesan persisten.
Migrasi
Alias runtime lama runtime.channel.turn.* telah dihapus. Gunakan:
runtime.channel.inbound.run(...)untuk event masuk mentah.runtime.channel.inbound.dispatchReply(...)untuk konteks balasan yang sudah dirakit.runtime.channel.inbound.buildContext(...)untuk payload konteks masuk.runtime.channel.inbound.runPreparedReply(...)hanya untuk jalur dispatch siap pakai milik kanal yang sudah merakit closure dispatch mereka sendiri.
Kode Plugin baru tidak boleh memperkenalkan API kanal bernama turn. Pertahankan kosakata giliran model atau
agen di dalam kode agen/provider; Plugin kanal menggunakan istilah masuk,
pesan, pengiriman, dan balasan.