AI และเอเจนต์อัปเดต 15 นาทีในการอ่าน

สกิลหน่วยความจำของ Hermes Agent ในแคตตาล็อกปลั๊กอินทางการ: hermes-dreaming

hermes-dreaming ดูแลหน่วยความจำของ Hermes Agent: ติดตั้งจากแคตตาล็อก ตรวจข้อเท็จจริงทุกคืน ถามถึงข้อมูลที่ล้าสมัย และทำงานกับ holographic อัปเดตถึงเวอร์ชัน 3.8

สกิลหน่วยความจำของ Hermes Agent ในแคตตาล็อกปลั๊กอินทางการ: hermes-dreaming
สารบัญ

hermes-dreaming คือสกิลฟรีสำหรับ Hermes Agent ที่ช่วยจัดระเบียบหน่วยความจำทุกคืน มันเทียบข้อเท็จจริงที่บันทึกไว้กับสิ่งที่คนพูดกันจริง ๆ เสนอให้เอเจนต์บันทึกเรื่องสำคัญไว้ในหน่วยความจำถาวร ถามถึงข้อมูลที่ล้าสมัย และเตือนล่วงหน้าเมื่อหน่วยความจำใกล้เต็ม ต่อจาก hermes-cron นี่คือสกิลตัวที่สองของผมในแคตตาล็อกปลั๊กอินทางการของ Hermes Agent: Teknium จากทีม Nous Research กด merge pull request เมื่อ 4 ตุลาคม สกิลนี้มีหน้าของตัวเองในแคตตาล็อก: หมวด Memory ระดับ Community ไลเซนส์ MIT

ณ วันที่ 30 ตุลาคม 2569 รีลีสล่าสุดคือ 3.8.0 ส่วนแคตตาล็อก Hermes ปักเวอร์ชันไว้ที่ 3.7.1 บทความนี้เล่าว่าทำไมต้องมีสกิลนี้ หนึ่งคืนของมันทำงานอย่างไร และติดตั้งอย่างไร ส่วนภาคต่อ ว่าด้วยการแก้ไขเรื่องการยืนยัน ผู้ตัดสินบนคลาวด์ที่จะเปิดใช้หรือไม่ก็ได้ การรวมรายการซ้ำ เวอร์ชัน 3.5–3.8 และขั้นตอนอัปเดตระบบที่ติดตั้งและใช้งานอยู่แล้ว

ทำไมหน่วยความจำของ Hermes Agent ถึงเสียโดยไม่มีใครสังเกต

Hermes Agent (เฮอร์มีส) มีหน่วยความจำถาวรในตัว เป็นไฟล์สองไฟล์: MEMORY.md เก็บโน้ตของเอเจนต์ และ USER.md เก็บสิ่งที่มันรู้เกี่ยวกับตัวคุณ เนื้อหาของทั้งสองไฟล์จะถูกใส่เข้าไปในทุกบทสนทนาใหม่ และขนาดถูกจำกัดด้วยจำนวนตัวอักษร หน่วยความจำแบบนี้พังแบบเงียบ ๆ แบบแรกคือข้อมูลที่มีประโยชน์ไปไม่ถึงมัน: เดือนเดียวคุณบอกไปสามครั้งแล้วว่าชอบนัดคอลช่วงบ่าย แต่พอเริ่มบทสนทนาใหม่ เอเจนต์กลับไม่รู้เรื่องนี้ อีกแบบคือมันเต็มไปด้วยรายการเก่าและรายการซ้ำจนชนลิมิต แล้วรายการใหม่ก็หยุดถูกบันทึกไปเฉย ๆ เอเจนต์ไม่บ่นและไม่ล่ม มันแค่เลิกจำโดยไม่ส่งเสียง หน่วยความจำทั้งห้าชั้นของ Hermes ทำงานอย่างไร และทำไมเอเจนต์ถึงไม่เห็นรายการใหม่ทันที เราอธิบายไว้อีกบทความหนึ่ง

คำว่า dreaming ยืมมาจาก OpenClaw ซึ่งเป็นเอเจนต์ open-source อีกตัวที่มีโหมดคล้ายกัน สกิลนี้ก็ยืมน้ำหนักและเกณฑ์การให้คะแนนมาจากที่นั่นด้วย การเปรียบกับการนอนหลับนั้นตรงตัว: ตอนกลางคืนสมองจะทบทวนวันที่ผ่านมาและตัดสินว่าจะเก็บอะไรไว้ระยะยาว Claude Code ก็มี dreaming ในแบบของตัวเอง เราเคยเล่าไว้ในสรุปเลกเชอร์เรื่อง context engineering

สกิล hermes-dreaming ให้อะไร

