LightVela

เอเจนต์ Hermes จำคุณได้อย่างไร?

สรุป

**Hermes เอเจนต์จำคุณไม่ได้เพราะมีหน้าต่างบริบทที่ใหญ่ขึ้น แต่เพราะระบบความจำระยะยาวที่มีสี่ชั้นทำงานร่วมกัน: USER.md (1,375 อักขระ / ประมาณ 500 โทเค็น) ครอบคลุม "คุณคือใคร", MEMORY.md (2,200 อักขระ / ประมาณ 800 โทเค็น) ครอบคลุม "สิ่งที่เราได้ทำร่วมกัน", การเก็บบันทึกเซสชัน SQLite + FTS5 ทำให้สามารถดึงประโยคใดก็ได้อย่างแม่นยำในสัปดาห์ต่อมา, และ Skills ครอบคลุม "ฉันควรจัดการงานประเภทนี้อย่างไร" การเขียนถูกจัดระเบียบอย่างตั้งใจโดยเอเจนต์ในสี่ช่วงเวลา — Compression, Checkpoint, Nudge, และคำสั่งที่ชัดเจนจากผู้ใช้ — ขณะที่การเรียกคืนรวมสามส่วน: การโหลดค่าเริ่มต้นแบบมีโครงสร้าง, การจับคู่ FTS5 อย่างแม่นยำ, และการสรุปความหมายโดย LLM นั่นคือสิ่งที่เปลี่ยน "การจำคุณ" จากแนวคิดให้กลายเป็นวิศวกรรม


ช่วงเวลาที่ผู้ช่วย AI ส่วนใหญ่น่าผิดหวัง

มันไม่ใช่ตอนที่พวกเขาตอบผิด มันคือเมื่อคุณต้องพูดว่า:

"คุณไม่ได้เพิ่งบอกฉันเรื่องนี้ครั้งที่แล้วหรอ?"

หน้าต่างของบริบทได้เพิ่มขึ้นจาก 8k เป็น 200k และ 1M แต่การจดจำคุณไม่เคยเป็นเรื่องของการใส่โทเค็นเพิ่ม: 200k ของบริบทในหนึ่งเซสชันจะหายไปทันทีที่เซสชันนั้นจบลง เพื่อให้เอเจนต์จำคุณได้ในระยะยาว ต้องตอบคำถามสามข้อ:

  • อะไรที่สมควรถูกบันทึกลงในความทรงจำระยะยาว? (ประตูบันทึกอยู่ที่ไหน?)
  • ความทรงจำควรถูกจัดเก็บในรูปแบบใดเพื่อให้สามารถค้นพบได้แม้หลังจากผ่านไปหลายสัปดาห์?
  • เมื่อถึงเวลาต้องค้นหาสิ่งใดสิ่งหนึ่ง เอเจนต์พึ่งพาความคล้ายคลึงของเวกเตอร์ หรือพึ่งพาสิ่งอื่น?

Hermes ตอบทั้งสามข้อด้วยระบบความจำระยะยาวเต็มรูปแบบ ส่วนด้านล่างแบ่งออกเป็นห้าชั้น


1. ก่อนอื่น กำหนดความหมายของคำว่า "การจำ"

ในแง่มนุษย์ 'การจดจำคุณ' มีอย่างน้อยสามสิ่ง:

  1. การรู้ว่าคุณเป็นใคร — ชื่อ, บทบาท, ความชอบ, เครื่องมือที่ใช้ตามปกติ
  2. การรู้ว่าเราได้ทำอะไรด้วยกันบ้าง — โครงงานที่พูดคุย, ข้อสรุปที่ให้, อุปสรรคที่เจอ
  3. การรู้วิธีจัดการกับคุณ — คุณต้องการคำตอบสั้นหรือรายละเอียด? ข้อสรุปก่อน หรือเหตุผลก่อน?

โมเดลที่มีเพียงหน้าต่างบริบทขนาดใหญ่สามารถทำทั้งสามอย่าง ภายในบทสนทนาหนึ่งเดียว แต่ทันทีที่เซสชันสิ้นสุด จุดที่ 1 และ 3 จะรีเซ็ต

