Matrix — เครือข่ายแชทแบบกระจายศูนย์
Matrix — Decentralized Chat Network — easy-to-understand guide based on official docs
Matrix — เครือข่ายแชทแบบกระจายศูนย์
หากคุณเคยต้องการเครือข่ายแชทที่คุณไม่ต้องผูกติดกับเซิร์ฟเวอร์ของใครบางคน Matrix คือคำตอบ มันเป็นโปรโตคอลการส่งข้อความแบบเปิดและเชื่อมต่อถึงกัน (federated) — นึกถึงอีเมล แต่สำหรับการส่งข้อความโต้ตอบแบบทันที คุณสามารถรันโฮมเซิร์ฟเวอร์ของคุณเอง หรือใช้เซิร์ฟเวอร์สาธารณะอย่าง matrix.org ก็ได้ ไม่ว่าวิธีไหน คุณยังคงควบคุมการสนทนาของคุณเอง
Hermes Agent เชื่อมต่อเข้ากับ Matrix ได้โดยตรงผ่าน Python SDK ที่ชื่อ mautrix นั่นหมายความว่าบอทของคุณสามารถแชทกับคุณผ่าน Matrix ได้ โดยใช้พลังทั้งหมดของ Hermes ที่คุณรู้จักและชื่นชอบ — การใช้เครื่องมือ, ความจำ, การใช้เหตุผล, และการตอบสนองแบบเรียลไทม์ มันรองรับข้อความ, ไฟล์, รูปภาพ, เสียง, วิดีโอ และแม้แต่การเข้ารหัสแบบ end-to-end (E2EE) แบบเลือกได้
และนี่คือส่วนที่ดีที่สุด: Hermes ทำงานร่วมกับโฮมเซิร์ฟเวอร์ Matrix ทุกตัว ไม่ว่าจะเป็น Synapse, Conduit, Dendrite หรือเซิร์ฟเวอร์สาธารณะขนาดใหญ่อย่าง matrix.org — เลือกได้ตามใจคุณ
พฤติกรรมของ Hermes
เมื่อเชื่อมต่อแล้ว Hermes มีค่าเริ่มต้นที่ชาญฉลาด นี่คือสรุปโดยย่อ:
| บริบท | พฤติกรรม |
|---|---|
| ข้อความส่วนตัว (DMs) | Hermes ตอบกลับทุกข้อความ ไม่จำเป็นต้อง @mention มัน ข้อความส่วนตัวแต่ละรายการจะได้รับเซสชันของตัวเอง |
| ห้อง (Rooms) | โดยค่าเริ่มต้น Hermes จะรอการ @mention ก่อนที่จะตอบกลับ คุณสามารถเปลี่ยนได้ด้วย MATRIX_REQUIRE_MENTION=false หรือเพิ่มห้องเฉพาะลงใน MATRIX_FREE_RESPONSE_ROOMS คำเชิญเข้าร่วมห้องจะถูกยอมรับโดยอัตโนมัติ |
| เธรด (Threads) | Hermes รองรับเธรดของ Matrix อย่างเต็มรูปแบบ ตอบกลับในเธรด แล้ว Hermes จะแยกบริบทนั้นออกจากไทม์ไลน์หลักของห้อง เธรดที่บอทเข้าร่วมแล้วไม่จำเป็นต้องมีการ mention |
| การสร้างเธรดอัตโนมัติ | โดยค่าเริ่มต้น Hermes จะสร้างเธรดสำหรับการตอบกลับแต่ละครั้งในห้องโดยอัตโนมัติ ซึ่งช่วยให้การสนทนาเป็นระเบียบและแยกออกจากกัน ปิดได้ด้วย MATRIX_AUTO_THREAD=false |
| คำสั่ง | คำสั่ง /commands ปกติทำงานตามที่คาดหวัง หากไคลเอนต์ของคุณสงวน / ไว้สำหรับคำสั่งท้องถิ่น ให้ใช้ !commands แทน — Hermes จะปรับค่านามแฝงเหล่านั้นให้เป็นมาตรฐานโดยอัตโนมัติ |
| ตัวควบคุมแบบโต้ตอบ | การอนุมัติสำหรับคำสั่งอันตรายและการเลือก /model สามารถใช้ปฏิกิริยา (reactions) ของ Matrix ได้ คุณยังสามารถจำกัดปฏิกิริยาการอนุมัติให้เฉพาะผู้ใช้ที่ร้องขอการกระทำนั้นได้อีกด้วย |
| กิจกรรมการคิดและการใช้เครื่องมือ | Hermes ใช้แผงแบบเธรดที่แก้ไขได้สำหรับกิจกรรมการคิดและการใช้เครื่องมือเมื่อเปิดใช้งาน gateway progress ไม่มีการสแปมไทม์ไลน์หลักด้วยการอัปเดตอีกต่อไป |
| ห้องที่ใช้ร่วมกัน | โดยค่าเริ่มต้น Hermes แยกประวัติเซสชันต่อผู้ใช้ภายในห้อง คนสองคนในห้องเดียวกันจะไม่แชร์บทสนทนาร่วมกัน เว้นแต่คุณจะปิดการใช้งานนั้นอย่างชัดเจน |
เคล็ดลับ: เพียงเชิญผู้ใช้ Matrix ของบอทเข้าสู่ห้องใดก็ได้ มันจะเข้าร่วมและเริ่มตอบสนองโดยอัตโนมัติ
สิ่งที่ Hermes ทำได้บน Matrix
นี่คือรายการความสามารถทั้งหมด ตรงจากการประกาศของอะแดปเตอร์:
- ข้อความ — ได้
- เธรด — ได้
- ปฏิกิริยา — ได้
- การอนุมัติ — ได้
- ตัวเลือกโมเดล — ได้
- แผงการคิด — ได้
- รูปภาพ — ได้ (รวมถึงรูปภาพหลายรูป)
- ไฟล์ — ได้
- เสียง/เสียงพูด — ได้
- วิดีโอ — ได้
- E2EE — ปิด / เลือกได้ / บังคับ (ตามโหมด)
- การวินิจฉัย — ได้
โมเดลเซสชันใน Matrix
โดยค่าเริ่มต้น Hermes จะแยกสิ่งต่าง ๆ อย่างเป็นระเบียบ:
- ข้อความส่วนตัวแต่ละรายการจะได้รับเซสชันของตัวเอง
- แต่ละเธรดจะได้รับเนมสเปซเซสชันของตัวเอง
- ผู้ใช้แต่ละคนในห้องที่ใช้ร่วมกันจะได้รับเซสชันของตัวเองภายในห้องนั้น
สิ่งนี้ถูกควบคุมโดย config.yaml:
group_sessions_per_user: true
ตั้งค่าเป็น false เฉพาะเมื่อคุณต้องการให้ทั้งห้องใช้การสนทนาร่วมกันเพียงรายการเดียวอย่างชัดเจน:
group_sessions_per_user: false
เซสชันที่ใช้ร่วมกันอาจมีประโยชน์สำหรับห้องที่ทำงานร่วมกัน แต่โปรดระวัง: ผู้ใช้จะแบ่งปันการเติบโตของบริบทและค่าใช้จ่ายโทเค็น งานที่ใช้เครื่องมือหนักและยาวนานของคนคนหนึ่งสามารถทำให้บริบทของคนอื่นพองโตได้ และงานที่กำลังดำเนินอยู่ของคนหนึ่งสามารถขัดจังหวะการติดตามผลของอีกคนหนึ่งได้
การกำหนดค่า Mention และเธรด
คุณสามารถปรับแต่งทุกอย่างได้ผ่านตัวแปรสภาพแวดล้อมหรือ config.yaml นี่คือเวอร์ชัน YAML:
matrix:
require_mention: true # ต้องมีการ @mention ในห้อง (ค่าเริ่มต้น: true)
allowed_users: # ผู้ใช้ Matrix ที่ได้รับอนุญาตให้ทริกเกอร์การทำงานของเอเจนต์
- "@alice:matrix.org"
allowed_rooms: # ห้อง Matrix ที่ได้รับอนุญาตให้ทริกเกอร์การทำงานของเอเจนต์
- "!abc123:matrix.org"
free_response_rooms: # ห้องที่ได้รับการยกเว้นจากข้อกำหนดการ mention
- "!abc123:matrix.org"
ignore_user_patterns: # ผู้ใช้ผี (ghost users) จาก bridge/appservice ที่จะไม่สนใจ
- "^@telegram_"
- "^@whatsapp_"
process_notices: false # ไม่สนใจ m.notice โดยค่าเริ่มต้น
session_scope: room # auto|room|thread; แนะนำให้ใช้ room สำหรับห้องโปรเจกต์
auto_thread: true # สร้างเธรดสำหรับการตอบกลับโดยอัตโนมัติ (ค่าเริ่มต้น: true)
dm_mention_threads: false # สร้างเธรดเมื่อถูก @mention ใน DM (ค่าเริ่มต้น: false)
max_message_length: 16000 # ขนาดชิ้นส่วนข้อความขาออกในหน่วยอักขระ (ค่าเริ่มต้น: 16000, สูงสุด: 65535)
หรือผ่านตัวแปรสภาพแวดล้อม:
MATRIX_REQUIRE_MENTION=true
MATRIX_ALLOWED_USERS=@alice:matrix.org
MATRIX_ALLOWED_ROOMS=!abc123:matrix.org
MATRIX_FREE_RESPONSE_ROOMS=!abc123:matrix.org,!def456:matrix.org
MATRIX_IGNORE_USER_PATTERNS='^@telegram_,^@whatsapp_'
MATRIX_PROCESS_NOTICES=false
MATRIX_SESSION_SCOPE=room # แนะนำสำหรับบริบทห้องโปรเจกต์ที่เสถียร
MATRIX_AUTO_THREAD=true
MATRIX_DM_MENTION_THREADS=false
MATRIX_REACTIONS=true # ค่าเริ่มต้น: true — ปฏิกิริยาอีโมจิระหว่างการประมวลผล
MATRIX_ALLOW_ROOM_MENTIONS=false
เคล็ดลับ: MATRIX_REACTIONS=false จะปิดปฏิกิริยาอีโมจิวงจรชีวิตการประมวลผล (👀/✅/❌) ที่บอทโพสต์บนข้อความขาเข้า มีประโยชน์สำหรับห้องที่ปฏิกิริยามีเสียงดังหรือไม่ได้รับการสนับสนุน
เคล็ดลับอีกข้อ: Hermes ส่ง mention ผู้ใช้ Matrix แบบมีโครงสร้างสำหรับ ID ที่ชัดเจน เช่น @alice:example.org การ mention ทั่วทั้งห้องแบบ @room ถูกควบคุมแยกต่างหาก
นี่คือภาพรวมทั้งหมดของ Matrix ไม่ว่าคุณจะรันโฮมเซิร์ฟเวอร์ของคุณเองหรือเพียงแค่ต้องการแชทแบบกระจายศูนย์ที่เคารพความเป็นส่วนตัวของคุณ Hermes ครอบคลุมทั้งหมดแล้ว ไปเชิญบอทของคุณเข้าห้องแล้วดูมันทำงานจริงได้เลย!
📖 เอกสารทางการ
この記事は Hermes Agent のเอกสารทางการに基づいています:เอกสารทางการ › user-guide/messaging/matrix