dirge-code/dirge
Dynamic Intent Resolution Grounding Engine
해결하는 문제
Dirge는 저렴하거나 약한 LLM을 사용해도 높은 신뢰성을 유지할 수 있도록 설계된 고성능이고 최소한의 코드 에이전트입니다. 고메모리 사용, 컨텍스트 창의 열화, 세션의 지속성 상실과 같은 에이전트 기반 에디터의 일반적인 문제를 해결하기 위해 강력한 에이전트 루프와 계층적 메모리 시스템을 구현했습니다.
작동 방식
Dirge는 속도와 낮은 리소스 사용을 위해 네이티브 Rust로 작성되었습니다. 잘못된 도구 호출을 복구하고, 디스크에 쓰기 전에 tree-sitter를 통해 쓰기 내용을 검증하는 '강력한 에이전트 루프'를 사용합니다. 벡터 임베딩 대신 인라인 grep과 SQLite FTS5를 검색에 사용하며, 장기적인 대화 메모리에 더 효과적이라고 주장합니다.
컨텍스트를 관리하기 위해 제한된 예산(기본 250k 토큰)과 이중 메모리 시스템을 사용합니다. 중요한 항목은 인라인에 유지되며, 나머지는 브레드크럼 인덱스로 강등됩니다. 세션 종료 후 오케스트레이터는 학습 내용을 지속 가능한 프로젝트 메모리와 기술로 추출합니다. 또한 LSP 진단과 tree-sitter를 통합하여 코드 인텔리전스를 제공하며, 다른 에이전트로부터 위임을 받을 수 있도록 MCP 서버로 노출할 수 있습니다.
대상 사용자
다양한 LLM 제공자(로컬 모델을 Ollama를 통해 사용 가능)를 지원하고, 저부하, 비-JS 기반 도구를 선호하는 개발자에게 적합합니다.
주요 특징
- 극도의 효율성: JS 기반 에이전트와 비교해 매우 낮은 RAM 사용량(약 8–15MB)의 네이티브 Rust 바이너리.
- 강건성: tree-sitter를 사용해 코드 쓰기 검증 및 진행되지 않는 루프에 대한 회로 차단기 구현.
- uma Permission Engine: 단일 정책 결정 지점과
/why명령어를 통해 권한 결정을 추적 가능. - 다중 제공자 라우팅: 한 세션 내에서 주 루프, 리뷰, 요약 등의 역할을 서로 다른 모델로 라우팅 가능.
- 프로젝트 메모리: 프로젝트별 지속적 메모리와 내장된 에이전트용 칸반 이슈 보드.
- 다중 모달 지원: 시각 모델을 위한 클립보드 이미지 붙여넣기 지원.
- Janet 플러그인 시스템: 런타임에서 Janet 플러그인과 Claude 호환 기술을 통해 확장 가능.
관련
- 프로젝트
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트