สั้น ๆ คือ เอเจนต์จะจำเรื่องของคุณที่สำคัญจริง ๆ และไม่ทำให้หน่วยความจำรก ไม่ต้องสั่งมันว่า “จำไว้” ถ้าคุณวนกลับมาคุยเรื่องเดิมในหลายวัน ไม่ว่าจะเป็นโปรเจกต์ใหม่ ข้อตกลงกับลูกค้า หรือนิสัยบางอย่าง สกิลจะสังเกตเห็น เอเจนต์จะบันทึกข้อเท็จจริงนั้นลงหน่วยความจำถาวร แล้วตอนเช้าก็บอกว่าจำอะไรไว้ สำหรับงานนี้ต้องมีคลังข้อเท็จจริง ค่าเริ่มต้นคือ holographic ตั้งแต่ 11 ตุลาคม มันไม่ได้มาในตัว Hermes แล้ว แต่ติดตั้งแยกเป็นปลั๊กอินจากแคตตาล็อก และคนดูแลก็คือผมเหมือนกัน รายละเอียดอยู่ในบทความเรื่อง holographic

ข้อมูลที่ล้าสมัยก็จะไม่ค้างอยู่ในหน่วยความจำเป็นปี ๆ เปลี่ยนงาน ย้ายบ้าน ปิดโปรเจกต์ ถ้ารายการเก่าไม่มีใครพูดถึงมานาน เอเจนต์จะถามว่ายังจริงอยู่ไหม และลบออกเมื่อคุณตอบว่า “ไม่แล้ว” ถ้าในบทสนทนามีราคาใหม่ ที่อยู่ใหม่ หรือวันเรียนใหม่โผล่มา รายการเก่าจะถูกอัปเดต ไม่ใช่วางอยู่คู่กับรายการใหม่ ถ้าเอเจนต์ไม่แน่ใจว่าเวอร์ชันไหนถูก มันจะถามคุณ และถ้ามีรายการไหนสำคัญมากจนห้ามหายไม่ว่าจะเก็บกวาดแค่ไหน เช่น “แพ้ถั่วลิสง” ก็ระบุไว้ในการตั้งค่าได้ แล้วสกิลจะส่งสัญญาณเตือนถ้ามันหายไปจากหน่วยความจำ

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

งานหลักทำโดยสคริปต์ธรรมดา ส่วนโมเดลจะตื่นก็ต่อเมื่อมีเรื่องให้ตัดสินใจ: ในโหมดพื้นฐาน คืนที่ไม่มีอะไรเกิดขึ้นจะไม่เปลือง token เลย เอเจนต์แก้ได้แค่ไม่กี่รายการต่อคืน ตัวกรองจะคัดรูปแบบรหัสผ่านและคีย์ที่รู้จักออก ส่วนบอตและแชทกลุ่มที่ไม่น่าเชื่อถือจะยืนยันข้อเท็จจริงไม่ได้ นี่คือการตรวจตามกฎ ไม่ใช่การรับประกันว่าจะจับความลับได้ทุกแบบ ตอนเช้าจะมีสรุปสั้น ๆ มาให้ว่าจำอะไรไว้บ้าง พร้อมคำถามสองสามข้อ ตอบด้วยภาษาธรรมดาได้เลย และคำถามเดิมจะไม่วนมาถามทุกวัน

hermes-dreaming ทำงานอย่างไร: หนึ่งคืน

การตัดสินใจหลักของ hermes-dreaming คือให้กฎทำงานส่วนใหญ่ โดยค่าเริ่มต้น ตอนกลางคืนจะรันสคริปต์ Python ธรรมดา: ไม่ใช้เน็ต ไม่เรียกโมเดล ใช้แค่ standard library ตั้งแต่เวอร์ชัน 3.3 เปิดผู้ตัดสินบนคลาวด์แยกได้ แล้วสคริปต์จะส่งคู่ “ข้อเท็จจริง — ข้อความ” ที่อนุญาตไว้ไปให้โมเดลตัดสิน ผู้ตัดสินปิดอยู่โดยค่าเริ่มต้น และทำได้แค่ถอนการยืนยันที่กฎนับไว้แล้วเท่านั้น

