dirac-run/dirac

6 hours ago 2
  • 긴 컨텍스트에서 추론 성능이 흔들리는 문제를 줄이기 위해 촘촘한 컨텍스트 큐레이션도구 효율 대비 성능 최적화에 초점을 맞춘 오픈소스 코딩 에이전트임
  • gemini-3-flash-preview 기준 Terminal-Bench-2 65.2% 를 기록했고, 공개 GitHub 저장소의 복잡한 리팩터링 작업 8개에서 8/8 성공을 달성함
  • Hash-Anchored Edits, Multi-File Batching, 구조 인식 편집을 결합해 여러 파일을 적은 왕복으로 다루고, TypeScript·Python·C++ 같은 언어의 문법 구조를 반영해 수정함
  • 파일 읽기·쓰기, 터미널 명령, 헤드리스 브라우저를 지원하며, 승인 기반 워크플로우와 Plan Mode·Yolo Mode·작업 이력 재개 같은 CLI 흐름을 함께 제공함
  • 평균 비용 $0.18과 경쟁 도구 대비 64.8% 비용 절감을 내세우며, 벤치마크 전용 정보 없이 실전형 작업에서 성능과 비용을 함께 끌어올린 점이 두드러짐

핵심 성능

  • 벤치마크 결과

    • 8개 작업 전체에서 8/8 정답을 기록했고, 비교 대상 중 Opencode만 동일한 8/8에 도달함
    • 평균 비용은 $0.18로, Cline $0.49, Kilo $0.73, Ohmypi $0.51, Opencode $0.44, Pimono $0.38, Roo $0.60보다 낮음
    • README는 Dirac이 경쟁 도구 대비 64.8% 저렴하며, 비용 기준으로 2.8배 절감했다고 밝힘
    • 자세한 작업 설명과 방법론은 evals/README.md에서 확인 가능함
  • 작업별 비용 특성

    • transformers, vscode, django 저장소를 포함한 각 리팩터링 작업에서 대부분 최저 또는 최저권 비용을 기록함
    • 예를 들어 transformers의 DynamicCache 작업은 $0.13, django의 datadict 작업은 $0.08, vscode의 sendRequest 작업은 $0.25 수준임
    • 일부 경쟁 도구는 IncompleteFailure를 기록했지만, Dirac은 표에 나온 8개 작업 모두 Success로 표시됨

접근 방식과 설계

  • 컨텍스트와 편집 전략

    • Hash-Anchored Edits로 안정적인 라인 해시를 기준으로 수정 위치를 겨냥해, 전통적인 줄 번호 기반 편집의 "lost in translation" 문제를 피함
    • Multi-File Batching으로 여러 파일을 한 번의 LLM 왕복에서 읽고 수정해 지연 시간과 API 비용을 줄임
    • High-Bandwidth Context 최적화로 가장 관련성 높은 정보만 유지해 토큰 낭비를 줄이고, 에이전트를 가볍고 빠르게 유지함
  • 구조 인식 편집

    • AST-Native Precision을 내장해 TypeScript, Python, C++ 등 언어의 문법 구조를 이해한 상태로 작업함
    • 함수 추출이나 클래스 리팩터링 같은 구조적 조작을 100% 정확도로 수행할 수 있다고 밝힘
  • 도구 사용 모델

    • 파일 읽기와 쓰기, 터미널 명령 실행, 헤드리스 브라우저 사용 등을 지원함
    • 작업 흐름은 승인 기반 워크플로우를 유지해 사용자가 통제권을 갖도록 설계됨
    • 모델 지원은 네이티브 툴 호출이 가능한 경우로 한정하며, 신뢰성과 성능 확보를 이유로 둠
    • README 기준 MCP는 지원하지 않음

사용 방식과 커스터마이징

  • 프로젝트별 동작 제어

    • AGENTS.md 파일로 프로젝트별 지침을 적용해 동작을 커스터마이징할 수 있음
    • .ai, .claude, .agents 디렉터리를 자동으로 읽어 Claude skills도 함께 활용함
  • CLI 사용 흐름

    • dirac auth로 인증한 뒤 dirac "Analyze the architecture of this project"처럼 작업을 실행할 수 있음
    • dirac -p "prompt"는 Plan Mode로 전략을 먼저 확인하는 방식임
    • dirac -y "prompt"는 Yolo Mode로 모든 동작을 자동 승인함
    • git diff | dirac "Review these changes"처럼 파이프 입력으로 컨텍스트를 직접 넘길 수 있음
    • dirac history로 이전 작업을 보고 다시 이어갈 수 있음
  • VS Code 통합

    • VS Code Marketplace에서 확장을 설치할 수 있음
    • VS Code 사이드바를 열고 Anthropic, OpenAI, OpenRouter 등 선호 AI 제공자를 설정한 뒤 새 작업을 시작하는 흐름임

실행 환경과 제공자 연동

  • API 키와 환경 변수

    • 인증 단계를 건너뛰기 위해 ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY, GEMINI_API_KEY, GROQ_API_KEY, MISTRAL_API_KEY, XAI_API_KEY, HF_TOKEN 등을 환경 변수로 받을 수 있음
    • 전체 목록은 src/shared/storage/env-config.ts에 있음
  • AWS Bedrock 지원

    • AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN과 함께 AWS_BEDROCK_MODEL 또는 AWS_BEDROCK_MODEL_ACT, AWS_BEDROCK_MODEL_PLAN을 설정하면 Bedrock provider로 자동 전환됨
    • aws-vault와 함께 사용할 수 있는 실행 예시를 포함함
    • Sonnet 4.6 이상 같은 최신 Claude 모델은 us., eu., ap. 같은 cross-region inference profile prefix가 필요하며, 지원 모델 ID는 AWS docs 참조를 안내함

프로젝트 배경

Read Entire Article