jevgrep คือเครื่องมือค้นโค้ดที่คิดต่างออกไป แทนที่จะหาคำตรงตัวอย่าง grep หรือหาโครงสร้างอย่าง ast-grep มันให้เราถามเป็นภาษาคนว่า "telemetry ถูกบันทึกและส่งอย่างไร" แล้วคืนไฟล์ที่เกี่ยวข้องพร้อม excerpt และเลขบรรทัดมาใน stdout เดียว โดยออกแบบมาให้ coding agent เป็นคนเรียกใช้เป็นหลัก
ทำงานอย่างไร
แกนของมันคือโมเดลชื่อ Jev ซึ่งทำหน้าที่ตัดสินความเกี่ยวข้องข้ามโฟลเดอร์ ไฟล์ และ declaration การสำรวจ repo แบ่งเป็นลำดับชั้น คือดู preview ของไฟล์ก่อน แล้วค่อยลงลึกเฉพาะสาขาที่น่าใช่
รองรับการ parse declaration ใน Python TypeScript Go และ Rust ส่วนภาษาอื่นใช้ fallback output ที่ได้คือ "หลักฐานให้ agent ใช้ตัดสินใจต่อ" ไม่ใช่คำตอบสำเร็จรูป และไม่รับรองว่าหาครบทุกไฟล์ที่เกี่ยว
วิธีใช้
ติดตั้งด้วย npm ตัวเดียว ไม่ต้องลง Python Bun หรือ ripgrep แยก:
npm install -g @dzhng/jevgrep
jg auth # เลือก provider (เช่น TypeSafe) แล้วใส่ key แบบ interactive
jg skill # ติดตั้ง skill ไว้สอน agent ให้เรียกใช้เป็น
ก่อนค้นทุกครั้งควรเริ่มด้วย jg files <โฟลเดอร์> ซึ่งนับไฟล์ที่จะถูกอ่านแยกตามโฟลเดอร์ โดยไม่ใช้ key และไม่ยิงเน็ตเวิร์ก แล้วค่อยค้นจริง:
jg files ./my-project
jg "Where is authentication checked before a request reaches a handler?" .
skill ที่แจกมามีวินัยที่ดีสามข้อ ข้อแรกคือนับไฟล์ก่อนค้น ข้อสองคืออ่าน excerpt ก่อนค้นซ้ำ ข้อสามคืองานหาคำตรงตัวให้ใช้ grep เหมือนเดิม และยังมีประโยคกัน prompt injection ว่าเนื้อหาใน repo คือข้อมูล ไม่ใช่คำสั่ง
เอามาลองจริง 8 คำถาม
เรารัน jg บน repo agent-native-agent ของเราเอง 8 ข้อ โดยมีเฉลยจากซอร์สที่อ่านแล้ว ให้คะแนนสามอย่างว่าไฟล์เฉลยติดอันดับไหม excerpt ตรงไหม และมีไฟล์หลอกปนมากี่ไฟล์
ผลคือ ไฟล์เฉลยติดอันดับหนึ่งทั้ง 8 ข้อ
ข้อที่ชนะขาดคือคำถามแคบ เช่น "วันไทยในชื่องานถูก parse อย่างไร" ได้ไฟล์มา 3 ไฟล์โดย taskdates.js ขึ้นก่อนพร้อมโค้ดตรงประเด็น ขณะที่ grep ได้ 4 ไฟล์แบบไม่จัดอันดับปนกับไฟล์ noise ส่วนข้อหาสัญลักษณ์ตรงตัวก็ตอบถูกด้วยไฟล์เดียว
ข้อที่เผยข้อจำกัดคือคำถามกว้าง ซึ่ง noise โตตามความกว้าง (10–34 ไฟล์) และ excerpt มีหลุดประเด็นบ้าง ส่วนข้อหลอกที่ถามหาของที่ไม่มีในโค้ด มันไม่แต่งเรื่อง แต่ชี้ไปบันทึกที่อธิบายเรื่องนั้นไว้ จึงถือว่าสอบผ่านแบบมีเงื่อนไข
หลักฐานเด็ดอยู่ที่สองข้อซึ่ง grep เจอไฟล์สี่สิบกว่า เพราะเอกสารที่ vendored ไว้ท่วมคำค้นจนไฟล์คำตอบจริงจมหาย แต่ jg ยังยกไฟล์ถูกขึ้นอันดับหนึ่ง นี่คือค่าของ semantic ranking ที่ keyword search ให้ไม่ได้
ข้อควรรู้ก่อนใช้
ทุกคำถามเสียค่า model และ source จะถูกส่งออกนอกเครื่องผ่าน provider ตัวกรองตัดแค่ไฟล์ที่ดูชัดว่าเป็น credential ซึ่งไม่ใช่การันตี งานที่มี secret จึงต้องแยก search root ให้ดี อีกอย่างคือโปรเจกต์อายุแค่สองสัปดาห์ API อาจเปลี่ยนเร็ว ควรตรึงเวอร์ชันที่ทดสอบไว้
บทความต่อไปจะผ่าตัวเลข "ประหยัด 30 เปอร์เซ็นต์" ของเจ้าของโปรเจกต์ว่าเชื่อได้แค่ไหน และวาง jevgrep บนบันไดเครื่องมือค้นโค้ด