ขั้นแรกสคริปต์จะหาการยืนยัน ข้อเท็จจริงจะกลายเป็นแคนดิเดตเข้าหน่วยความจำถาวรได้ก็ต่อเมื่อคนกลับมาพูดถึงมันเอง ส่วนใหญ่คือพูดถึงในหลายวันที่ต่างกัน สคริปต์หาการกล่าวถึงจากคำสำคัญที่ตรงกัน แล้วแสดงให้เอเจนต์ดูเป็นหลักฐาน ส่วนการตัดสินใจว่าจะบันทึกหรือไม่ยังเป็นของโมเดล ถ้าคลังข้อเท็จจริงระบุที่มาของข้อเท็จจริง (holographic 0.15 ขึ้นไป) หน่วยความจำถาวรจะรับเฉพาะสิ่งที่คนพูดเองหรือยืนยันแล้ว: ตั้งแต่ 3.8.0 ข้อสรุปของเอเจนต์ที่ไม่มีใครยืนยันจะไม่ถูกย้ายเข้าไปไม่ว่าทางไหน และถ้าคนพูดซ้ำในหลายวัน สกิลจะเสนอให้ถามเพื่อยืนยัน มันไม่ได้เทียบตัวอักษร แต่เทียบรากคำ: “เราย้ายไปลิสบอนถาวรแล้ว” ยืนยันข้อเท็จจริง “ย้ายไปลิสบอน” ได้ แต่ “พี่ชายย้ายไปมอสโก” ไม่ได้ ใช้ได้กับทุกภาษาที่ holographic อ่านได้: ภาษาที่ใช้อักษรละตินเทียบด้วยรากคำโดยไม่สนเครื่องหมายกำกับเสียง ส่วนจีน ญี่ปุ่น เกาหลี และไทยเทียบด้วยกลุ่มตัวอักษร ข้อความที่เครื่องสร้างจะไม่ถูกนับ: พรอมต์ของงาน cron สรุปของระบบหลังบีบอัดบริบท ลิงก์ แชทที่ไม่น่าเชื่อถือ และเธรดของเอเจนต์เอง จากนั้นแคนดิเดตจะได้คะแนนตามน้ำหนักจาก OpenClaw: เชื่อถือได้แค่ไหน พูดถึงบ่อยแค่ไหนและในกี่วันที่ต่างกัน และใหม่แค่ไหน

ต่อมาคือการเทียบกับหน่วยความจำ การซ้ำแบบตรงทุกตัวนับเป็นรายการซ้ำ ส่วนการซ้ำที่ตัวเลขต่างไปนับเป็นความขัดแย้ง ซึ่งอาจเป็นการอัปเดต: เอเจนต์จะแทนรายการเก่าถ้ารายการใหม่น่าเชื่อถือกว่า และถ้าไม่แน่ใจก็จะถาม ชื่อเดือนที่เขียนเป็นคำและวันในสัปดาห์ก็นับเป็นตัวเลขด้วย: “บัลเลต์ย้ายไปวันอังคาร” เทียบกับรายการ “บัลเลต์ทุกวันจันทร์” คือคำถามเรื่องการอัปเดต ไม่ใช่รายการซ้ำ ส่วน “25 000”, “25,000” และ “25000” คือตัวเลขเดียวกัน การเล่าราคาซ้ำจึงไม่กลายเป็นความขัดแย้ง ความลับและความพยายามทำ prompt injection จะถูกกักไว้และไปไม่ถึงโมเดล ส่วนเหตุการณ์ที่ผ่านไปแล้วซึ่งมีวันที่จะถูกตัดออกจากข้อเสนอ สคริปต์เข้าใจวันที่และคำที่บ่งบอกเหตุการณ์ได้ 15 ภาษา ตั้งแต่ “14 de noviembre” ไปจนถึง 11月14日

ถ้าไม่มีงาน งานกลางคืนจะพิมพ์ {"wakeAgent": false} และเอเจนต์หลักจะไม่ถูกเรียก ถ้าไม่มีผู้ตัดสินบนคลาวด์ คืนแบบนี้จะไม่ใช้ token แม้แต่ตัวเดียว แต่ถ้าเปิดผู้ตัดสินไว้ การเรียกแยกของมันอาจเกิดขึ้นไปแล้วก่อนถึงการตัดสินใจนี้ นี่คือเทคนิคตรวจล่วงหน้าแบบเดียวกับใน hermes-cron หน่วยความจำที่เกือบเต็มก็นับเป็นงานด้วย โดยค่าเริ่มต้นคือตั้งแต่ 85%: ลิมิตจะระงับการบันทึกโดยไม่เตือน และถ้าไม่มีการตรวจนี้ จะไม่มีใครสังเกตว่าข้อเท็จจริงใหม่เลิกถูกบันทึกแล้ว

