Skip to content

ข้อจำกัด

Somtum พร้อมใช้งานในระดับ production แต่มีข้อแลกเปลี่ยนที่ควรทราบก่อนตัดสินใจใช้งาน หน้านี้ครอบคลุมสิ่งที่มันทำได้ไม่ดี — และวิธีรับมือกับแต่ละกรณี


คุณค่าจะเห็นชัดในโปรเจกต์ระยะยาว

ปัญหา: สำหรับโปรเจกต์ใหม่ที่มีหน่วยความจำน้อยกว่า ~20 รายการ somtum stats มักแสดง breakeven ratio ต่ำกว่า 1.5× ต้นทุนโทเค็นของการ inject (การอ่านและส่งหน่วยความจำให้ Claude ในทุกคำสั่ง) อาจเกินกว่าโทเค็นที่ประหยัดได้จนกว่าหน่วยเก็บหน่วยความจำจะโตพอ

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

วิธีแก้ไข:

  • อย่าตื่นตระหนกถ้า somtum doctor เตือนเรื่อง breakeven บนโปรเจกต์ใหม่ — เป็นเรื่องปกติ
  • ลด injection.k เป็น 1 หรือ 2 บนโปรเจกต์ระยะแรกเพื่อลด overhead
  • รัน somtum stats หลังผ่านไปหนึ่งเดือนแล้วเปรียบเทียบ

BM25 ไม่สามารถค้นหาหน่วยความจำที่มีความหมายคล้ายกัน

ปัญหา: กลยุทธ์การค้นคืนเริ่มต้นคือ BM25 — การจับคู่คีย์เวิร์ดผ่าน SQLite FTS5 รวดเร็วและทำงานออฟไลน์ได้ แต่เป็นการจับคู่คำเท่านั้น หน่วยความจำที่ชื่อว่า "ย้ายจาก Jest ไปยัง Vitest" จะไม่ถูกพบ เมื่อคุณถามว่า "ทำไมเราถึงเปลี่ยน test runner?" เพราะไม่มีคำที่ตรงกัน

วิธีแก้ไข:

เปิดใช้งาน hybrid retrieval (BM25 + embeddings + Haiku rerank):

bash
somtum config set retrieval.embeddings.enabled true
somtum reindex   # ดาวน์โหลดโมเดล ONNX ~30 MB ครั้งเดียว
somtum config set retrieval.strategy hybrid

ถ้าไม่ต้องการดาวน์โหลดโมเดล กลยุทธ์ index ใช้ Haiku อ่านแคตตาล็อกหน่วยความจำและเลือก ID ที่เกี่ยวข้อง — ช้ากว่าแต่เข้าใจความหมาย:

bash
somtum config set retrieval.strategy index

Hybrid ต้องการ embeddings ที่เปิดใช้งานแล้ว

การตั้ง strategy=hybrid โดยไม่เปิด embeddings ทำให้ถอยกลับไปใช้ BM25 อย่างเงียบๆ ขณะที่จ่าย hybrid overhead รัน somtum doctor เพื่อตรวจสอบ


คุณภาพการสกัดขึ้นอยู่กับเนื้อหาของ session

ปัญหา: ตัวสกัดจะเก็บเฉพาะการสังเกตที่ยั่งยืน — การตัดสินใจ การแก้บัก การเรียนรู้ คำสั่งสำคัญ Session ที่คุณขอให้ Claude อธิบายแนวคิด เขียน boilerplate หรือสนทนาสั้นๆ จะได้ผลลัพธ์ 0 การสังเกตอย่างถูกต้อง

วิธีแก้ไข:

  • ตรวจสอบ ~/.somtum/hook.log — ถ้าแสดง inserted=0 แสดงว่า session น่าจะตื้นเกินไป
  • สำหรับสิ่งที่ รู้ ว่าต้องการบันทึก ใช้ remember ผ่าน MCP tool หรือ somtum remember จาก CLI
  • การสกัดอัตโนมัติทำงานได้ดีที่สุดกับ session ที่ครอบคลุมการตัดสินใจด้านสถาปัตยกรรม การ debug หรือ refactor ที่สำคัญ

