2 คะแนน โดย johnonlee 3 시간 전 | ยังไม่มีความคิดเห็น | แชร์ทาง WhatsApp

ถ้าคุณเป็นนักพัฒนาที่ทำงานกับ AI coding agent ทุกวัน คุณน่าจะเข้าใจความรู้สึกนี้

ทั้งที่เมื่อวานเราตกลง convention ร่วมกันไว้ชัดเจน แต่พอเปิดเซสชันใหม่กลับเหมือนหน้ากระดาษเปล่า เรื่องที่ฉันใช้ type แทน interface ใน TypeScript เสมอ เรื่องที่ฉันเคยบอกใน PR review ว่าไม่ค่อยชอบแพตเทิร์นนั้น หรือสาเหตุรากของบั๊กที่เพิ่งแก้ได้เมื่อสัปดาห์ก่อน — ทุกอย่างต้องเล่าใหม่เหมือนเป็นเรื่องที่ไม่เคยได้ยินมาก่อน

พอเป็นแบบนี้ซ้ำๆ สุดท้ายก็จะกลายเป็นคำว่า "เดี๋ยวฉันทำเอง"

Monet ถูกสร้างขึ้นมาเพื่อแก้ปัญหานี้ ทำให้ AI agent ทั่วไปทำงานได้เหมือนเป็น agent ของฉันเอง ระบบที่เรียนรู้ convention ของฉัน จำวิธีที่ฉันชอบ และคอยดูแลประวัติของโปรเจ็กต์ให้เอง


มันทำงานอย่างไร

แก่นของมันเรียบง่ายมาก

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

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

การเติบโต — ยิ่งสะสมยิ่งฉลาดขึ้น งานแรกจะช้า เพราะมันยังไม่รู้ทั้ง codebase, convention หรือบั๊กที่มักจะเกิดซ้ำ แต่พอความจำสะสมมากขึ้น งานถัดไปก็เร็วขึ้น เพราะแพตเทิร์นที่หาได้เมื่อวาน การตัดสินใจที่ตกลงกันเมื่อสัปดาห์ก่อน หรือสาเหตุรากของบั๊กนั้น ไม่จำเป็นต้องไปค้นใหม่อีก ผ่านไปประมาณสักเดือน เอเจนต์นี้จะไม่ใช่เครื่องมือทั่วไปอีกต่อไป แต่จะเริ่มทำงานเหมือนวิศวกรประจำของฉันที่ รู้จักโปรเจ็กต์นี้ทุกซอกทุกมุม


มาถึงตรงนี้ได้อย่างไร

ตอนแรกผมแค่สะสมโน้ตไว้ในไฟล์เดียว ให้เอเจนต์จดสิ่งที่เรียนรู้ระหว่างทำงานลงใน Markdown แล้ว include ตอนเริ่มเซสชันใหม่ วิธีนี้เรียบง่าย แต่พอข้อมูลมากขึ้น noise ก็เพิ่มขึ้นตาม

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

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


พูดกันตรงๆ

ในช่วง vibe coding เมมโมรีไม่ได้สำคัญขนาดนั้น ฟีเจอร์ส่วนใหญ่เป็นของใหม่ และบั๊กก็มักจะง่าย แค่บอกเอเจนต์ว่า "ช่วยแก้อันนี้ให้หน่อย" มันก็มักจบได้ภายใน context window

แต่พอแอปนั้นเริ่มซับซ้อนขึ้น เรื่องจะเปลี่ยนไป การแก้โค้ดแค่บรรทัดเดียวอาจต้องไล่ดูโลจิกที่เกี่ยวข้องอีกสิบจุด แล้วเอเจนต์ก็คลานไปทีละไฟล์เพื่อหาผลข้างเคียง ความผิดพลาดก็เพิ่มขึ้น ต่อให้ให้มัน 1M โทเค็น พออัด context ย่อสามรอบก็กลับมาที่เดิม

ที่บ้านผมใช้เอเจนต์ทำของสนุกๆ บนโค้ดใหม่ แต่ที่บริษัท ผมต้องสู้กับโค้ดอายุมากกว่า 20 ปีทุกวัน ในที่ทำงาน เมมโมรีของเอเจนต์เป็นสิ่งจำเป็น ถ้าไม่มี งานไปต่อไม่ได้เลย

เพราะแบบนั้น ผมเลยเริ่มสร้างและใช้ file-based index memory เอง นั่นคือจุดเริ่มต้นของ Monet ทุกวันนี้ที่บริษัท ผมตั้งใจให้เอเจนต์วิ่งวนอยู่เรื่อยๆ — เพื่อเก็บ context ตั๋วงานส่วนใหญ่จบได้ภายใน 20% แรกของ context ประหยัดทั้งเวลาและลดความเครียดลง

ที่สำคัญที่สุด เมื่อก่อนถ้าผมต้องนึกว่า "บั๊กนั้นเราแก้ยังไงนะ" ผมต้องพยายามรื้อความทรงจำ แต่ตอนนี้แค่ถาม Kiro (บริษัทใช้เป็น coding agent) ส่วนใหญ่ก็ตอบได้อยู่แล้ว

เมื่อมีเอเจนต์เป็นสิบๆ ตัว และโค้ดมีระดับหลายล้านบรรทัด context จะไม่ใช่ปัญหาเรื่องไบต์อีกต่อไป แต่เป็นปัญหาระดับโครงสร้างพื้นฐาน และเมื่อนั้น เมมโมรีก็จะไม่ใช่ nice-to-have อีกต่อไป แต่มันเป็นตัวกำหนดเลยว่างานจะทำต่อได้หรือไม่


ถ้าอยากลองใช้

  • หน้าเว็บไซต์: monet.team-monet.com
  • GitHub: github.com/team-monet/with-monet — harness สำหรับติดตั้ง (Apache-2.0)
  • 100% local: โค้ดจะไม่ออกไปนอกเครื่องของคุณ ใช้ on-device embedding ไม่มี network หรือ telemetry เมมโมรีคือไฟล์ SQLite ไฟล์เดียวใน ~/.monet — เปิดดูเอง สำรองข้อมูล หรือ export ได้
  • ใช้ฟรี เอนจินเป็น compiled binary แบบปิดซอร์ส แต่ interface สำหรับเชื่อมต่อเป็นมาตรฐาน MCP ใช้เชื่อมต่อได้ทันทีบนเอเจนต์ที่รองรับ MCP เช่น Claude Code, Cursor, Codex

อยากให้คนกลุ่มนี้ลองใช้เป็นพิเศษ:

  • นักพัฒนาที่ทำงานกับ AI agent แบบจริงจังทุกวัน
  • คนที่เคยรู้สึกเหนื่อยกับการต้องพูดว่า "เรื่องเมื่อวานต้องเล่าใหม่อีกแล้ว…"
  • คนที่คิดว่า "เมมโมรีของเอเจนต์? จำเป็นด้วยเหรอ?" (จริงๆ นะ — ผมก็อยากฟังความเห็นต่างเหมือนกัน)

ตัวอย่างและสถานการณ์ทั้งหมดที่ใช้ในบทความนี้อิงจากประสบการณ์จริง

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น