OSS 에이전트 Dirac가 Gemini-3-flash-preview에서 TerminalBench 최고 기록 달성
요약
오픈 소스 코딩 에이전트 Dirac가 Gemini-3-flash-preview 모델에서 TerminalBench 최고 기록을 달성했습니다. Dirac는 VS Code, CLI 등 다양한 환경에서 사용 가능하며, 자율적인 작업 실행과 맞춤형 도구 생성 기능을 제공하여 복잡한 소프트웨어 엔지니어링 작업을 효율적으로 수행할 수 있게 합니다.
핵심 포인트
- Dirac는 오픈 소스 코딩 에이전트로, 여러 모델을 지원합니다.
- 자율적 목표 모드(`/goal`)로 장기간의 작업도 드리프트 없이 처리 가능합니다.
- 작업 중 필요에 따라 새로운 도구를 생성하고 워크플로우에 통합할 수 있습니다.
Dirac, 복잡한 작업을 효율적으로 수행하는 오픈 소스 AI 코딩 에이전트
Dirac는 장시간의 소프트웨어 엔지니어링 작업, 정밀한 코드베이스 변경 및 효율적인 모델 사용을 위해 구축되었습니다.
Dirac란 무엇인가?
Dirac는 VS Code, 터미널 또는 모든 호환 Agent Client Protocol (ACP) 클라이언트를 통해 사용할 수 있는 오픈 소스 코딩 에이전트입니다. 수십 개의 프로바이더와 수백 개의 모델을 지원하므로, 하나의 스택에 갇히는 대신 워크플로우에 맞는 모델과 자격 증명을 가져올 수 있습니다.
Dirac는 자율적인 작업 실행 기능과 목적에 맞게 설계된 코드 도구(해시 기반 파일 편집, 구문 트리 검사 및 리팩토링, 병렬 작업, 서브 에이전트, 지속적인 조향(steering), 구성 가능한 권한 제어)를 결합합니다. 목표는 간단합니다: 유능한 모델에게 더 나은 인프라를 제공하여 더 오래, 더 빠르게, 그리고 적은 토큰 오버헤드로 작업할 수 있게 하는 것입니다.
Dirac를 사용해야 하는 이유?
<details> <summary><strong>VS Code, Open VSX, CLI 및 ACP 클라이언트에서 사용 가능</strong></summary>Visual Studio Marketplace 또는 Open VSX에서 확장 프로그램을 설치하거나, CLI를 사용하여 모든 터미널에서 Dirac를 실행하거나, JetBrains IDEs 및 Zed와 같은 ACP 호환 편집기에서 사용할 수 있습니다. 프로바이더 구성은 이러한 인터페이스 전반에 걸쳐 Dirac와 함께 유지됩니다.
</details> <details> <summary><strong>목표 모드: 목표를 제시하고 자리를 비우세요</strong></summary>/goal <objective>로 대화형 CLI 세션을 시작하세요. Dirac는 목표가 달성될 때까지 몇 시간 또는 며칠 동안 같은 목표를 향해 작업하며, 드리프트(drifting) 없이 작업을 자율적으로 생성하고 조정합니다. 입력이 필요할 때 일시 중지되며, 언제든지 확인하거나, 조향하거나, 일시 중지하거나, 재개하거나, 중지할 수 있습니다.

작업을 하는 동안 /new-tool <설명>을 사용하여 워크플로우에 맞춘 도구를 구축할 수 있습니다. Dirac는 요구사항을 타입이 지정된 도구로 변환하고, 컴파일하며, 유효성을 검사하고, 스모크 테스트를 수행합니다. 작업 범위별(Task-scoped) 도구는 즉시 사용 가능하며, 영구적인 워크스페이스 및 전역 도구는 도구(Tools) 탭에 나타나며 새로운 대화를 시작하지 않고 활성화할 수 있습니다.
도구 생성이 활성화되어야 합니다. 스모크 명령어는 설정된 승인 정책을 따릅니다.

모델이 모든 일상적인 단계를 서술할 필요는 없습니다. 낮은 상세 수준 응답을 활성화하여 진행 상황과 최종 답변은 간결하게 유지하면서도, 결정 사항, 주의 사항, 실패 사례 및 검증 결과를 보존할 수 있습니다.

작업이 시작된 후 떠오르는 생각이 있다면, 언제든지 다른 메시지를 보낼 수 있습니다. Dirac는 이를 큐에 넣고 다음 도구 응답과 함께 모델에 전달하여, 작업을 취소하거나 재시작하지 않고도 작업 내용을 업데이트합니다.

컨텍스트 압축(context compaction), 새 작업 인계(new-task handoffs), 커밋 메시지 생성, 권한 결정 등의 작업을 별도의 저렴한 모델로 라우팅하여 주 모델이 구현에 집중할 수 있도록 합니다. 컨텍스트 압축 사례 연구에서 이 모델 아비트라지(model arbitrage)는 비용을 80% 이상 절감했습니다: Sol vs. Luna: AI 에이전트를 위한 토큰 아비트라지.