ยังไม่ผ่านการทดสอบบน Windows

ปัญหา: pipeline ของ Somtum ได้รับการทดสอบและพัฒนาหลักๆ บน macOS และ Linux การจัดการ path การสืบทอด shell environment และการ build native ของ better-sqlite3 ยังไม่ได้รับการยืนยันอย่างครบถ้วนบน Windows

ปัญหาที่ทราบ:

  • better-sqlite3 อาจต้องการ windows-build-tools ใน Windows บางการตั้งค่า
  • การสืบทอด shell profile สำหรับ ANTHROPIC_API_KEY ทำงานต่างจาก Unix บน Windows

วิธีแก้ไข: ถ้ามีปัญหาบน Windows ให้ใช้ WSL2 — เป็นเส้นทางที่รองรับสำหรับนักพัฒนา Windows


Somtum เสริม CLAUDE.md — ไม่ได้แทนที่

ปัญหา: Somtum จับ ประสบการณ์สะสม จาก session CLAUDE.md คือ เจตนาที่ผู้เขียนกำหนด — สิ่งที่คุณต้องการให้ Claude รู้เสมอ พวกมันทำหน้าที่แตกต่างกัน

การพึ่งพา Somtum แต่เพียงอย่างเดียวเพื่อให้ Claude รับรู้กฎโปรเจกต์สำคัญเป็นเรื่องเสี่ยง Somtum ค้นคืนตามความเกี่ยวข้องกับคำสั่งปัจจุบัน กฎที่ไม่ตรงกับ query BM25 จะไม่ถูก inject

วิธีแก้ไข:

  • ใช้ somtum suggest-claude-md เพื่อเลื่อนการสังเกตที่มีสัญญาณสูงจาก Somtum ไปยัง CLAUDE.md
  • เก็บกฎถาวรไว้ใน CLAUDE.md — ข้อตกลงทีม ข้อจำกัดสถาปัตยกรรม
  • ให้ Somtum จัดการ: บั๊กในอดีต การตัดสินใจเฉพาะ การเรียนรู้ครั้งเดียว

หน่วยความจำเพิ่มขึ้นโดยไม่มีการตัดแต่งเป็นระยะ

ปัญหา: การตรวจสอบซ้ำ (M10) จัดการการสังเกตที่ใกล้เคียงกันจาก session หนึ่งไปอีก session แต่ไม่สามารถลบหน่วยความจำที่ไม่เกี่ยวข้องอีกต่อไป — ไฟล์ที่คุณลบ ไลบรารีที่คุณเปลี่ยน การตัดสินใจที่คุณยกเลิก

วิธีแก้ไข:

bash
# ดูว่า Somtum จำอะไรเกี่ยวกับหัวข้อเก่าก่อนตัดสินใจ
somtum search "ชื่อไลบรารีเก่า"

# Soft-delete รายการเฉพาะ
somtum forget <id>

# Doctor เตือนเกี่ยวกับหน่วยความจำที่เก่ากว่า 90 วันโดยไม่มีการค้นคืน
somtum doctor

# Hard-remove รายการที่ถูก soft-deleted เก่ากว่า 60 วัน
somtum purge --older-than 60d

พิจารณา pruning pass รายเดือนสำหรับโปรเจกต์ระยะยาว


ต้นทุนการสกัดเป็นเรื่องจริง

ปัญหา: ทุกครั้งที่ session จบลงจะมีการเรียก Claude Haiku เพื่อสกัดการสังเกต บน Anthropic API นี่คือต้นทุนจริง

วิธีแก้ไข:

  • ถ้ามี Claude Code subscription ให้ยกเลิกการตั้ง ANTHROPIC_API_KEY และใช้ claude CLI fallback — การสกัดจะใช้ subscription quota แทน API credits
  • ลด extraction.max_observations_per_session ถ้าสร้างการสังเกตคุณภาพต่ำมากเกินไปต่อ session
  • รัน somtum stats สม่ำเสมอเพื่อตรวจสอบว่าการประหยัดเกินกว่าการใช้จ่ายหรือไม่

เผยแพร่ภายใต้ใบอนุญาต MIT