ถ้ามีงาน เอเจนต์จะได้สรุปแบบกระชับและแก้ไขด้วยเครื่องมือหน่วยความจำปกติ คำสั่งของสกิลคุมไม่ให้มันเกินขอบเขต: เปลี่ยนแปลงได้ไม่เกินหกรายการต่อคืน ในนั้นเป็นรายการใหม่ได้ไม่เกินสาม และจะแทนรายการได้ก็ต่อเมื่อมีคำอ้างอิงตรงตัว (anchor) ที่สคริปต์ให้มาเท่านั้น คืนที่ไม่ได้บันทึกอะไรเลยก็นับว่าสำเร็จ คนจะได้รายงานในภาษาของตัวเอง ยาวสุดหกบรรทัดสั้น ๆ ส่วนแคนดิเดตทั้งหมดพร้อมที่มาจะถูกเก็บลงไดอารี่ DREAMS.md ถ้าใน Hermes เปิดการอนุมัติการบันทึกหน่วยความจำไว้ รายงานก็จะบอกตรง ๆ ว่า “ส่งไปรออนุมัติแล้ว” ไม่ใช่ “บันทึกแล้ว” รายการที่รออนุมัติอยู่ สคริปต์ก็เห็นเช่นกันและจะไม่เสนอซ้ำอีก

แผนภาพหนึ่งคืนของ hermes-dreaming ใน Hermes Agent: บทสนทนา คลังข้อเท็จจริง และหน่วยความจำเข้าสู่รอบ dream.py ที่ไม่ใช้โมเดล ต่อด้วยการตรวจว่าจะปลุกเอเจนต์หรือไม่ และการทำงานของโมเดลเพียงครั้งเดียว

ไม่มีคำถามไหนค้างอยู่ตลอดไป

ข้อเสนอให้ย้ายข้อเท็จจริงเข้าหน่วยความจำจบได้สองแบบ: บันทึก หรือปฏิเสธ ถ้าคนตอบว่า “เรื่องนี้ไม่เป็นปัจจุบันแล้ว” ข้อเท็จจริงจะเข้าไปอยู่ในรายการที่ถูกปฏิเสธ และจะถูกจำได้จากข้อความ ไม่ใช่จากหมายเลข การปฏิเสธที่ผิดพลาดยกเลิกได้ แต่การปฏิเสธก็ไม่ใช่ตลอดไป ชีวิตเปลี่ยนกลับได้: เดือนพฤษภาคมลูกเลิกเรียนบัลเลต์ เดือนกันยายนกลับไปเรียนใหม่ ดังนั้นการปฏิเสธที่เก่ากว่าครึ่งปีจะถูกยกเลิก ถ้าหลังจากนั้นมีคนพูดถึงข้อเท็จจริงนั้นอีก และเอเจนต์จะไม่บันทึกเงียบ ๆ แต่จะถามก่อน ข้อเท็จจริงใหม่ ความขัดแย้ง และคำถาม “เรื่องนี้ยังจริงอยู่ไหม?” ปล่อยไว้โดยไม่ตอบก็ได้ แล้วมันจะกลับมาไม่เร็วกว่า 14 วัน

ถ้าคลังข้อเท็จจริงเป็น holographic 0.8.0 ขึ้นไป คำตอบของคนจะถูกส่งไปที่นั่นด้วย ซึ่งข้อเท็จจริงแต่ละข้อมีประวัติของตัวเอง “อันนี้ไม่จริงแล้ว” จะปิดข้อเท็จจริง “เปลี่ยนแล้ว” จะบันทึกเวอร์ชันใหม่ “อันนั้นผิด” จะทำเครื่องหมายว่าผิด และ “ลืมไปเลย” จะลบข้อเท็จจริงพร้อมเวอร์ชันทั้งหมดและรายการในหน่วยความจำ สกิลยังเก็บกวาดสำเนาของตัวเองด้วย ทั้งไดอารี่ รายงาน รายการภายใน และบันทึกของงานกลางคืนของตัวเอง งานนี้ทำโดยงานแยกที่ไม่ใช้โมเดล รันทุก 15 นาที มันไม่เขียนทับประวัติ Git, dump ภายนอก, ไฟล์สำรองของระบบ และฐานข้อมูลเซสชันของ Hermes ใน 3.4.2 เรื่องนี้ถูกเขียนไว้ชัดในคำสั่ง: รายงานต้องแยกให้ออกระหว่างการลบจากคลังที่สำเร็จ กับสำเนาที่ยังเหลืออยู่นอกคลัง โดยไม่พูดซ้ำข้อความที่ถูกลืมไปแล้ว ส่วนข้อเท็จจริงที่ถูกปฏิเสธจะเสียความน่าเชื่อถือในคลัง เพื่อให้การค้นหาดึงมันมาใส่ในคำตอบปกติน้อยลง