유틸리티 모델을 권한 요청에 대한 첫 번째 검토 단계로 구성하고 명시적인 자연어 정책을 부여합니다. 이 모델은 정책을 만족하는 요청을 승인하고, 안전하지 않거나 불확실한 요청은 사용자에게 에스컬레이션(escalates)합니다. 모든 자동 승인은 그 이유와 함께 기록에 표시됩니다.
</details> <details> <summary> <strong>해시 기반 파일 편집 (Hash-anchored file editing)</strong> </summary>Dirac는 취약한 검색 및 교체 블록 대신 사용자 지정 안정 라인 앵커 프로토콜을 사용합니다. 이 모델은 앵커를 통해 정확한 소스 범위를 식별하고, 주변 줄이 이동하더라도 해당 범위만 교체할 수 있습니다. 이는 편집 페이로드(edit payloads), 모호성(ambiguity), 그리고 재시도(retries)를 줄여줍니다. 해시 앵커와 Myers diff가 편집을 더 효율적으로 만드는 방법 읽기.

Dirac는 전체 파일을 읽지 않고도 코드베이스의 구문 트리(syntax trees)를 사용하여 구조를 검사합니다. 이 모델은 여러 파일의 개요를 요청하거나 정확한 구현체와 그 참조 목록을 검색할 수 있습니다:
inspect_ast(operation: "outline", paths: ["utils/db.py"])
inspect_ast(operation: "implementation", paths: ["utils/db.py"], symbols: ["DBManager.init_db"])

구조적 결과는 파서(parser)와 인덱스 커버리지에 따라 달라집니다. 동적 참조(Dynamic references)에는 별도의 검증이 필요합니다.
</details> <details> <summary> <strong>AST 코드 조작 (AST code manipulation)</strong> </summary>구조적 편집은 근사적인 텍스트 일치(approximate text matches)가 아닌 심볼(symbols)을 기반으로 작동합니다. Dirac는 하나의 전체 함수를 교체하거나 인덱싱된 수백 개의 참조 이름을 한 번의 호출로 변경할 수 있습니다:
edit_ast(operation: "replace", targets: [{ path: "utils/db.py", symbol: "DBManager.init_db", replacement: "..." }])
edit_ast(operation: "rename", targets: [{ path: "src/", symbol: "old_name", replacement: "new_name" }])

모든 Dirac 빌드는 소스 코드를 함께 제공합니다. /askDirac <질문>을 사용하여 설치된 버전이 어떻게 작동하는지 물어보세요. Dirac는 자신이 실행되는 빌드에 대해 읽기 전용 접근 권한을 받으므로 질문에 답변할 수 있습니다.

Dirac의 도구 프로토콜은 모델이 독립적인 읽기(read), 검색(search), 편집(edit), 및 명령을 하나의 응답에서 배치 처리할 수 있게 합니다. 여러 파일에 걸친 조정된 변경 사항들은 모든 작업마다 별도의 모델 왕복(round trip)을 요구하는 대신 한 번에 함께 발생합니다.

자동 승인 기능이 비활성화되면, Dirac은 관련 변경 사항들을 단일한 다중 파일 diff 뷰로 그룹화합니다. 사용자는 연결되지 않은 일련의 파일 편집을 열고 승인하는 대신, 전체 변경 사항을 하나의 단위로 검토할 수 있습니다.
</details> <details> <summary><strong>기회적 첫 요청 강화(Opportunistic first-request enrichment)</strong></summary>첫 번째 요청이 모델에 도달하기 전에, Dirac은 예상되는 파일 이름, 디렉터리 경로, 심볼 이름을 감지하고 제한된 컨텍스트 패킷을 조립합니다. 명명된 심볼은 정의 우선(definition-first) 컨텍스트와 인덱싱된 참조를 받습니다.
또한 Git 변경 사항, 작업 공간 진단(workspace diagnostics), 터미널 출력, URL, 텍스트 파일, PDF, DOCX 파일, 스프레드시트, 노트북 및 이미지를 언급할 수 있습니다. 적용 가능한 AGENTS.md 지침, 매칭 규칙, 그리고 활성 스킬이 리포지토리 가이드로 요청에 추가됩니다.
하위 에이전트는 연구하고, 편집하고, 명령을 실행하며, 작업을 동시에 검증할 수 있습니다. 각 에이전트는 자체 프롬프트, 도구, 타임아웃, 그리고 선택적 부모 컨텍스트를 받을 수 있습니다. Dirac은 소스 신선도를 추적하고 쓰기 시점에 오래된(stale) 편집을 거부하여, 독립적인 에이전트들이 동일한 코드베이스에서 안전하게 작업할 수 있도록 합니다.

