MemRosetta -- เอนจินหน่วยความจำระยะยาวแบบโลคัลสำหรับเครื่องมือ AI
(github.com/obst2580)เมื่อใช้งานเครื่องมือเขียนโค้ดด้วย AI (เช่น Claude Code, Cursor, Codex, Gemini) พอเปลี่ยนเซสชันแต่ละครั้ง บริบทก็มักจะหายไป
สถาปัตยกรรมที่ตัดสินใจไว้เมื่อวาน ผลการดีบักเมื่อสัปดาห์ก่อน หรือสไตล์การเขียนโค้ดที่ฉันชอบ — ต้องอธิบายใหม่ทุกครั้ง
MemRosetta คือเอนจินหน่วยความจำระยะยาวแบบโลคัลที่สร้างมาเพื่อแก้ปัญหานี้
ติดตั้งด้วยคำสั่งเดียว:
npm install -g memrosetta && memrosetta init --claude-code
ทำงานอย่างไร
ระบบจะเก็บความทรงจำทั้งหมดไว้ในไฟล์ SQLite แบบโลคัลไฟล์เดียว (~/.memrosetta/memories.db) โดย Claude Code, Cursor,
Codex และ Gemini ใช้ฐานข้อมูลเดียวกัน จึงค้นหาความทรงจำที่บันทึกจากเครื่องมือหนึ่งได้ในอีกเครื่องมือหนึ่ง
แทนที่จะหั่นเอกสารเป็นชิ้นข้อความ (chunk) แบบ RAG เดิม ระบบจะเก็บเป็นหน่วยความทรงจำเชิงอะตอม (atomic memory)
หนึ่งข้อเท็จจริงต่อหนึ่งเรคอร์ด
// เซสชันวันจันทร์ — Claude เรียก MCP โดยอัตโนมัติระหว่างการสนทนา
store({
"content": "인증은 OAuth2 + PKCE로 결정",
"memoryType": "decision",
"keywords": ["auth", "oauth2", "pkce"]
})
// เซสชันใหม่วันอังคาร — Claude ค้นหาด้วย MCP
search({ "query": "auth" })
→ [0.95] 인증은 OAuth2 + PKCE로 결정 (decision, 2026-03-31)
→ [0.82] API rate limit은 유저당 100req/min (fact, 2026-03-31)
→ [0.41] 로그인 페이지 UI 완성 (event, 2026-03-28)
แม้จะมีความทรงจำสะสมอยู่ 100 รายการ ระบบก็จะคืนกลับมาเพียง 5 อันดับแรกที่เกี่ยวข้องที่สุด โดยประเมินร่วมกันจากการจับคู่คีย์เวิร์ด + ความคล้ายคลึงเชิงความหมาย + คะแนนการกระตุ้นตาม ACT-R
คล้ายกับวิธีที่สมองมนุษย์นึกถึงความทรงจำที่เกี่ยวข้อง — ความทรงจำที่ถูกนึกถึงบ่อยจะถูกดึงขึ้นมาได้ง่ายกว่า ส่วนที่ไม่ได้ใช้นานจะค่อย ๆ เลือนลงตามธรรมชาติ แต่ไม่หายไป
คุณสมบัติหลัก
- การค้นหาแบบไฮบริด: FTS5 keyword matching + vector semantic similarity + การรวมผลแบบ Convex Combination
- ตรวจจับความขัดแย้ง: โมเดล NLI แบบโลคัล (71MB) ตรวจจับความขัดแย้งระหว่างข้อเท็จจริงใหม่กับความทรงจำเดิมโดยอัตโนมัติ และเชื่อมโยงเป็นความสัมพันธ์
- การลืมแบบปรับตัวได้: อิงโมเดล ACT-R จากวิทยาศาสตร์การรู้คิด ความทรงจำที่ถูกค้นหาบ่อยจะมีคะแนน activation สูงขึ้น ส่วนที่ไม่ถูกใช้งานจะค่อย ๆ จางลงตามธรรมชาติ (ไม่ใช่การลบ)
- โมเดลเวลา: ความทรงจำแต่ละรายการมี 4 timestamps — บันทึกเมื่อไร, บทสนทนาเกิดขึ้นเมื่อไร, เหตุการณ์จริงเกิดขึ้นเมื่อไร, และหมดความใช้การเมื่อไร
- กราฟความสัมพันธ์:
updates,extends,derives,contradicts,supports— เชื่อมโยงความทรงจำเข้าหากัน - ไม่ต้องใช้ LLM: เอนจินหลักทำงานแบบโลคัลโดยไม่เรียก external API ทั้ง embedding (33MB) และ NLI (71MB) ก็รันแบบโลคัลทั้งหมด
การผสานรวมตามเครื่องมือ
memrosetta init --claude-code # Claude Code: hooks + CLAUDE.md + MCP
memrosetta init --cursor # Cursor: MCP + .cursorrules
memrosetta init --codex # Codex: config.toml + AGENTS.md
memrosetta init --gemini # Gemini: settings.json + GEMINI.md
ผ่าน MCP(Model Context Protocol) ทำให้ AI สามารถบันทึก/ค้นหาความทรงจำได้โดยตรงระหว่างเซสชัน สำหรับ Claude Code นั้น ระหว่างเซสชัน Claude จะบันทึกผ่าน MCP ได้โดยตรง (คุณภาพดีที่สุด ค่าใช้จ่าย $0) และเมื่อจบเซสชัน Stop Hook จะทำหน้าที่เป็นตาข่ายนิรภัยเพื่อเก็บสิ่งที่พลาดไป
เปรียบเทียบกับผลิตภัณฑ์คู่แข่ง
โซลูชันหน่วยความจำ AI ที่มีอยู่เดิมอย่าง Mem0, Zep และ Letta เป็นระบบคลาวด์และพึ่งพา LLM ส่วน MemRosetta ทำงานได้ด้วย SQLite แบบโลคัลเพียงไฟล์เดียว และมีฟีเจอร์อย่างการตรวจจับความขัดแย้ง, โมเดลการลืมแบบ ACT-R, โมเดลเวลา, กราฟความสัมพันธ์ ซึ่งไม่มีในโซลูชันเดิม
- GitHub: https://github.com/obst2580/memrosetta
- หน้าเว็บไซต์: https://memrosetta.liliplanet.net
- npm: npm install -g memrosetta
- ทดสอบแล้ว 696+ รายการ, MIT License
1 ความคิดเห็น
สวัสดีครับ คิดว่าเป็นไอเดียที่ดีมากครับ
มีแผนจะแยกตามแต่ละโปรเจกต์บ้างไหมครับ?