Hermes' แนวทาง: ผลักสามสิ่งนั้นเข้าไปในเลเยอร์ความคงทนแยกกันแต่ละเลเยอร์ โดยแต่ละเลเยอร์จะถูกดูแลตามที่ควร — ข้อ 1 ไปยัง USER.md, ข้อ 2 ไปยัง MEMORY.md, และข้อ 3 ถูกดูแลร่วมกันโดยฟิลด์ความชอบใน USER.md และการสร้างแบบจำลองผู้ใช้ของ Honcho


2. การเขียน: เอเจนต์จัดระเบียบอย่างรอบคอบแทนที่จะจดทุกอย่างลงไป

Hermes' ความทรงจำระยะยาวไม่ได้เป็น "หนึ่งรายการต่อหนึ่งประโยค" เอเจนต์จะจัดระเบียบและเก็บความทรงจำไว้ใน สี่ช่วงเวลาที่ชัดเจน:

ตัวกระตุ้นจุดประสงค์
การบีบอัดเมื่อบริบทใกล้ถึงขีดจำกัด ให้ดึงสิ่งที่คุ้มค่าที่จะเก็บไว้นานจากเซสชันปัจจุบันออกมาก่อน จากนั้นบีบอัดบริบท
ตรวจสอบจุดสำคัญที่จุดสำคัญ เช่น เมื่อทำงานย่อยเสร็จหรือเปลี่ยนหัวข้อ ให้บันทึกอย่างรอบคอบ
การกระตุ้นเป็นระยะระบบจะกระตุ้นเอเจนต์เป็นระยะ ๆ: "มีอะไรที่ควรบันทึกลงในหน่วยความจำระยะยาวไหม?" ซึ่งช่วยป้องกันข้อมูลจากการหายไปอย่างเงียบ ๆ ในระหว่างเซสชันยาว
คำสั่งผู้ใช้โดยตรงเมื่อผู้ใช้บอกว่า "จำไว้ว่าฉันใช้ Y ในโครงการ X" ระบบจะรับรู้ว่าเป็นการเขียนความจำที่มีความสำคัญสูง

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

การคำนวณต้นทุนที่ชัดเจน: หากไม่มีตัวกรองนั้น ผู้ใช้ที่มีปฏิสัมพันธ์ 50 ครั้งต่อวันจะใส่บทสนทนาดิบประมาณ 18 ล้านโทเค็น ลงในหน่วยความจำระยะยาวในหนึ่งปี วิธี Hermes จะบีบอัดสิ่งนั้นให้เหลือ น้อยกว่า 1% ในขณะที่ยังคงเก็บเกือบทุกข้อเท็จจริงสำคัญไว้


3. การจัดเก็บ: สี่ชั้น แต่ละชั้นมีหน้าที่ของตัวเอง

Hermes แบ่งความทรงจำระยะยาวออกเป็นสี่ประเภท โดยแต่ละประเภทถูกเก็บไว้ในที่ต่างกันพร้อมกับ ขีดจำกัดความจุที่ชัดเจน:

ชั้นตัวกลางความจุทั่วไปเวลาการโหลดความรับผิดชอบ
โปรไฟล์ผู้ใช้USER.md~1,375 ตัวอักษร / ~500 โทเค็นทุกเซสชันใครคุณ, บทบาท, ความชอบ, ซอฟต์แวร์ที่ใช้ปกติ, รูปแบบการสื่อสาร
ความจำข้อเท็จจริงMEMORY.md + memories/~2,200 ตัวอักษร / ~800 โทเค็นทุกเซสชันเหตุการณ์, การตัดสินใจ, ข้อสรุป, ข้อเท็จจริงเพื่อนำกลับมาใช้ในหลายเซสชัน
บันทึกเซสชันSQLite + ดัชนีข้อความเต็ม FTS5ไม่จำกัด (ประวัติเป็นเดือน)โหลดเมื่อมีการค้นหาตรงกันสามารถดึงประโยคต้นฉบับได้แม่นยำหลังหลายสัปดาห์
ความจำเชิงกระบวนการไดเรกทอรี skills/ (SKILL.md)ขนาดกิโลไบต์ต่อไฟล์โหลดลำดับความสำคัญสูงเมื่อสถานการณ์ตรงกัน“ฉันควรทำอะไรในสถานการณ์นี้” (มีบทความเฉพาะในหมวดนี้ครอบคลุม)