รายการที่ไม่มีใครพูดถึงมา 60 วัน เอเจนต์จะถามว่ายังเป็นปัจจุบันอยู่ไหม ถ้าหลังถามแล้วรายการนั้นอยู่เฉย ๆ ไม่มีการเปลี่ยนแปลง 14 วัน หรือถูกเขียนใหม่พร้อมวันที่ล่าสุด จะนับว่าได้รับการยืนยันแล้วและพักไป 90 วัน ส่วนรายการที่มีเครื่องหมาย 📌 สกิลจะไม่ถามเลย การพักจะเริ่มก็ต่อเมื่อเอเจนต์ตอบจริง ๆ แล้วเท่านั้น: ถ้าคืนนั้นพังกลางทาง คำถามเดิมจะมาอีก และถ้าในคืนเดียวรายการหรือข้อความในหน่วยความจำหายไปเกินหนึ่งในสี่ รายงานครั้งถัดไปจะบอกเรื่องนี้

วงจรชีวิตของข้อเท็จจริงและรายการหน่วยความจำใน hermes-dreaming: ข้อเท็จจริงถูกบันทึกหรือถูกปฏิเสธ รายการถูกลบตามคำพูดของคนหรือได้รับการยืนยัน

ปลอดภัยไหม: สกิลอ่านและเขียนอะไรบ้าง

สคริปต์อ่านฐานข้อมูลบทสนทนา คลังข้อเท็จจริง และไฟล์หน่วยความจำ ส่วนที่เขียนคือสถานะของตัวเอง ไดอารี่ DREAMS.md และถ้าเปิดผู้ตัดสินไว้ ก็มีแคชของมันกับบันทึกคู่ข้อมูลที่ส่งออกไป หน่วยความจำถูกแก้โดยเอเจนต์เท่านั้น ผ่านเครื่องมือมาตรฐาน สคริปต์ไม่เขียนลงคลังข้อเท็จจริง เอเจนต์เพิ่มแคนดิเดตตอนสกัดข้อมูล ปรับความน่าเชื่อถือตามผลการตรวจ และตามคำตอบของคน ก็จะปิด แก้ ลืม หรือรวมข้อเท็จจริงที่มีอยู่ ตั้งแต่ dreaming 3.4 งานสกัดข้อมูลยังรวมสรุปที่ตัวเองเพิ่งบันทึกเข้ากับข้อเท็จจริงเก่าได้ด้วย เมื่อ holographic 0.19 แนะนำ และเมื่อไม่มีข้อมูลใหม่

มีข้อแม้ข้อหนึ่งสำหรับคนที่เปิดการอนุมัติการบันทึกหน่วยความจำใน Hermes: การอนุมัตินี้ไม่ครอบคลุมคลัง holographic ข้อเท็จจริงถูกเขียนลงไปตรง ๆ ถ้าเรื่องนี้สำคัญ ปิดแหล่งข้อเท็จจริงได้ (fact_source: none) การตรวจหน่วยความจำตอนกลางคืนยังทำงานต่อ และการตรวจการติดตั้งจะเตือนเรื่องนี้เอง ตราบใดที่ยังไม่ได้ระบุแชทกลุ่มที่เชื่อถือได้ในการตั้งค่า จะไม่มีแชทกลุ่มไหนนับเป็นการยืนยัน โดยค่าเริ่มต้นสคริปต์ไม่ส่งอะไรออกไปเลย แต่เอเจนต์ในเซสชันกลางคืนจะส่งข้อความล่าสุดของคนไปให้โมเดลที่เชื่อมต่ออยู่ สูงสุด 200 ข้อความหรือ 40,000 ตัวอักษร พร้อมส่วนหนึ่งของข้อเท็จจริง ผู้ตัดสินบนคลาวด์เมื่อเปิดใช้จะมีผู้รับและสิทธิ์การส่งแยกต่างหาก รายละเอียดอยู่ในภาคต่อ

สิ่งที่ hermes-dreaming อ่านและเขียนใน Hermes Agent: อะไรที่อ่านอย่างเดียว อะไรที่สคริปต์เขียน อะไรที่เอเจนต์เขียน และอะไรที่ไม่เกิดขึ้นเลย

แผนภาพนี้แสดงโหมดพื้นฐานที่ไม่มีผู้ตัดสินบนคลาวด์ ถ้าเปิดผู้ตัดสิน จะมีคำขอผ่านเครือข่ายและไฟล์ภายในของมันเพิ่มเข้ามา

มีอะไรใหม่ใน 3.4–3.8

ตั้งแต่ dreaming 3.4.0 และ holographic 0.19.0 รอบกลางคืนจะหาข้อเท็จจริงที่คล้ายกันทั่วทั้งฐานข้อมูลหลัก แล้วเสนอคืนละหนึ่งคู่: หมายเลขแบบ D-17 ข้อความทั้งสองแบบเต็ม และคำถาม “รวมกันไหม?” ตอนกลางคืนจะไม่มีการรวม คนตอบตามหมายเลข แล้วเอเจนต์จะเรียก fact_store merge พร้อมตรวจว่าเป็นเวอร์ชันเดียวกับที่แสดงไว้ ประวัติของรายการที่ซ้ำจะยังเก็บไว้ ถ้าข้อความเปลี่ยนไปแล้วระหว่างนั้น การรวมจะไม่เกิดขึ้น ทั้งสองเวอร์ชันที่ต้องใช้มีอยู่ในแคตตาล็อกแล้ว