경로 인식 지침, 규칙, 스킬, 워크플로우 및 훅은 리포지토리 가이드를 각 작업에 전달합니다. 권한은 도구 경계에서 평가되며, 명령 배치(command batches)는 종료 상태와 제한된 출력을 보고하고, Chromium 체크는 스크린샷, 콘솔 메시지, 페이지 오류, 그리고 현재 URL을 반환합니다.
</details>Dirac는 통합 및 정리(cleanup) 제어 기능을 사용하여 Git worktree 내에서 작업도 격리할 수 있습니다. 브라우저 상호 작용은 스크린샷과 좌표를 사용하며, 메인 worktree 흐름은 깨끗하고 단일 루트의 Git 워크스페이스를 기대합니다.
<details> <summary><strong>장기 실행 작업을 위한 연속성(Continuity)</strong></summary>Context condensation을 통해 결정 사항, 정확한 경로, 실패 시도 및 검증 상태가 보존됩니다. 별도의 경계 지정 복구 경로(bounded recovery paths)는 일시적인 제공자 오류, 컨텍스트 오버플로우, 빈 응답 및 중단된 도구 루프를 처리합니다.
Plan, Act, 그리고 Utility 작업은 개별 모델 구성을 사용할 수 있습니다. 검토된 인계(handoffs)는 남아 있는 작업을 새 작업으로 이동시킬 수 있으며, 작업 ID는 VS Code, CLI, 파이프라인 및 호환 ACP 클라이언트 전반에 걸쳐 작업 재개를 지원합니다.
</details> <details> <summary><strong>완료 확인(Completion checks) 및 복원 지점(restore points)</strong></summary>선택적 완료 검증기(completion verifier)는 별도의 모델 패스에서 승인 기준과 주장된 검증을 검토합니다. 필수 기준이 누락된 경우, 활성 작업에 구체적인 후속 작업을 반환합니다. 이 모델 기반 확인은 테스트나 인간의 검토를 대체하지 않습니다.
체크포인트(Checkpoints)는 워크스페이스 파일과 운영 작업 상태를 캡처합니다. 복원(Restore)은 워크스페이스, 작업 또는 둘 모두에 적용될 수 있으며, 여기에는 대기 중인 조향(steering), 활성 스킬, 작업 도구 및 컨텍스트 추적 등이 포함됩니다.
</details>Harness 비교
저희는 Dirac와 다른 오픈 소스 에이전트 하네스들을 공개 GitHub 저장소의 8가지 다중 파일 리팩토링 작업에 대해 벤치마킹했습니다. 이 비교에서 모든 하네스는 thinking을 high로 설정한 gemini-3-flash-preview를 사용했습니다. Dirac는 평균 비용이 가장 낮은 상태로 8가지 작업을 모두 완료했습니다.
비용 참고: 이러한 실행 후 Cline에서 발견된 버그(issue #10314, PR #10315)로 인해 Dirac와 Cline의 결과가 캐시 읽기 비용을 약간 과소 보고했습니다 (백만 토큰당 $0.03으로, 실제로는 $0.05여야 함).
| Task (repository) | Files* | Cline | Kilo | Ohmypi | Opencode | Pimono | Roo | Dirac |
|---|---|---|---|---|---|---|---|---|
| DynamicCache (Transformers) | 8 | 🟢 (diff) [$0.37] | 🔴 (diff) [N/A] | 🟡 (diff) [$0.24] | 🟢 (diff) [$0.20] | 🟢 (diff) [$0.34] | 🟢 (diff) [$0.49] | 🟢 (diff) [$0.13] |
| ... |
🟢 Success | 🟡 Incomplete | 🔴 Failure
- 수정하거나 생성해야 하는 예상 파일 수. 정확한 작업 및 방법론은 evals/README.md를 참조하십시오.
Dirac 설치하기 (Install Dirac)
| 인터페이스 | 설치 방법 |
|---|---|
| VS Code | Visual Studio Marketplace에서 설치 |
| ... | |
| CLI는 Node.js 22.13부터 24.x까지, 그리고 npm을 필요로 합니다. 알려진 메모리 문제 때문에 Node.js 25는 지원되지 않습니다. |
빠른 시작 (Quick start)
VS Code 또는 Open VSX 에디터
- Dirac를 설치하고 사이드바를 엽니다.
- 제공업체(provider)와 모델을 선택한 다음, 제공업체 자격 증명(credentials)을 추가합니다.
- 구축, 수정, 조사 또는 검토하려는 내용을 설명합니다.
- 필요한 경우 작업을 승인하거나 **설정(Settings)**에서 자율성 정책(autonomy policy)을 구성합니다.
CLI (Command Line Interface)
npm install -g dirac-cli
dirac auth
dirac
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Research의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기