นอกจากนั้น Hermes ยังเก็บ SOUL.md — คำอธิบายบุคลิกภาพของเอเจนต์เอง ซึ่งเป็นของแบบจำลองตนเองของเอเจนต์มากกว่าความทรงจำของผู้ใช้ แต่รวมกับความทรงจำของผู้ใช้ก็จะสร้างพื้นฐานบริบท

ทำไมแต่ละชั้นถึงมีเพดานที่แข็ง?

บางคนถามว่า: ถ้าหน้าต่างบริบทมีขนาดใหญ่ขนาดนี้ ทำไม USER.md ถึงได้เพียง 500 โทเค็นเท่านั้น?

สามเหตุผล:

  1. ทุก 1,000 โทเค็นที่เพิ่มเข้ามาในพรอมต์ของระบบจะทำให้เสียโทเค็นถึง 18 ล้านโทเค็นต่อปีเมื่อมีการเรียก 50 ครั้งต่อวัน — เป็นแรงกดดันด้านต้นทุนอย่างจริงจัง
  2. ทุกสิ่งที่โหลดในทุกเซสชันต้องถูกเลือกอย่างระมัดระวัง — เพราะมันเป็นส่วนหนึ่งของพรอมต์ของระบบ และความฟุ่มเฟือยจะบีบบริบทของงานจริงออกไป
  3. การมีเพดานสูงสุดทำให้ต้องตัดสินใจเลือก — เมื่อความจุเต็มแล้ว ไม่มีอะไรถูกละทิ้งอย่างเงียบ ๆ; เอเจนต์จะถูก บังคับให้รวมข้อมูล (ดูส่วนที่ 5)

นั่นคือปรัชญาหลักของ Hermes: “การจำ” ไม่ใช่ “การเก็บสะสม” แต่คือ “การเก็บสะสมหลังจากการเลือกอย่างมีเจตนา”

องค์ประกอบหนึ่งที่คุณไม่ควรมองข้าม: Honcho

Hermes ยังนำเข้าคอมโพเนนต์ที่เรียกว่า Honcho ซึ่งทำหน้าที่ การสร้างแบบจำลองผู้ใช้เชิงวิภาษ — กล่าวง่าย ๆ มันจะสกัดข้อความที่นำกลับมาใช้ซ้ำได้เกี่ยวกับผู้ใช้จากการสนทนาอย่างต่อเนื่องและป้อนกลับเข้าในการบำรุงรักษา USER.md

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


4. การเรียกคืน: โครงสร้าง ข้อความเต็ม และเชิงความหมาย — สามขา

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

กลยุทธ์การเรียกคืนของ Hermes ดูเหมือนการดึงข้อมูลแบบไฮบริดมากกว่า:

วิธีการดึงข้อมูลสถานการณ์ที่กระตุ้นความล่าช้าปกติ
การโหลดค่าเริ่มต้นแบบมีโครงสร้างทุกครั้งที่เริ่มการสนทนาเกือบเป็นศูนย์ (เป็นส่วนหนึ่งของพรอมต์ระบบ)
การค้นหาข้อความเต็ม FTS5ผู้ใช้ถามเกี่ยวกับข้อเท็จจริงเฉพาะ: "เกิดข้อผิดพลาดนั้นอีกครั้งว่าอะไร?"~20ms สำหรับการจับคู่, ~1ms สำหรับการแบ่งหน้า
การสรุปเชิงความหมายด้วย LLMคำถามที่ต้องรวมหลายรายการหลายนาที, รันบนโมเดลราคาถูก (เช่น Gemini Flash)

