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

เซสชันจะไม่ถูกสร้างใหม่ ประวัติทรานสคริปต์ยังคงผูกอยู่กับ เซสชันเดิม

เหตุผลที่ใช้

ใช้การผูกช่องทางเมื่องานเริ่มในแอปแชตหนึ่ง แต่คำตอบถัดไปควรถูกส่งไปถึง อีกที่หนึ่ง

ลำดับการใช้งานทั่วไป:

  1. เริ่มงานเอเจนต์จาก Telegram
  2. ย้ายไปที่ Discord ซึ่งคุณกำลังประสานงานอยู่
  3. ส่ง /dock_discord จากเซสชัน Telegram
  4. ใช้เซสชัน 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 จากผู้ส่งที่ลิงก์แล้ว