ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
My AI agent kept blind-reading my files. So I built a local CLI to give it "eyes" (Looking for beta testers! ๐Ÿ›)
Dev.toDev.to
AI/ML

MCP ๊ธฐ๋ฐ˜ Local AST Indexing์„ ํ†ตํ•œ AI Agent Token ๋‚ญ๋น„ ํ•ด๊ฒฐ

My AI agent kept blind-reading my files. So I built a local CLI to give it "eyes" (Looking for beta testers! ๐Ÿ›)

Jaswanth2026๋…„ 5์›” 16์ผ2๋ถ„intermediate

Context

AI Agent๊ฐ€ ์ฝ”๋“œ๋ฒ ์ด์Šค ํƒ์ƒ‰ ์‹œ ํŒŒ์ผ ์ „์ฒด๋ฅผ ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ์ฝ๋Š” Blind-reading ๋ฐฉ์‹์œผ๋กœ ์ธํ•œ Token ๋น„์šฉ ๊ธ‰์ฆ ๋ฐ Context Window ์˜ค์—ผ ๋ฌธ์ œ ๋ฐœ์ƒ. ๊ธฐ์กด์˜ Post-hoc ์••์ถ• ๋ฐฉ์‹์ด๋‚˜ ์™ธ๋ถ€ LLM ์˜์กดํ˜• ๋„๊ตฌ๋Š” ์ฝ๊ธฐ ์ž‘์—… ์ดํ›„์— ์ฒ˜๋ฆฌ๋˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์œ ๋ฐœํ•˜๋Š” ํ•œ๊ณ„ ๋ณด์œ .

Technical Solution

  • Model Context Protocol(MCP)์„ ๋„์ž…ํ•˜์—ฌ AI Agent์™€ Repository ์‚ฌ์ด์˜ ์ค‘๊ฐ„ ์ธํ„ฐ์…‰ํ„ฐ ๊ณ„์ธต ์„ค๊ณ„
  • Tree-sitter ๊ธฐ๋ฐ˜ AST Graph ๊ตฌ์ถ•์„ ํ†ตํ•œ ์†Œ์Šค ์ฝ”๋“œ์˜ ์ •๋ฐ€ํ•œ ๊ตฌ์กฐ์  ๋ถ„์„ ๋ฐ ์ธ๋ฑ์‹ฑ ์ˆ˜ํ–‰
  • CozoDB ์ž„๋ฒ ๋””๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋กœ์ปฌ ํ™˜๊ฒฝ ๋‚ด ๊ฒฐ์ •๋ก ์ (Deterministic) ๋ฐ์ดํ„ฐ ์กฐํšŒ ๊ตฌํ˜„
  • Pre-hoc ํ•„ํ„ฐ๋ง ๋กœ์ง์„ ํ†ตํ•ด ์ „์ฒด ํŒŒ์ผ ๋Œ€์‹  ํ•„์š”ํ•œ Structural Entities, Callers, Dependencies๋งŒ ์„ ๋ณ„ ์ œ๊ณต
  • ์™ธ๋ถ€ LLM์„ ๋ฐฐ์ œํ•œ Local-first ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ ๊ฐ•ํ™” ๋ฐ ์ถ”๋ก  ์ง€์—ฐ ์‹œ๊ฐ„ ์ œ๊ฑฐ

- LLM Context Window ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์ œ๊ณต ์ „ ๋‹จ๊ณ„(Pre-hoc)์—์„œ์˜ ํ•„ํ„ฐ๋ง ์ „๋žต ๊ฒ€ํ†  - ๋Œ€๊ทœ๋ชจ ์ฝ”๋“œ๋ฒ ์ด์Šค ๋ถ„์„ ์‹œ Full-text ๊ฒ€์ƒ‰ ๋Œ€์‹  AST ๊ธฐ๋ฐ˜์˜ ๊ตฌ์กฐ์  ์ธ๋ฑ์‹ฑ ๋„์ž… ๊ณ ๋ ค - ์™ธ๋ถ€ API ์˜์กด์„ฑ์„ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•ด ์ž„๋ฒ ๋””๋“œ DB ๋ฐ ๋กœ์ปฌ ํŒŒ์„œ๋ฅผ ํ™œ์šฉํ•œ Deterministic ๋„๊ตฌ ์„ค๊ณ„

์›๋ฌธ ์ฝ๊ธฐ