ใน 3.4.1 คำสั่งสำหรับการสกัดข้อมูลถูกปรับให้ชัดขึ้น: ให้สังเกตกฎและข้อจำกัดระยะยาวที่พูดผ่าน ๆ ตรวจว่าคลังรับคำสำคัญไหนไว้จริง และเก็บคำที่มีอยู่แล้วไว้ นี่คือคำสั่งให้เอเจนต์ ไม่ใช่หลักฐานว่าตอนนี้โมเดลจะไม่พลาดอะไรเลย

ตั้งแต่ 3.5.0 การอัปเดตงานกลางคืนง่ายขึ้น: ตัวติดตั้ง cron จะอัปเดตคำสั่งมาตรฐานของงานที่มีอยู่ให้เอง ส่วนงานที่แก้ด้วยมือจะปล่อยไว้พร้อมคำเตือน 3.6.0 เพิ่มสรุปผลของงานจากบันทึกของ holographic 0.20 ลงในรายงานกลางคืนได้ถ้าต้องการ 3.7 ทำให้กลางคืนบนฐานข้อมูลใหญ่เร็วขึ้น: การหารายการซ้ำไม่ถอดใจอีกแล้วเมื่อเจอข้อเท็จจริงคล้ายกันเป็นพัน ๆ ข้อ และการนับการยืนยันก็ไม่ถอดใจเมื่อเจอแชทช่วงยาว ๆ 3.8.0 ปิดช่องโหว่ที่ข้อสรุปของเอเจนต์ที่ไม่ได้รับการยืนยันอาจหลุดเข้าไปในหน่วยความจำถาวร อ่านแบบละเอียดได้ในภาคต่อ

วิธีติดตั้ง hermes-dreaming ใน Hermes Agent

ต้องใช้ Hermes Agent 0.21 ขึ้นไป และ Python 3.9+ คำสั่งด้านล่างสำหรับ Linux และ macOS บน Windows พาธของสคริปต์และอินเทอร์พรีเตอร์ของ Hermes จะต่างออกไป ปลั๊กอินติดตั้งจากแคตตาล็อกด้วยชื่อ ณ วันที่ 30 ตุลาคม ตัวติดตั้งจะดึงเวอร์ชันที่ปักไว้คือ 3.7.1 การติดตั้งจาก URL ของรีโพจะเปลี่ยนแหล่งที่เชื่อถือ และหลังจากนั้นอาจอัปเดตข้ามคอมมิตที่ปักไว้ สำหรับสกิลที่ใช้งานอยู่แล้ว และการติดตั้ง 3.8.0 ล่าสุดด้วยแฮช ดูคู่มืออัปเดต

hermes plugins install hermes-dreaming
hermes plugins enable hermes-dreaming

Hermes รันสคริปต์ของงาน cron จาก ~/.hermes/scripts/ เท่านั้น ขั้นต่อไปจึงคัดลอกตัวตรวจไปไว้ที่นั่น สร้างไฟล์ตั้งค่า ~/.hermes/dreaming.json ลองรันบนสำเนาข้อมูล และตรวจแหล่งข้อเท็จจริง:

python3 ~/.hermes/plugins/hermes-dreaming/skills/dreaming/scripts/install.py

สคริปต์เดียวกันนี้ถ้าใส่คีย์ --check จะไม่เปลี่ยนอะไร แค่ตรวจการติดตั้ง ควรรันหลังอัปเดตทุกครั้ง เพราะสำเนาใน scripts/ อาจไม่ตรงกับสกิล ส่วนตัวสำเนาและคำสั่งของงานกลางคืนหลังอัปเดตจะถูกจัดให้เรียบร้อยด้วย install_cron.py --upgrade รายละเอียดอยู่ในคู่มืออัปเดต ถ้าจะตรวจการผูกงานกับปลั๊กอินแบบเต็ม ให้รันด้วยอินเทอร์พรีเตอร์ของ Hermes เองตามที่ระบุในบล็อกถัดไป เพราะ python3 ธรรมดาอาจหารีจิสทรีปลั๊กอินไม่เจอ

