cgrep: เครื่องมือค้นหาเจตนาของโค้ดแบบโลคัลสำหรับ AI coding agent
(github.com/meghendra6)สวัสดีครับ/ค่ะ ผม/ฉันได้สร้างเครื่องมือค้นหาโค้ดแบบ local-first (code-local) ชื่อว่า cgrep ขึ้นมา
เป้าหมายหลักคือเพื่อลดการสิ้นเปลืองโทเค็นและการค้นหาซ้ำ ๆ ที่เกิดขึ้นเมื่อ AI coding agent สำรวจโค้ดเบส
cgrep ผสานการค้นหาแบบ BM25 (Tantivy) + การวิเคราะห์สัญลักษณ์ AST (tree-sitter) เพื่อให้ออกแบบมาสำหรับการสำรวจที่สอดคล้องกับเจตนาของโค้ดมากกว่าการค้นหาสตริงแบบง่าย ๆ
ความสามารถหลัก:
- การสำรวจโค้ด: definition / references / callers / dependents
- การสำรวจคอนเท็กซ์: read / map
- เวิร์กโฟลว์ 2 ขั้นตอนสำหรับเอเจนต์:
agent locate -> agent expand(ค้นหาตัวเลือกด้วย payload ขนาดเล็ก แล้วขยายเฉพาะสิ่งที่จำเป็น) - รองรับ MCP:
cgrep mcp serve+ รองรับการติดตั้ง host - รองรับการติดตั้งเอเจนต์: claude-code, codex, copilot, cursor, opencode
เบนช์มาร์กอ้างอิงจาก PyTorch (6 สถานการณ์การติดตามการทำงาน):
- tokens-to-complete อ้างอิงจาก grep: 127,665
- tokens-to-complete ของ cgrep(agent locate/expand): 6,153
- ลดการใช้โทเค็นลง 95.2% (ลดลง 20.75x)
- เวลาแฝงในการค้นหาเฉลี่ยจนเสร็จสิ้น: 1321.3ms -> 22.7ms (ประมาณ 58.2x)
การประมวลผลทั้งหมดทำงานบนเครื่องโลคัล (ไม่พึ่งพา cloud index)
ขอความคิดเห็นด้วยครับ/ค่ะ:
- จุดที่ยังขาดเมื่อใช้กับโค้ดเบสขนาดใหญ่จริง
- สิ่งที่ควรปรับปรุงสำหรับการเชื่อมต่อ MCP/เอเจนต์
- ไอเดียในการเสริมสถานการณ์เบนช์มาร์ก
Repo: https://github.com/meghendra6/cgrep
Docs: https://meghendra6.github.io/cgrep/
Benchmark: https://meghendra6.github.io/cgrep/benchmarks/…
4 ความคิดเห็น
ดูเหมือนว่าจะมีจุดประสงค์คล้ายกับ mgrep หรือ เครื่องมือ ck นะครับ
พอลองรัน release binary บน macOS ที่อ้างอิง v1.4.1 ก็มีคำเตือนขึ้นมาและไม่สามารถรันได้ครับ
คิดว่าน่าจะดีถ้ามี skills หรือ instruction ที่ agent สามารถใช้อ้างอิงได้แบบใน ตัวอย่าง agent-browser ครับ
มีปัญหาเกี่ยวกับลายเซ็นไบนารี แต่ได้แก้ไขแล้ว
รบกวนตรวจสอบและขอขอบคุณสำหรับการรีวิวครับ!
ผลของการลดโทเค็นนี่ดีมากเลยครับ ถ้ามีผลการทดสอบเชิงเปรียบเทียบด้านการเขียนโค้ดอยู่ใน README ด้วย แม้ประสิทธิภาพในการทดสอบจะยังคงใกล้เคียงกัน ก็น่าจะช่วยเพิ่มความน่าเชื่อถือได้มากขึ้นครับ
ตามคำแนะนำ ผมได้เพิ่มผลการเบนช์มาร์กสำหรับสถานการณ์ของ real coding agent ไว้ด้วยแล้ว
ขอบคุณสำหรับคำติชมครับ!