Sessions and memory
การเชื่อมต่อช่องทาง
การเชื่อมเทียบช่องทางคือการโอนสายสำหรับเซสชัน OpenClaw หนึ่งเซสชัน โดยยังคงบริบทการสนทนาเดิมไว้ แต่เปลี่ยนตำแหน่งที่จะส่งคำตอบในอนาคตของเซสชันนั้น การเชื่อมเทียบใช้ได้เฉพาะจากแชตโดยตรงเท่านั้น และไม่ทำงานจากแชตกลุ่ม
ตัวอย่าง
Alice สามารถส่งข้อความถึง OpenClaw ผ่าน Telegram และ Discord ได้:
{ session: { identityLinks: { alice: ["telegram:123", "discord:456"], }, },}หาก Alice ส่งคำสั่งนี้จากแชตโดยตรงของ Telegram:
/dock_discordOpenClaw จะคงบริบทของเซสชันปัจจุบันไว้และเปลี่ยนเส้นทางการตอบกลับ:
| ก่อนเชื่อมเทียบ | หลังใช้ /dock_discord |
|---|---|
ส่งคำตอบไปยัง Telegram 123 |
ส่งคำตอบไปยัง Discord 456 |
ระบบจะไม่สร้างเซสชันขึ้นใหม่ ประวัติทรานสคริปต์จะยังคงผูกอยู่กับเซสชันเดิม
เหตุผลที่ควรใช้
ใช้การเชื่อมเทียบเมื่องานเริ่มต้นในแอปแชตหนึ่ง แต่ต้องการให้คำตอบถัดไปไปปรากฏในอีกแอปหนึ่ง
ขั้นตอนทั่วไป:
- เริ่มงานของเอเจนต์จาก Telegram
- ย้ายไปยัง Discord ซึ่งคุณกำลังประสานงานอยู่
- ส่ง
/dock_discordจากแชตโดยตรงของ Telegram - ใช้เซสชัน OpenClaw เดิมต่อไป แต่รับคำตอบในอนาคตผ่าน Discord
การกำหนดค่าที่จำเป็น
การเชื่อมเทียบต้องใช้ session.identityLinks ผู้ส่งต้นทางและเพียร์เป้าหมายต้องอยู่ในกลุ่มข้อมูลประจำตัวเดียวกัน:
{ session: { identityLinks: { alice: ["telegram:123", "discord:456", "slack:U123"], }, },}ค่าต่าง ๆ คือ ID เพียร์ที่มีชื่อช่องทางนำหน้า:
| ค่า | ความหมาย |
|---|---|
telegram:123 |
ID ผู้ส่ง Telegram 123 |
discord:456 |
ID เพียร์โดยตรงของ Discord 456 |
slack:U123 |
ID ผู้ใช้ Slack U123 |
คีย์มาตรฐาน (alice ในตัวอย่างข้างต้น) เป็นเพียงชื่อกลุ่มข้อมูลประจำตัวที่ใช้ร่วมกัน คำสั่งเชื่อมเทียบจะใช้ค่าที่มีชื่อช่องทางนำหน้าเพื่อยืนยันว่าผู้ส่งต้นทางและเพียร์เป้าหมายเป็นบุคคลเดียวกัน
คำสั่ง
OpenClaw สร้างคำสั่ง /dock-<channel> หนึ่งคำสั่งสำหรับ Plugin ช่องทางที่โหลดแต่ละรายการซึ่งรองรับคำสั่งแบบเนทีฟ ดังนั้นรายการจะเพิ่มขึ้นเมื่อมีการเพิ่ม Plugin Plugin ที่มาพร้อมระบบซึ่งรองรับในปัจจุบันมีดังนี้:
| ช่องทางเป้าหมาย | คำสั่ง | นามแฝง |
|---|---|---|
| Discord | /dock-discord |
/dock_discord |
| Mattermost | /dock-mattermost |
/dock_mattermost |
| Slack | /dock-slack |
/dock_slack |
| Telegram | /dock-telegram |
/dock_telegram |
รูปแบบขีดล่างยังเป็นชื่อคำสั่งแบบเนทีฟบนพื้นผิวอย่าง Telegram ที่แสดงคำสั่งสแลชโดยตรงอีกด้วย
สิ่งที่เปลี่ยนแปลง
การเชื่อมเทียบจะอัปเดตฟิลด์การนำส่งของเซสชันที่ใช้งานอยู่:
| ฟิลด์เซสชัน | ตัวอย่างหลังใช้ /dock_discord |
|---|---|
lastChannel |
discord |
lastTo |
456 |
lastAccountId |
บัญชีช่องทางเป้าหมาย หรือ default |
ฟิลด์เหล่านี้จะถูกบันทึกถาวรในที่เก็บเซสชัน และใช้สำหรับการนำส่งคำตอบในภายหลังของเซสชันนั้น
สิ่งที่ไม่เปลี่ยนแปลง
การเชื่อมเทียบจะไม่:
- สร้างบัญชีช่องทาง
- เชื่อมต่อบอต Discord, Telegram, Slack หรือ Mattermost ใหม่
- ให้สิทธิ์การเข้าถึงแก่ผู้ใช้
- ข้ามรายการอนุญาตของช่องทางหรือนโยบาย DM
- ย้ายประวัติทรานสคริปต์ไปยังเซสชันอื่น
- ทำให้ผู้ใช้ที่ไม่เกี่ยวข้องใช้เซสชันร่วมกัน
การเชื่อมเทียบจะเปลี่ยนเฉพาะเส้นทางการนำส่งของเซสชันปัจจุบันเท่านั้น
การแก้ไขปัญหา
คำสั่งแจ้งว่าผู้ส่งไม่ได้เชื่อมโยงไว้
เพิ่มทั้งผู้ส่งปัจจุบันและเพียร์เป้าหมายไปยังกลุ่ม session.identityLinks เดียวกัน ตัวอย่างเช่น หากต้องการเชื่อมเทียบผู้ส่ง Telegram 123 ไปยังเพียร์ Discord 456 ให้ใส่ทั้ง telegram:123 และ discord:456
คำสั่งแจ้งว่าการเชื่อมเทียบใช้ได้เฉพาะจากแชตโดยตรงเท่านั้น
ส่งคำสั่งเชื่อมเทียบจากแชตโดยตรงกับ OpenClaw ไม่ใช่จากแชตกลุ่ม
คำสั่งแจ้งว่าไม่มีเซสชันที่ใช้งานอยู่
เชื่อมเทียบจากเซสชันแชตโดยตรงที่มีอยู่ คำสั่งต้องใช้รายการเซสชันที่ใช้งานอยู่เพื่อบันทึกเส้นทางใหม่อย่างถาวร
คำตอบยังคงถูกส่งไปยังช่องทางเดิม
ตรวจสอบว่าคำสั่งตอบกลับด้วยข้อความสำเร็จ และยืนยันว่า ID เพียร์เป้าหมายตรงกับ ID ที่ช่องทางนั้นใช้ การเชื่อมเทียบจะเปลี่ยนเฉพาะเส้นทางของเซสชันที่ใช้งานอยู่เท่านั้น ส่วนเซสชันอื่นอาจยังคงกำหนดเส้นทางไปยังที่อื่น
ฉันต้องการสลับกลับ
ส่งคำสั่งที่ตรงกับช่องทางเดิม เช่น /dock_telegram หรือ /dock-telegram จากผู้ส่งที่เชื่อมโยงไว้