code-graph-rag

AI Coding ToolsCLIPython

★ 5,127주당 +39조회 4

무엇인가

Code-Graph-RAG는 저장소의 소스 파일을 파싱해 코드 구조를 지식 그래프로 구축하고, 그 그래프를 근거로 자연어 질의와 편집을 수행하는 CLI 도구다. 코드 검색을 임베딩 유사도에 의존하는 RAG 계열과 달리, 함수·클래스·모듈 사이의 호출·참조 관계 자체를 1급 데이터로 다룬다.

어떻게 동작하나

구성은 두 부분이다. Tree-sitter 기반 멀티랭귀지 파서가 소스 파일에서 함수·클래스·메서드·모듈과 그들 사이의 관계를 추출해 Memgraph에 단일 언어 중립 스키마로 적재한다. codebase_rag/ 의 RAG 시스템은 자연어 질문을 Cypher 쿼리로 변환해 그래프에서 일치하는 코드를 가져오고, AI 편집과 최적화를 구동한다. cgr trace 는 테스트 실행이나 eBPF 프로파일에서 실제 호출을 수집해 그래프에 병합하며, 정적 분석이 보지 못하는 디스패치를 드러낸다.

무엇과 다른가

임베딩 벡터만 저장하는 코드 RAG와 달리 그래프 엣지를 순회해 진입점에서 호출·참조 관계를 따라가며 죽은 코드를 찾는다. 편집은 파일 전체 재작성이 아니라 AST 기반 외과적 패치로 수행하고 변경 전에 diff 미리보기를 보여준다. ast-grep 으로 AST 패턴 구조 검색·치환도 하며, 결정적 그래프 쿼리 도구를 제공해 같은 질문에 같은 결과를 낸다.

어떻게 쓰나

설치는 PyPI에서 uv tool install 또는 pipx install 로 한다. 인덱싱할 저장소마다 첫 명령을 반복 실행하며 그래프는 공유되고, 한 프로젝트를 동기화해도 다른 프로젝트는 그대로 남는다. --clean 은 공유 그래프의 모든 프로젝트를 삭제하므로 다른 프로젝트가 지워질 경우 확인을 요구한다. MCP 서버로 실행하면 Claude Code 등 MCP 클라이언트가 코드베이스를 직접 질의·편집한다.

전제와 한계

Python 3.12 이상, Memgraph용 Docker, cmake, ripgrep이 필요하다. 휠은 py3-none-any 순수 파이썬이지만 pymgclient 같은 의존성은 플랫폼 휠이나 빌드 도구를 요구한다. Python, TypeScript, TSX, JavaScript, Rust, Go, Java, C, C++, C#, PHP, Lua, Dart는 완전 지원이고 Scala는 개발 중이다. Ruby, Kotlin, Swift, Elixir, Haskell, Solidity, Bash, Nix는 ast-grep 계층을 통해 모듈·함수·클래스·임포트 수준의 구조 지원만 된다.

유사 도구