Community translations by veiseule.ai — Help improve them on Crowdin
Skip to main content

ช่องทางและการกำหนดเส้นทาง

  1. OpenClaw จะส่งคำตอบ กลับไปยังช่องทางเดียวกับที่ข้อความมา OpenClaw จะส่งคำตอบ กลับไปยังช่องทางเดียวกับที่ข้อความถูกส่งมา โมเดลจะไม่เป็นผู้เลือกช่องทาง การกำหนดเส้นทางเป็นแบบกำหนดตายตัวและถูกควบคุมโดยการกำหนดค่าของโฮสต์

คำสำคัญ

  • Channel: whatsapp, telegram, discord, slack, signal, imessage, webchat.
  • AccountId: อินสแตนซ์บัญชีต่อช่องทาง(เมื่อรองรับ)
  • AgentId: เวิร์กสเปซที่แยกจากกัน+ที่เก็บเซสชัน(“สมอง”)
  • SessionKey: คีย์บัคเก็ตที่ใช้เก็บบริบทและควบคุมการทำงานพร้อมกัน

รูปแบบคีย์ของเซสชัน(ตัวอย่าง)

ข้อความส่วนตัวจะถูกรวมเข้ากับเซสชัน main ของเอเจนต์:

  • agent:<agentId>:<mainKey> (ค่าเริ่มต้น: agent:main:main)

กลุ่มและช่องทางจะถูกแยกต่อช่องทาง:

  • กลุ่ม: agent:<agentId>:<channel>:group:<id>
  • ช่องทาง/ห้อง: agent:<agentId>:<channel>:channel:<id>

เธรด:

  • เธรดของ Slack/Discord จะต่อท้าย :thread:<threadId> เข้ากับคีย์ฐาน
  • หัวข้อฟอรั่มของ Telegram จะฝัง :topic:<topicId> ไว้ในคีย์ของกลุ่ม

ตัวอย่าง:

  • agent:main:telegram:group:-1001234567890:topic:42
  • agent:main:discord:channel:123456:thread:987654

กฎการกำหนดเส้นทาง(เลือกเอเจนต์อย่างไร)

การกำหนดเส้นทางจะเลือก เอเจนต์เดียว สำหรับแต่ละข้อความขาเข้า:

  1. ตรงกับเพียร์แบบตรงตัว (bindings กับ peer.kind + peer.id).
  2. ตรงกับกิลด์ (Discord) ผ่าน guildId.
  3. ตรงกับทีม (Slack) ผ่าน teamId.
  4. ตรงกับบัญชี (accountId บนช่องทางนั้น).
  5. ตรงกับช่องทาง (บัญชีใดก็ได้บนช่องทางนั้น).
  6. เอเจนต์เริ่มต้น (agents.list[].default มิฉะนั้นใช้รายการแรกในลิสต์ และสำรองไปที่ main).

เอเจนต์ที่ถูกเลือกจะกำหนดว่าใช้เวิร์กสเปซและที่เก็บเซสชันใด

กลุ่มบรอดคาสต์(รันหลายเอเจนต์)

กลุ่มบรอดคาสต์ช่วยให้คุณรัน หลายเอเจนต์ สำหรับเพียร์เดียวกัน ในกรณีที่ OpenClaw ปกติจะตอบกลับ (เช่น ในกลุ่ม WhatsApp หลังจากผ่านการกล่าวถึง/การเปิดใช้งานแล้ว)

คอนฟิก:

{
  broadcast: {
    strategy: "parallel",
    "120363403215116621@g.us": ["alfred", "baerbel"],
    "+15555550123": ["support", "logger"],
  },
}

ดู: Broadcast Groups.

ภาพรวมคอนฟิก

  • agents.list: คำจำกัดความเอเจนต์ที่มีชื่อ(เวิร์กสเปซ, โมเดล ฯลฯ)
  • bindings: แมปช่องทาง/บัญชี/เพียร์ขาเข้าไปยังเอเจนต์

ตัวอย่าง:

{
  agents: {
    list: [{ id: "support", name: "Support", workspace: "~/.openclaw/workspace-support" }],
  },
  bindings: [
    { match: { channel: "slack", teamId: "T123" }, agentId: "support" },
    { match: { channel: "telegram", peer: { kind: "group", id: "-100123" } }, agentId: "support" },
  ],
}

การจัดเก็บเซสชัน

ที่เก็บเซสชันอยู่ภายใต้ไดเรกทอรีสถานะ(ค่าเริ่มต้น ~/.openclaw):

  • ~/.openclaw/agents/<agentId>/sessions/sessions.json
  • ทรานสคริปต์ JSONL จะอยู่เคียงข้างที่เก็บ

คุณสามารถแทนที่พาธของที่เก็บได้ผ่านเทมเพลต session.store และ {agentId}

พฤติกรรมของ WebChat

WebChat จะเชื่อมต่อกับ เอเจนต์ที่เลือก และใช้ค่าเริ่มต้นเป็นเซสชัน main ของเอเจนต์ ด้วยเหตุนี้ WebChat จึงช่วยให้คุณเห็นบริบทข้ามช่องทางของเอเจนต์นั้นได้ในที่เดียว 38. ด้วยเหตุนี้ WebChat จึงให้คุณเห็นบริบทข้ามช่องทางของเอเจนต์นั้นได้ในที่เดียว

บริบทการตอบกลับ

การตอบกลับขาเข้าประกอบด้วย:

  • ReplyToId, ReplyToBody, และ ReplyToSender เมื่อมีให้ใช้งาน
  • บริบทที่ถูกอ้างอิงจะถูกต่อท้ายไปยัง Body เป็นบล็อก [Replying to ...]

สิ่งนี้มีความสอดคล้องกันในทุกช่องทาง