ต่อไปคือส่วนที่ไม่มีใครทำแทนคุณได้: เปิด dreaming.json แล้วใส่แชทที่เชื่อถือได้ (trusted_chat_ids) ชื่อของเอเจนต์ และแหล่งข้อเท็จจริง ถ้าแชทที่เชื่อถือได้เป็นฟอรัม ให้ระบุใน excluded_threads ว่าเธรดไหนที่คนไม่ได้เขียน แต่เป็นบอตและการแจ้งเตือนของเอเจนต์ ไม่ต้องใส่โซนเวลาและลิมิตหน่วยความจำซ้ำ: ถ้าไม่มีใน dreaming.json สกิลจะดึงจากการตั้งค่าของ Hermes เอง จากนั้นก็สร้างงานกลางคืน ซึ่งต้องสร้างด้วยอินเทอร์พรีเตอร์ของ Hermes เอง และควรดูแผนก่อน:

~/.hermes/hermes-agent/venv/bin/python \
    ~/.hermes/plugins/hermes-dreaming/skills/dreaming/scripts/install_cron.py --deliver local --dry-run

ถ้าแผนโอเค ก็รันคำสั่งเดิมโดยไม่ใส่ --dry-run ถ้าอยากให้รายงานส่งมาที่ Telegram ให้ใส่ telegram:<chat_id>:<thread_id> แทน local มีงานสามงาน: รอบกลางคืนเอง การสกัดข้อเท็จจริงจากแชท และการเก็บกวาดสำเนาของข้อเท็จจริงที่ถูกลืม งานสุดท้ายนี้รันทุก 15 นาทีโดยไม่ใช้โมเดล และเงียบถ้าไม่มีอะไรให้เก็บ การสกัดข้อมูลรันสัปดาห์ละครั้งก็ได้: ในครอบครัวเล็ก ๆ การรันตอนกลางคืนส่วนใหญ่จะตอบ [SILENT] คือไม่มีอะไรให้เพิ่ม

แหล่งข้อเท็จจริงโดยค่าเริ่มต้นคือคลัง holographic ตั้งค่าด้วย memory.provider: holographic และการสกัดข้อมูลทำงานกับมันเท่านั้น ต้องใช้เวอร์ชัน 0.8.0 ขึ้นไป: เวอร์ชัน 0.2–0.7 ไม่ยอมให้งานกลางคืนเขียน และการสกัดข้อมูลจะไม่บันทึกอะไรเลย ถ้าตั้ง holographic ให้แยกฐานข้อมูลของแต่ละแชท รอบกลางคืนโดยค่าเริ่มต้นจะไม่อ่านฐานนั้น เพื่อไม่ให้ข้อเท็จจริงของแชทหนึ่งไปอยู่ในหน่วยความจำที่ทุกคนเห็น และรายงานจะบอกเหตุผลตรง ๆ แชทที่ต้องการอนุญาตได้ในการตั้งค่า (chat_stores) จะใช้ไฟล์ export เป็น SQLite หรือ JSONL ก็ได้ ส่วนถ้าไม่มีคลัง สกิลจะทำงานกับไฟล์หน่วยความจำเท่านั้น: ถามเรื่องรายการเก่าและคอยดูว่าเต็มแค่ไหน ทั้งสองกรณีไม่ต้องใช้การสกัดข้อมูล ให้เพิ่ม --extract-schedule "" ต่อท้ายคำสั่ง และถ้าไม่ต้องการการเก็บกวาดข้อเท็จจริงที่ถูกลืมด้วย (ถ้าไม่มี holographic ก็ไม่มีอะไรให้ลืม) ให้เพิ่ม --sweep-schedule "" อีก แล้วจะเหลืองานกลางคืนแค่งานเดียว ถ้าอยากดูว่าคืนนี้จะเสนออะไร โดยไม่เปลี่ยนอะไรเลย ให้รัน:

python3 ~/.hermes/plugins/hermes-dreaming/skills/dreaming/scripts/dream.py --dry-run

ถ้ายังไม่ได้ติดตั้ง Hermes ให้เริ่มจากการติดตั้งและเชื่อมต่อกับ Telegram แล้วต่อด้วยการตั้งค่าหลังติดตั้ง โค้ด เอกสาร คู่มืออัปเดตจากเวอร์ชันเก่า และที่สำหรับถามคำถาม อยู่ในรีโพบน GitHub ยินดีรับ issues และ pull requests

จะหาสกิลและปลั๊กอินอื่นของ Hermes ได้ที่ไหน และควรตรวจของคนอื่นอย่างไรก่อนติดตั้ง ผมรวบรวมไว้ในบทความรีวิวแยก

คำถามที่พบบ่อย

hermes-dreaming ราคาเท่าไร?

สกิลนี้ฟรี โค้ดเปิดภายใต้ไลเซนส์ MIT ในโหมดพื้นฐาน คุณจ่ายแค่ค่า token ของโมเดล Hermes เมื่อมีงานให้มันทำ ถ้าเปิดผู้ตัดสินบนคลาวด์ การเรียกแยกของมันก็มีค่าใช้จ่ายด้วย แม้สุดท้ายเอเจนต์หลักจะไม่ตื่นก็ตาม

