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! ๐)
AI ์์ฝ
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 ๋๊ตฌ ์ค๊ณ