ทำไม AI Coding Agents ถึงหลงทางในโค้ดเบสขนาดใหญ่ และทางแก้ที่ตรงจุด
เจาะลึกปัญหาการค้นหาข้อมูลของ AI ในซอฟต์แวร์ขนาดใหญ่ และเหตุผลที่ ContextOS ใช้ Tree-sitter กับ SQLite FTS5 แทน RAG แบบเดิม

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- ความสามารถในการใช้เหตุผลของ AI ดีขึ้น แต่ AI ยังคงหลงทางในโค้ดเบสขนาดใหญ่
- ปัญหาหลักไม่ใช่การคิดวิเคราะห์ของโมเดล แต่เป็นระบบการดึงข้อมูลหรือ Retrieval
- ContextOS แก้ปัญหาด้วยการใช้ Tree-sitter และ SQLite FTS5 แทนการตัดข้อความแบบสุ่ม
- รองรับการทำงานกับเครื่องมืออย่าง Cursor และ Claude Desktop ผ่านโปรโตคอล MCP
โมเดลภาษาขนาดใหญ่ (LLM) ในปัจจุบันมีความเก่งกาจในการทำความเข้าใจโค้ดเพิ่มขึ้นอย่างก้าวกระโดด พร้อมกับหน้าต่างบริบท (Context windows) ที่ขยายตัวจากหลักพันไปจนถึงหลักล้านโทเค็น ถึงกระนั้นก็ตาม เหล่าบรรดาโปรแกรมเมอร์ก็ยังคงเผชิญกับอุปสรรคในการใช้งานผู้ช่วยเขียนโค้ด AI ให้ได้ผลลัพธ์ที่แม่นยำสม่ำเสมอ เมื่อต้องลงมือพัฒนาในคลังเก็บโค้ดขนาดใหญ่ระดับโลกจริง
หากคุณเคยใช้งานเอเจนต์อย่าง Claude Desktop หรือ Cursor เพื่อพยายามแก้จุดบกพร่องที่ซับซ้อนในคลังโค้ดใหม่ คุณย่อมคุ้นเคยกับอาการวนเวียนค้นหาอย่างไร้จุดหมายที่เรียกว่า Grep Loop of Despair เป็นอย่างดี ความเชื่อที่ยึดถือกันมาโดยตลอดคือ การป้อนไฟล์จำนวนมากลงในหน้าต่างบริบทที่ใหญ่ขึ้นจะช่วยแก้ปัญหานี้ได้ แต่ในความเป็นจริงมันไม่ได้ผล
นี่ไม่ใช่ปัญหาเรื่องความสามารถในการคิดวิเคราะห์ของโมเดล แต่เป็นปัญหาเรื่องการดึงข้อมูล (Retrieval) สถาปัตยกรรมมาตรฐานที่ระบบค้นหาข้อมูล AI ส่วนใหญ่ใช้ในปัจจุบันอย่าง RAG (Retrieval-Augmented Generation) นั้นมีขั้นตอนที่คาดเดาได้ง่ายคือ อ่านข้อความ, ตัดแบ่งตามจำนวนตัวอักษรแบบตามอำเภอใจ, สร้างเวกเตอร์ฝังตัว (Vector embeddings) และค้นหาผ่านความคล้ายคลึงแบบ cosine similarity
สถาปัตยกรรม RAG ทำงานได้ดีเยี่ยมกับเอกสารคู่มือหรือวิกิองค์กร แต่ประสิทธิภาพจะดิ่งลงอย่างรวดเร็วเมื่อนำมาใช้กับซอฟต์แวร์รีโปซิโทรี เนื่องจากขอบเขตของฟังก์ชันถูกทำลายลงเมื่อตัดข้อความด้วยจำนวนตัวอักษร และการพึ่งพาเวกเตอร์ฝังตัวอย่างเดียวทำให้การค้นหาสัญลักษณ์ที่ต้องการกลายเป็นการเดาแบบน่าจะเป็นไปได้ แทนที่จะเป็นการค้นหาที่แม่นยำแบบเบ็ดเสร็จ
เมื่อนักพัฒนาถามผู้ช่วย AI ว่า "AuthMiddleware ถูกใช้งานไว้ที่ไหน?" สิ่งที่พวกเขาต้องการไม่ใช่ "อะไรสักอย่างที่เกี่ยวข้องกับการยืนยันตัวตน" แต่พวกเขาต้องการคลาส AuthMiddleware ที่เจาะจงทันทีอย่างไร้ข้อกังขา เพื่อแก้ปัญหานี้จึงได้มีการพัฒนา ContextOS ซึ่งเป็นเอ็นจิ้นบริบทแบบ local-first ที่ออกแบบมาเฉพาะสำหรับการจัดทำดัชนีและดึงข้อมูลโครงสร้างซอฟต์แวร์ให้กับเอเจนต์ AI
แทนที่จะตัดแบ่งตัวอักษรอย่างไร้ทิศทาง ContextOS ใช้ Tree-sitter ในการแยกวิเคราะห์รีโปซิโทรีเพื่อดึงฟังก์ชัน คลาส อินเทอร์เฟซ และเมธอดออกมาเป็นก้อนตรรกะที่แยกออกจากกันอย่างชัดเจน โดยฟังก์ชันความยาว 50บรรทัดจะกลายเป็นหนึ่งก้อนข้อมูลที่คงความสมบูรณ์เชิงโครงสร้างไว้ครบถ้วน พร้อมทั้งใช้ SQLite FTS5 (BM25) เป็นกลไกหลักในการค้นหาคำศัพท์แบบแม่นยำ
"Stop letting your AI drown in grep output. Give it the context engine it deserves."
Siddharth Katiyar
ContextOS ทำงานเป็นเซิร์ฟเวอร์ Model Context Protocol (MCP) ซึ่งหมายความว่าคุณสามารถเชื่อมต่อมันเข้ากับ Cursor, Claude Desktop และไคลเอนต์อื่นๆ ที่รองรับ MCP ได้ทันทีในปัจจุบัน ช่วยให้ AI ไม่ต้องจมดิ่งอยู่กับผลลัพธ์ของ grep อีกต่อไป
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น