Plugin maintainer reference
API ขาเข้าของช่องทาง
เส้นทางการรับของช่องทางเป็นไปตามโฟลว์เดียว:
เหตุการณ์จากแพลตฟอร์ม -> ข้อเท็จจริง/บริบทขาเข้า -> การตอบกลับของเอเจนต์ -> การส่งข้อความใช้ 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(...): ดำเนินการนำเข้า จำแนก ตรวจสอบเบื้องต้น แก้ไข บันทึก กระจาย และปิดท้ายสำหรับเหตุการณ์ขาเข้าจากแพลตฟอร์มหนึ่งเหตุการณ์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 ใหม่ไม่ควรเพิ่ม API ช่องทางที่มีชื่อว่า turn ให้เก็บคำศัพท์เกี่ยวกับรอบของโมเดลหรือ
เอเจนต์ไว้ภายในโค้ดเอเจนต์/ผู้ให้บริการ ส่วน Plugin ช่องทางให้ใช้คำว่าขาเข้า
ข้อความ การส่งมอบ และการตอบกลับ