วิธีทำให้ AI เอเจนต์กลายเป็นของเราเอง
(monet.team-monet.com)ถ้าคุณเป็นนักพัฒนาที่ทำงานกับ 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 แบบจริงจังทุกวัน
- คนที่เคยรู้สึกเหนื่อยกับการต้องพูดว่า "เรื่องเมื่อวานต้องเล่าใหม่อีกแล้ว…"
- คนที่คิดว่า "เมมโมรีของเอเจนต์? จำเป็นด้วยเหรอ?" (จริงๆ นะ — ผมก็อยากฟังความเห็นต่างเหมือนกัน)
ตัวอย่างและสถานการณ์ทั้งหมดที่ใช้ในบทความนี้อิงจากประสบการณ์จริง
ยังไม่มีความคิดเห็น