ต้องใช้อินเทอร์เน็ตและ API key ไหม?

ในโหมดพื้นฐาน สคริปต์ไม่ต้องใช้ทั้งอินเทอร์เน็ตและคีย์ ในเซสชันกลางคืน โมเดลที่เชื่อมกับ Hermes จะเป็นตัวทำงาน ผู้ตัดสินบนคลาวด์ซึ่งเป็นตัวเลือกเสริมต้องใช้เครือข่ายและคีย์ OpenRouter, OpenAI หรือทั้งสองอย่าง โดยค่าเริ่มต้นมันปิดอยู่

hermes-dreaming ต่างจากหน่วยความจำในตัวของ Hermes อย่างไร?

มันไม่ได้มาแทนที่ นี่ไม่ใช่ memory provider ตัวใหม่ แต่เป็นผู้ตรวจสอบตอนกลางคืน: มันตรวจสิ่งที่อยู่ในหน่วยความจำในตัวและคลังข้อเท็จจริงอยู่แล้ว และบอกเอเจนต์ว่าควรเพิ่ม อัปเดต หรือลบอะไร

สกิลใช้ได้กับภาษาอะไรบ้าง?

ทุกภาษาที่ holographic อ่านได้ ตอนนี้มี 18 ภาษา ภาษารัสเซียและภาษาอื่นที่ใช้อักษรละตินและซีริลลิกเทียบกันด้วยรากคำ ส่วนจีน ญี่ปุ่น เกาหลี และไทยเทียบด้วยกลุ่มตัวอักษร สกิลแยกแยะวันที่และเหตุการณ์ที่ผ่านไปแล้วได้ใน 15 ภาษา

ถ้าหน่วยความจำหายไปหลัง hermes update ต้องทำอย่างไร?

ตั้งแต่ 11 ตุลาคม holographic ไม่ได้ติดตั้งมากับ Hermes แล้ว แต่ติดตั้งแยกเป็นปลั๊กอินจากแคตตาล็อก ถ้าตอนอัปเดตมันไม่ได้ติดตั้งขึ้นมา หน่วยความจำจะปิดไป วิธีแก้อยู่ในบทความเรื่อง holographic และใน README ของปลั๊กอิน หลังจากนั้นให้รัน install.py --check มันจะบอกว่าสกิลมองเห็นคลังข้อเท็จจริงหรือไม่

สกิลใช้กับ mem0, Honcho หรือ Supermemory ได้ไหม?

โดยตรงไม่ได้: คลังบนคลาวด์สกัดข้อเท็จจริงและลบรายการซ้ำบนเซิร์ฟเวอร์ของตัวเอง ถ้าต้องการเทียบกับบทสนทนาจริง ๆ ก็ export ข้อเท็จจริงเป็น JSONL แล้วเชื่อมเป็นแหล่งข้อมูลได้

แหล่งข้อมูล

  1. Hermes Agent: หน้า hermes-dreaming ในแคตตาล็อกปลั๊กอิน
  2. NousResearch/hermes-agent: PR #130807 เพิ่ม hermes-dreaming เข้าแคตตาล็อก
  3. itpartypattaya/hermes-dreaming: รีโพและ README
  4. Hermes-dreaming: การเปลี่ยนแปลงจนถึง 3.8.0
  5. Hermes-dreaming 3.8.0: เอกสารภาษารัสเซีย
  6. Hermes-dreaming 3.8.0: การติดตั้งและอัปเดตงาน cron
  7. Hermes-dreaming 3.8.0: คำสั่งสำหรับเอเจนต์และขอบเขตของการลืม
  8. Hermes-dreaming: รีลีส 3.8.0 เข้าหน่วยความจำเฉพาะสิ่งที่ยืนยันแล้ว
  9. Hermes: เวอร์ชันของ hermes-dreaming ที่ปักไว้ในแคตตาล็อก
  10. NousResearch/hermes-agent: PR #137290 อัปเดต hermes-dreaming ในแคตตาล็อกเป็น 2.7.0 (รวมเข้าเมื่อ 13 ตุลาคม 2569)
คนกันเองอยู่ใกล้ ๆถามคนกันเอง แชทตอบเร็วกว่าค้นหาเองแชทหลักของไอที ปาร์ตี้ พัทยา: คนสาย IT สายดิจิทัล และผู้ประกอบการ ที่เคยผ่านเรื่องเดียวกันมาแล้ว เริ่มตั้งแต่กรกฎาคม 2566 แชทใช้ภาษารัสเซีย ชาวต่างชาติและคนไทยเข้ามาได้เสมอเข้าแชท (ภาษารัสเซีย)

อ่านเรื่องที่เกี่ยวข้อง