สามสิ่งที่ทำงานร่วมกันนั้นคือสิ่งที่ทำให้ "การจดจำคุณ" มากกว่า "เวกเตอร์ของเราคล้ายกัน" — มันกลายเป็น "ฉันจริงๆ รู้ว่าคุณพูดอะไร"

การเปรียบเทียบกับโน้ตสติ๊กเกอร์ช่วยได้: USER.md คือ โน้ตที่ติดอยู่บนขอบหน้าจอของคุณ (เห็นได้ทุกครั้งที่คุณมองขึ้นไป), MEMORY.md คือ สมุดบันทึกบนโต๊ะของคุณ (ก็เห็นได้เช่นกันและมีข้อมูลเพิ่มเติมภายใน), SQLite+FTS5 คือ กล่องเอกสารเก็บในตู้ (ไม่ค่อยเปิดแต่หาพบเสมอ), และทักษะคือ ความจำจากการฝึกฝนของกล้ามเนื้อ (ร่างกายของคุณรู้ว่าต้องทำอะไรเมื่อถึงเวลานั้น).


5. การอัปเดต: ความทรงจำมีชีวิต ไม่ใช่สมุดบัญชี

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

กลยุทธ์ 1: เมื่อเกิดความขัดแย้ง ให้ปรับปรุงแทนการเพิ่มพร้อมกัน

ซึ่งจะช่วยหลีกเลี่ยงบุคลิกภาพแยก — คุณไม่สามารถมี "ผู้ใช้ชอบ Vue / ผู้ใช้เปลี่ยนไปใช้ React / ผู้ใช้กลับไปใช้ Vue" นั่งอยู่ข้างกัน Hermes จะเขียนทับค่าที่เก่าของฟิลด์ความชอบ ในขณะที่รายการข้อเท็จจริงจะเก็บประวัติไว้แต่ปรับปรุงฟิลด์ "สถานะปัจจุบัน"

กลยุทธ์ 2: รายการที่ไม่ได้อ้างอิงเป็นเวลานานจะถูกลดน้ำหนักให้มีค่าต่ำ

MEMORY.md มีเพดานสูงสุดที่แน่นอน (2,200 ตัวอักษร) เมื่อเต็มแล้ว คำตอบคือ:

{
  "success": false,
  "error": "Memory at 2,100/2,200 chars. Consolidate now...",
  "current_entries": [...],
  "usage": "2,100/2,200"
}

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

กลยุทธ์ที่ 3: ข้อมูลที่ผู้ใช้ปฏิเสธอย่างชัดเจนจะถูกลบทันที

ไม่ใช่ 'บันทึกสิ่งที่ตรงข้าม' แต่เป็น การลบทางกายภาพ — เพื่อให้โมเดลโลกยังคงสอดคล้องกับตัวเอง

ในอีกแง่หนึ่ง, Hermes ใกล้กับการ แก้ไขคลังข้อมูลที่มีชีวิต มากกว่าการบันทึกลงในไดอารี่


6. ยังมีสิ่งหนึ่งที่ขาดหายไปเพื่อให้สิ่งนี้ใช้งานได้จริง

ถึงแม้ว่ากลไกความจำจะดีเพียงใด แต่มันก็มีข้อกำหนดเบื้องต้นข้อหนึ่ง: เอเจนต์ต้องมีชีวิตอยู่

ถ้าคุณติดตั้ง Hermes บนแล็ปท็อปของคุณเอง มันจะเข้าสู่โหมดพักทุกครั้งที่คุณปิดฝา และวงจรสะท้อนตนเองพื้นหลัง (nudge) จะหยุดชะงัก การเปลี่ยนเครื่องหรือการติดตั้งระบบปฏิบัติการใหม่หมายถึงการย้าย ~/.hermes/ ด้วยมือ และดัชนี FTS5 ต้องถูกสร้างใหม่ตั้งแต่ต้นทุกครั้ง

