Sessions and memory
การเชื่อมต่อช่องทาง
การผูกช่องทางคือการโอนสายสำหรับเซสชัน OpenClaw หนึ่งเซสชัน
การทำงานนี้จะคงบริบทการสนทนาเดิมไว้ แต่เปลี่ยนตำแหน่งที่จะส่งคำตอบในอนาคตของ เซสชันนั้น
ตัวอย่าง
Alice สามารถส่งข้อความถึง OpenClaw บน Telegram และ Discord ได้:
{
session: {
identityLinks: {
alice: ["telegram:123", "discord:456"],
},
},
}
ถ้า Alice ส่งสิ่งนี้จาก Telegram:
/dock_discord
OpenClaw จะคงบริบทเซสชันปัจจุบันไว้และเปลี่ยนเส้นทางการตอบกลับ:
| ก่อนผูกช่องทาง | หลัง /dock_discord |
|---|---|
คำตอบไปที่ Telegram 123 |
คำตอบไปที่ Discord 456 |
เซสชันจะไม่ถูกสร้างใหม่ ประวัติทรานสคริปต์ยังคงผูกอยู่กับ เซสชันเดิม
เหตุผลที่ใช้
ใช้การผูกช่องทางเมื่องานเริ่มในแอปแชตหนึ่ง แต่คำตอบถัดไปควรถูกส่งไปถึง อีกที่หนึ่ง
ลำดับการใช้งานทั่วไป:
- เริ่มงานเอเจนต์จาก Telegram
- ย้ายไปที่ Discord ซึ่งคุณกำลังประสานงานอยู่
- ส่ง
/dock_discordจากเซสชัน Telegram - ใช้เซสชัน OpenClaw เดิมต่อไป แต่รับคำตอบในอนาคตใน Discord
การกำหนดค่าที่จำเป็น
การผูกช่องทางต้องใช้ session.identityLinks ผู้ส่งต้นทางและเพียร์ปลายทาง
ต้องอยู่ในกลุ่มตัวตนเดียวกัน:
{
session: {
identityLinks: {
alice: ["telegram:123", "discord:456", "slack:U123"],
},
},
}
ค่าเหล่านี้คือรหัสเพียร์ที่มีคำนำหน้าช่องทาง:
| ค่า | ความหมาย |
|---|---|
telegram:123 |
รหัสผู้ส่ง Telegram 123 |
discord:456 |
รหัสเพียร์โดยตรงของ Discord 456 |
slack:U123 |
รหัสผู้ใช้ Slack U123 |
คีย์ตามรูปแบบมาตรฐาน (alice ด้านบน) เป็นเพียงชื่อกลุ่มตัวตนร่วม คำสั่งผูก
ช่องทางใช้ค่าที่มีคำนำหน้าช่องทางเพื่อพิสูจน์ว่าผู้ส่งต้นทางและ
เพียร์ปลายทางเป็นบุคคลเดียวกัน
คำสั่ง
คำสั่งผูกช่องทางถูกสร้างจาก 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
คำสั่งแจ้งว่าไม่มีเซสชันที่ใช้งานอยู่
ผูกช่องทางจากเซสชันแชตโดยตรงที่มีอยู่ คำสั่งนี้ต้องมีรายการเซสชันที่ใช้งานอยู่ เพื่อให้สามารถบันทึกเส้นทางใหม่ได้ถาวร
คำตอบยังคงไปที่ช่องทางเดิม
ตรวจสอบว่าคำสั่งตอบกลับด้วยข้อความสำเร็จ และยืนยันว่ารหัสเพียร์ปลายทาง ตรงกับรหัสที่ช่องทางนั้นใช้ การผูกช่องทางเปลี่ยนเฉพาะเส้นทางของเซสชัน ที่ใช้งานอยู่เท่านั้น เซสชันอื่นอาจยังคงกำหนดเส้นทางไปที่อื่น
ฉันต้องการสลับกลับ
ส่งคำสั่งที่ตรงกับช่องทางเดิม เช่น /dock_telegram หรือ
/dock-telegram จากผู้ส่งที่ลิงก์แล้ว