Plugin maintainer reference

Kanal dışa giden API'si

Kanal Plugin'leri giden mesaj davranışını openclaw/plugin-sdk/channel-outbound üzerinden sunmalıdır. Alma/bağlam/dağıtım orkestrasyonu için openclaw/plugin-sdk/channel-inbound kullanın.

Kuyruğa alma, dayanıklılık, genel yeniden deneme ilkesi, hook'lar, alındılar ve paylaşılan message aracı çekirdeğe aittir. Yerel gönderme/düzenleme/silme çağrıları, hedef normalleştirmesi, platform iş parçacığı yönetimi, seçili alıntılar, bildirim bayrakları, hesap durumu ve platforma özgü yan etkiler Plugin'e aittir.

Bağdaştırıcı

Çoğu Plugin bir message bağdaştırıcısı tanımlar:

ts
   defineChannelMessageAdapter,  createMessageReceiptFromOutboundResults,} from "openclaw/plugin-sdk/channel-outbound"; export const demoMessageAdapter = defineChannelMessageAdapter({  id: "demo",  durableFinal: {    capabilities: {      text: true,      replyTo: true,      thread: true,      messageSendingHooks: true,    },  },  send: {    text: async ({ cfg, to, text, accountId, replyToId, threadId, signal }) => {      const sent = await sendDemoMessage({        cfg,        to,        text,        accountId: accountId ?? undefined,        replyToId: replyToId ?? undefined,        threadId: threadId == null ? undefined : String(threadId),        signal,      });       return {        receipt: createMessageReceiptFromOutboundResults({          results: [{ channel: "demo", messageId: sent.id, conversationId: to }],          kind: "text",          threadId: threadId == null ? undefined : String(threadId),          replyToId: replyToId ?? undefined,        }),      };    },  },});

Yalnızca yerel aktarımın gerçekten koruduğu yetenekleri bildirin. Bildirilen her send, receipt, live-preview ve receive-ack yeteneğini bu alt yoldan dışa aktarılan sözleşme yardımcılarıyla kapsayın.

Mevcut Giden Bağdaştırıcılar

Kanalda zaten uyumlu bir outbound bağdaştırıcısı varsa, gönderme kodunu çoğaltmak yerine message bağdaştırıcısını ondan türetin:

ts
 export const messageAdapter = createChannelMessageAdapterFromOutbound({  id: "demo",  outbound,  durableFinal: {    capabilities: {      text: true,      media: true,    },  },});

Dayanıklı Gönderimler

Çalışma zamanı gönderme yardımcıları da channel-outbound üzerinde bulunur:

  • sendDurableMessageBatch(...)
  • withDurableMessageSendContext(...)
  • deliverInboundReplyWithMessageSendContext(...)
  • resolveChannelDraftStreamingChunking(...) gibi taslak akış/ilerleme yardımcıları

sendDurableMessageBatch(...) açık bir sonuç döndürür:

  • sent: en az bir görünür platform mesajı teslim edildi.
  • suppressed: hiçbir platform mesajı eksik olarak değerlendirilmemelidir.
  • partial_failed: daha sonraki bir payload veya yan etki başarısız olmadan önce en az bir platform mesajı teslim edildi.
  • failed: hiçbir platform alındısı üretilmedi.

Bir toplu işlem gönderilmiş, bastırılmış ve başarısız payload'ları karıştırdığında payloadOutcomes kullanın. Boş bir eski doğrudan teslim sonucundan hook iptalini çıkarsamayın.

Uyumluluk Dağıtımı

Gelen yanıt dağıtımı channel-inbound içindeki dispatchChannelInboundReply(...) üzerinden birleştirilmelidir. Platform teslimini teslim bağdaştırıcısında tutun; message bağdaştırıcıları, dayanıklı gönderimler, alındılar, canlı önizleme ve yanıt hattı seçenekleri için channel-outbound kullanın.

Was this useful?
On this page

On this page