ช่องทางและการกำหนดเส้นทาง¶
- 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:42agent:main:discord:channel:123456:thread:987654
กฎการกำหนดเส้นทาง(เลือกเอเจนต์อย่างไร)¶
การกำหนดเส้นทางจะเลือก เอเจนต์เดียว สำหรับแต่ละข้อความขาเข้า:
- ตรงกับเพียร์แบบตรงตัว (
bindingsกับpeer.kind+peer.id). - ตรงกับกิลด์ (Discord) ผ่าน
guildId. - ตรงกับทีม (Slack) ผ่าน
teamId. - ตรงกับบัญชี (
accountIdบนช่องทางนั้น). - ตรงกับช่องทาง (บัญชีใดก็ได้บนช่องทางนั้น).
- เอเจนต์เริ่มต้น (
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 ...]
สิ่งนี้มีความสอดคล้องกันในทุกช่องทาง