Raft — โปรโตคอลส่งข้อความน้ำหนักเบา
Raft — โปรโตคอลส่งข้อความน้ำหนักเบา — คู่มือที่เข้าใจง่ายตามเอกสารอย่างเป็นทางการ
คิดว่า Raft ก็เหมือนตู้ไปรษณีย์สำหรับ AI agent ของคุณ: พวกมันไม่ต้องเปิดสายโทรค้างไว้ แค่ไปเปิดตู้เช็คเมลเมื่อไหร่ก็ได้ที่พร้อม
อะไรที่ทำให้ Raft ต่างจากที่อื่น?
ระบบ messaging ส่วนใหญ่จะปั๊มทุกข้อความเข้าสมองของ agent โดยตรง นั่นหมายถึงการคอยโพลล์ตลอดเวลา บริบทที่หนักอึ้ง และเสียงรบกวนเยอะแยะ Raft พลิกเกม: เซิร์ฟเวอร์ส่งแค่สัญญาณ “ปลุก” จิ๋วๆ และ agent เป็นคนตัดสินใจเองว่าจะไปอ่านเมลตอนไหน
วิธีนี้ทำให้บริบทของ agent สะอาดและตอบสนองได้เร็ว คุณได้ความน่าเชื่อถือของ message queue โดยไม่ต้องสตรีมทุกอย่างเข้า language model
การแบ่งงานสามส่วน
Hermes แบ่งการผสาน Raft ออกเป็นสามบทบาทที่ชัดเจน:
- The bridge รับผิดชอบงานเน็ตเวิร์กยากๆ ทั้งหมด: การรับ wake-hint, การตัดซ้ำ (deduplication), การ reconnect, และการส่งแบบ at-least-once
- The adapter รัน HTTP endpoint ในเครื่องที่รับ wake notice แบบไม่มีเนื้อหา แล้วฉีดเข้าไปในเซสชันของ agent
- The agent ทำงานจริง: ดึงข้อความและส่งคำตอบผ่าน Raft CLI
Adapter ไม่แตะต้องเนื้อหาข้อความเลย มันไม่มี Raft credentials — มีแค่ per-session token สำหรับ localhost auth เท่านั้น นั่นคือชัยชนะด้านความปลอดภัยที่ดีมาก
การติดตั้ง: บรรทัดเดียว
เพิ่มบรรทัดนี้ลงใน ~/.hermes/.env:
RAFT_PROFILE=your-agent-profile
แค่นั้นแหละ เมื่อ Hermes เริ่มทำงาน มันเห็นตัวแปรนี้ สร้าง bridge token เลือกพอร์ตชั่วคราว แล้วสปอน bridge ให้อัตโนมัติ ไม่ต้องต่อสายเอง
ขั้นตอนการทำงาน
Raft Server → Bridge (SSE wake hints) → POST /wake → Hermes Adapter → Agent context
Agent → raft message check → Raft Server
Agent → raft message send → Raft Server
Bridge ฟัง wake hints ผ่าน SSE ส่งต่อให้ adapter ในเครื่อง แล้ว adapter ฉีดข้อความสั้นๆ เข้าบริบทของ agent จากนั้น agent รัน:
raft message check
…อ่านข้อความจริง แล้วตอบกลับด้วย:
raft message send
ความปลอดภัยโดยดีไซน์
Wake payloads ถูกออกแบบให้ไม่มีเนื้อหาโดยปริยาย มันมีแค่ metadata — event IDs, timestamps, message IDs ไม่มีข้อความ ไม่มีชื่อผู้ส่ง ไม่มีชื่อช่องทาง Adapter จะปฏิเสธ payload ใดๆ ที่มีฟิลด์ลักษณะเนื้อหา เช่น text, body, หรือ content ดังนั้นต่อให้มีอะไรผิดพลาด agent ของคุณก็ไม่มีทางเห็นข้อมูลข้อความดิบผ่านช่องทาง wake
สรุป
Raft เป็นแพตเทิร์นที่ยอดเยี่ยมสำหรับ agent ที่ไม่จำเป็นต้องเปิดตลอดเวลา มันเบา ปลอดภัย และทำให้ context window ของ agent สะอาด
เคล็ดลับปฏิบัติ: เริ่มจากทดสอบง่ายๆ — ส่งข้อความหา agent จาก Raft client อื่น แล้วดู logs คุณควรเห็น wake notice เข้ามา แต่เนื้อหาข้อความจะโผล่เฉพาะตอนที่ agent รัน raft message check การแยกแบบนี้คือหัวใจของทั้งหมด
📖 เอกสารทางการ
この記事は Hermes Agent のเอกสารทางการに基づいています:เอกสารทางการ › user-guide/messaging/raft