นี่คือจุดที่การโฮสต์บนคลาวด์มีประโยชน์อย่างแท้จริง LightVela เป็น บริการเอเจนต์ Hermes ที่โฮสต์บนคลาวด์:

  • อินสแตนซ์คลาวด์เฉพาะที่ออนไลน์ 24×7 โดยมี MEMORY.md / USER.md / สถาบันเก็บบันทึกเซสชัน SQLite อยู่ที่นั่นอย่างถาวร;
  • วงจรการแจ้งเตือนพื้นหลังยังคงทำงานอยู่ ดังนั้นเอเจนต์จะพัฒนาจริงแม้คุณไม่ได้ใช้งาน;
  • ข้อมูลจะอยู่บนเซิร์ฟเวอร์เฉพาะของคุณเท่านั้น;
  • โทรศัพท์, แล็ปท็อป, Telegram, Slack, Lark — ทุกช่องทางติดต่อถึงเอเจนต์เดียวกันที่รู้จักคุณ

Hermes เปลี่ยน “การระลึกถึงคุณ” ให้กลายเป็นการออกแบบวิศวกรรมที่สามารถใช้งานได้; LightVela ทำให้การออกแบบนั้นมีผล ทุกวันเลย, อยู่ใกล้คุณทุกวัน.


ข้อสรุปสำคัญ

  • Hermes จดจำคุณผ่าน การจัดเรียงอย่างรอบคอบ, การจัดเก็บแบบหลายชั้น, การเรียกคืนแบบผสมผสาน และการอัปเดตอย่างต่อเนื่อง — ไม่ใช่หน้าต่างที่ใหญ่ขึ้น
  • แต่ละชั้นมีความจุที่ชัดเจน: 500 โทเค็นสำหรับ USER.md, 800 โทเค็นสำหรับ MEMORY.md, ไม่มีขีดจำกัดสำหรับ SQLite, และการโหลดตามสถานการณ์สำหรับ Skills
  • ระบบความจำของเอเจนต์ที่ดี แก้ไขคลังเก็บ แทนที่จะ เพิ่มลงในบันทึกประจำวัน — ขีดจำกัดบังคับให้ทำการแลกเปลี่ยน
  • เป้าหมายของ LightVela คือการนำความสามารถนี้จากบรรทัดคำสั่งเข้าสู่ผลิตภัณฑ์ เพื่อให้การถูกรำลึกเป็นประสบการณ์มาตรฐาน

อัปเดตล่าสุดเมื่อ 2026-10-09

บนหน้านี้

สรุปช่วงเวลาที่ผู้ช่วย AI ส่วนใหญ่น่าผิดหวัง1. ก่อนอื่น กำหนดความหมายของคำว่า "การจำ"2. การเขียน: เอเจนต์จัดระเบียบอย่างรอบคอบแทนที่จะจดทุกอย่างลงไป3. การจัดเก็บ: สี่ชั้น แต่ละชั้นมีหน้าที่ของตัวเองทำไมแต่ละชั้นถึงมีเพดานที่แข็ง?องค์ประกอบหนึ่งที่คุณไม่ควรมองข้าม: Honcho4. การเรียกคืน: โครงสร้าง ข้อความเต็ม และเชิงความหมาย — สามขา5. การอัปเดต: ความทรงจำมีชีวิต ไม่ใช่สมุดบัญชีกลยุทธ์ 1: เมื่อเกิดความขัดแย้ง ให้ปรับปรุงแทนการเพิ่มพร้อมกันกลยุทธ์ 2: รายการที่ไม่ได้อ้างอิงเป็นเวลานานจะถูกลดน้ำหนักให้มีค่าต่ำกลยุทธ์ที่ 3: ข้อมูลที่ผู้ใช้ปฏิเสธอย่างชัดเจนจะถูกลบทันที6. ยังมีสิ่งหนึ่งที่ขาดหายไปเพื่อให้สิ่งนี้ใช้งานได้จริงข้อสรุปสำคัญ