개발자 공개: DeepSeek, Qwen, Kimi, MiniMax를 위한 나이로비 AI 에이전트 워크스테이션 구축기
요약
오픈 웨이트 모델(DeepSeek, Qwen 등)에 최적화된 AI 에이전트 워크스테이션 'Atlarix' 구축 사례를 소개합니다. 기존 폐쇄형 모델 중심의 툴링 한계를 극복하기 위해 임베딩 없는 구조적 검색과 검증된 편집 루프를 도입했습니다.
핵심 포인트
- 오픈 웨이트 모델을 핵심으로 하는 네이티브 에이전트 하네스 구축
- 벡터 인덱스 대신 SQLite FTS5와 ast-grep을 활용한 구조적 검색 적용
- 편집 결과의 정확성을 보장하는 '쓰기-재읽기-비교' 검증 루프 구현
- OS별 샌드박싱 기술을 통한 안전한 에이전트 실행 환경 제공
내가 만든 것
Atlarix — IDE(VS Code, IntelliJ, Vim)를 대체하는 대신 그
옆에 위치하는 약 400MB 규모의 AI 에이전트 워크스테이션입니다. DeepSeek, Qwen, Kimi, MiniMax와 같은 오픈 웨이트 (open-weight) 프런티어 모델들을 중심으로 구축된 네이티브 하네스 (harness)입니다. 그 외의 모든 것에는 여전히 BYOK (Bring Your Own Key) 방식이 적용되지만, 이 네 가지 모델은 부가적인 요소가 아니라 핵심입니다.
케냐 나이로비에서 NorahLabs 소속으로 단독 개발되었습니다.
문제점
나는 실제 에이전트 작업 — 다중 파일 편집, 터미널 명령, 코드베이스 탐색 — 을 위해 오픈 웨이트 (open-weight) 모델을 실행하고 있었습니다. 내가 시도한 모든 도구는 Claude나 GPT를 중심으로 구축되어 있었고, 내가 사용하는 모델들은 BYOK 옵션으로 덧붙여진 수준이었습니다. 컨텍스트 윈도우 (Context-window) 가정은 다른 모델에 맞춰 튜닝되어 있었습니다. 시스템 프롬프트 (System prompts)와 도구 호출 (tool-calling)은 폐쇄형 모델 (closed-model)의 동작에 맞춰 형성되어 있었습니다. 검색 (Retrieval) 방식은 저장소 전체를 쏟아붓거나, 오프라인 머신에는 존재하지도 않는 클라우드 벡터 DB (vector DB)에 의존했습니다.
모델들은 이제 프런티어 (frontier) 급입니다. 하지만 그 주변의 툴링 (tooling)은 그렇지 못합니다.
접근 방식
Blueprint — 임베딩 없는 구조적 검색 (structural retrieval)
- SQLite FTS5를 기반으로 하는 Universal Ctags 심볼 + ast-grep 엣지 (edges)
- 구조적 관련성에 따라 재순위화(reranked)된 grep 결과
- 각 결과에 포함된 함수/클래스 주석 처리
...
가설:
_코드_의 경우, 어휘적(lexical) + 구조적 검색에 모델 자체의 추론을 더하는 것이 벡터 인덱스 (vector index)보다 우수합니다. 이것이 Claude Code와 opencode가 임베딩 인덱스를 포함하지 않는 이유이기도 합니다. 나의 대규모 멀티 리포지토리 (multi-repo) 워크스페이스에서 "회원가입 코드 찾기" 쿼리를 실행했을 때, 정확한 file:line 인용과 함께 턴 토큰 (turn tokens)이 약 63K에서 약 26K로 감소했습니다. (이는 공개된 벤치마크가 아닌 저의 개인 워크스페이스 결과입니다. 다음에 구축할 것은 재현 가능한 평가 (reproducible eval)입니다.)
검증된 편집 루프 (Verified edit loop)
- 쓰기(write) → 디스크에서 다시 읽기(re-read) → 의도한 내용과 비교
- 정상 경로(happy path)에서는 토큰 소모 제로
- 편집이 실제로 반영되지 않으면 "작업 완료(task complete)" 차단
실시간 모델 카탈로그 (Live model catalog)
- 시작 시 호스팅된 설정에서 가져오는 관리형 모델 ID
- 4개 연구소의 새로운 모델 출시 시 자동으로 나타남
- 모델 교체는 앱 재빌드가 아닌 설정 변경으로 가능
OS별 샌드박싱 (Per-OS sandboxing)
- macOS: Seatbelt
- Linux: bubblewrap
- Windows: AppContainer
...
기술 스택 (Tech stack)
- Electron + React + TypeScript
- 검색 (retrieval)을 위한 SQLite FTS5
- 구조적 인덱싱 (structural indexing)을 위한 Universal Ctags + ast-grep
- Windows 샌드박스 (sandbox)를 위한 Rust 헬퍼
- Node.js 24+
솔직한 현재 상황
v13.9.0 버전이 출시되어 작동 중입니다. 저는 1인 개발자이기에 초기 단계의 한계점에 대해 솔직하게 말씀드리겠습니다. 아직 공개된 직접적인 벤치마크 (benchmark) 결과는 없으며, macOS는 공증 (notarized)되었으나 Windows 빌드는 현재 서명되지 않은 상태입니다 (서명 기능 추가 예정). 또한 위에서 언급한 검색 (retrieval) 수치는 통제된 평가 (controlled eval)가 아닌 저의 개인적인 사용 경험을 바탕으로 한 것입니다. 이 프로젝트의 솔직한 가치는 "모든 것을 압도한다"가 아니라, "단순히 모델을 수용하는 것을 넘어, 오픈 웨이트 (open-weight) 모델을
중심으로 구축된 첫 번째 워크스테이션 — 그리고 그 구체적인 방법"을 제시하는 데 있습니다.
피드백 요청
에이전트 (agentic) 작업을 위해 오픈 웨이트 (open-weight) 모델을 실행하고 계신다면, 현재 어떤 환경을 사용 중이신지, 그리고 어디에서 문제가 발생하는지 알려주세요. 그러한 피드백이 실제로 이 프로젝트를 형성해 나가는 동력이 됩니다.
🌐 atarix.dev
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기