Ana içeriğe atla
Kanal Plugin’leri, alma yollarını gelen ve ileti adlarıyla modellemelidir:
platform event -> inbound facts/context -> agent reply -> message delivery
Gelen olay normalleştirme, biçimlendirme, kökler ve orkestrasyon için openclaw/plugin-sdk/channel-inbound kullanın. Yerel gönderim, alındı bilgisi, kalıcı teslim ve canlı önizleme davranışı için openclaw/plugin-sdk/channel-outbound kullanın.

Çekirdek Yardımcılar

import {
  buildChannelInboundEventContext,
  runChannelInboundEvent,
  dispatchChannelInboundReply,
} from "openclaw/plugin-sdk/channel-inbound";
  • buildChannelInboundEventContext(...): normalleştirilmiş kanal bilgilerini istem/oturum bağlamına yansıtın. Kanalın sahip olduğu gönderen/sohbet meta verilerini Plugin kancası ctx.channelContext içine geçirmek için channelContext kullanın; kanala özgü alanlar için bu alt yoldaki PluginHookChannelSenderContext veya PluginHookChannelChatContext türünü genişletin.
  • runChannelInboundEvent(...): tek bir gelen platform olayı için alma, sınıflandırma, ön denetim, çözümleme, kaydetme, gönderme ve sonlandırma işlemlerini çalıştırın.
  • dispatchChannelInboundReply(...): zaten derlenmiş bir gelen yanıtı bir teslim bağdaştırıcısıyla kaydedip gönderin.
Enjekte edilen Plugin çalışma zamanı, çalışma zamanı nesnesini zaten alan paketlenmiş/yerel kanallar için aynı üst düzey yardımcıları runtime.channel.inbound.* altında sunar.
await runtime.channel.inbound.run({
  channel: "demo",
  accountId,
  raw: platformEvent,
  adapter: {
    ingest: normalizePlatformEvent,
    resolveTurn: resolveInboundReply,
  },
});
Uyumluluk göndericileri dispatchChannelInboundReply(...) girdilerini derlemeli ve platform teslimini teslim bağdaştırıcısında tutmalıdır. Yeni gönderim yolları ileti bağdaştırıcılarını ve kalıcı ileti yardımcılarını tercih etmelidir.

Geçiş

Eski runtime.channel.turn.* çalışma zamanı takma adları kaldırıldı. Şunları kullanın:
  • Ham gelen olaylar için runtime.channel.inbound.run(...).
  • Derlenmiş yanıt bağlamları için runtime.channel.inbound.dispatchReply(...).
  • Gelen bağlam yükleri için runtime.channel.inbound.buildContext(...).
  • Yalnızca kendi gönderim kapanışını zaten derleyen, kanalın sahip olduğu hazırlanmış gönderim yolları için runtime.channel.inbound.runPreparedReply(...).
Yeni Plugin kodu turn adlı kanal API’leri eklememelidir. Model veya agent turn söz dağarcığını agent/sağlayıcı kodu içinde tutun; kanal Plugin’leri gelen, ileti, teslim ve yanıt terimlerini kullanır.