Apache Maka: 추가 전용 이벤트 로그를 런타임으로 삼는 감사 가능한 에이전트 작업 공간

Published · AI Daily — AI-assisted deep research, methodology & disclosure

Apache Maka(인큐베이팅)는 모델 메시지, 도구 호출, 권한 결정, 종료를 모두 추가 전용 RuntimeEvent로 기록하는 고성능 에이전트 작업 공간입니다. 화면, 다음 프롬프트, 장애 복구는 이 로그의 투영입니다. 데스크톱, TUI, CLI, Eval은 하나의 Runtime Host를 공유하고 데이터는 로컬에 남으며 모델은 직접 가져옵니다. 현재 버전은 0.2.0이며 Windows와 Linux는 프리뷰입니다.

Apache Maka(인큐베이팅)는 에이전트가 한 모든 일의 완전한 기록을 남기겠다는 하나의 약속 위에 세워진 고성능 에이전트 작업 공간입니다. 또 하나의 채팅 화면이 아니라, 에이전트 런타임과 얇은 클라이언트로 구성된 설계입니다. 이 보고서는 프로젝트 README와 공개 설명을 바탕으로 아키텍처, 동작 원리, 도입 관점, 한계를 정리합니다.

해결하려는 문제

에이전트 하네스는 작업을 끝내기 위해 존재합니다. README는 두 가지 척도만 제시합니다. 얼마나 많은 작업을 완료했는지, 그리고 비용이 얼마인지입니다. Maka는 이 두 척도를 공개합니다. 프로젝트는 같은 모델과 같은 공식 검증기(verifier)로 다른 하네스와 비교하고, 작업별 결과를 각 보고서와 함께 저장소의 docs/eval 폴더에 싣는다고 밝힙니다. 「우리가 더 낫다」가 아니라 「모든 작업의 결과를 직접 확인하라」는 태도입니다. 대부분의 프로젝트는 합산 점수만 공개하므로 흔치 않은 방식입니다.

핵심 설계: 로그가 곧 런타임

가장 중요한 설계는 「로그가 곧 런타임」이라는 생각입니다. 모델 메시지, 도구 호출, 권한 결정, 종료는 모두 추가 전용(append-only) RuntimeEvent로 기록됩니다. 화면 표시, 다음 프롬프트, 장애 복구는 이 로그의 투영(projection)일 뿐이며 유일한 원본이 아닙니다.

이는 이벤트 소싱과 맞닿은 발상이고 장점이 세 가지 있습니다. 첫째, 상태를 로그에서 재생할 수 있어 장애 복구가 단순합니다. 둘째, 화면과 프롬프트 구성이 각자 상태를 따로 갖지 않아 서로 어긋나기 어렵습니다. 셋째, 에이전트에게 가장 유용한 점으로, 오래된 도구 출력이 다음 프롬프트에서는 빠져도 로그에서는 사라지지 않습니다. 긴 작업에서는 도구 출력이 컨텍스트 창을 금방 채웁니다. Maka는 이를 프롬프트에서 덜어내 토큰을 아끼면서도 전체 감사 기록은 디스크에 남길 수 있습니다. 컨텍스트 관리와 감사 가능성은 보통 충돌하는 요구인데, 서로 다른 계층으로 나누어 둘 다 충족합니다.

단일 Runtime Host

Maka에는 실행의 유일한 권한인 Runtime Host가 하나뿐입니다. 데스크톱 앱, TUI와 CLI, 평가 도구 Eval은 모두 이 호스트의 얇은 클라이언트입니다. Eval은 실험과 점수만 소유합니다. 이 구조 덕분에 데스크톱에서 보는 동작과 벤치마크에서 측정한 동작이 같은 실행 경로에서 나옵니다. 평가용 별도 코드 경로가 없어서 「측정한 것」과 「출시하는 것」 사이의 간극이 생길 여지가 줄어듭니다.

로컬 우선, 모델은 직접 가져오기

세션, 설정, 실행 기록은 모두 사용자의 기기에 남습니다. Maka는 공용 모델 계정을 포함하지 않습니다. 처음 실행하면 설정에서 모델을 열고 API, 로컬 모델 또는 지원되는 계정 연결을 추가한 뒤 테스트하고 기본 모델을 고릅니다. 연결 상태는 「구성됨」「전송 가능」「실험적」 세 가지로 구분됩니다. 런타임에 연결되지 않은 계정 흐름은 사용 가능한 모델로 표시되지 않습니다. 호환성을 부풀리지 않는 정직한 선택입니다. 모델은 클라우드 API, 로컬 모델, 호환 게이트웨이 중 무엇이든 가능하므로, 민감한 코드를 다루는 팀은 로컬 모델을 연결해 코드와 기록을 사내망에 둘 수 있습니다.

빌드와 사용

소스 빌드에는 Node.js 22.19 이상(CI는 Node.js 24), npm, Git, 그리고 런타임 Grep 도구가 쓰는 ripgrep이 필요합니다. npm ci 후 npm run dev를 실행하면 핫 리로드가 되는 데스크톱 개발 환경이 시작됩니다. 터미널에서는 npm run cli:dev로 TUI를, npm run cli:dev -- run으로 한 번의 턴을 실행합니다. 그래프형 작업용 --graph 옵션도 있습니다. Direct Peer와 Peer Mesh에는 Rust 안정판 1.98 이상과 플랫폼 링커가 필요하며 별도의 dev:peer 명령이 있습니다. 플랫폼은 macOS가 중심이고 Windows와 Linux는 프리뷰입니다.

프로젝트 현황과 생태계 의미

Maka는 Apache Software Foundation의 인큐베이팅 프로젝트입니다. 최신 Apache 릴리스는 0.2.0(인큐베이팅)이며, 서명된 소스 아카이브가 공식 릴리스입니다. 다른 곳에서 배포되는 패키지는 편의용 산출물이고, 개발 빌드는 승인된 Apache 릴리스가 아닙니다. Apache 2.0 라이선스와 재단의 거버넌스는 기업 도입에 유리합니다. 라이선스가 명확하고 커뮤니티 운영 절차가 문서화되어 있기 때문입니다.

한계와 위험

첫째, README 발췌에는 구체적인 벤치마크 점수나 비용 수치가 없습니다. 작업별 결과는 docs/eval에서 확인해야 하며, 이 보고서는 검증하지 못한 수치를 인용하지 않았습니다. 둘째, 프로젝트는 아직 인큐베이션 단계이고 버전은 0.2.0이며 세 플랫폼 중 둘은 프리뷰입니다. 운영 도입에는 검증 시간이 필요합니다. 셋째, 추가 전용 전체 로그는 디스크 사용량과 개인정보 문제를 낳습니다. 로그에는 모델 메시지와 도구 출력이 남아 비밀 정보나 비공개 코드가 들어갈 수 있으므로, 팀이 보존 기간과 마스킹 규칙을 직접 정해야 합니다. 넷째, 고성능이라는 주장은 자신의 작업에서 재현해 확인해야 하며, 공개 벤치마크가 곧 내 작업 부하는 아닙니다.

앞으로의 방향

감사 가능한 에이전트는 갈수록 중요해질 것입니다. 에이전트가 파일을 고치고 명령을 실행할 수 있다면 권한 결정과 각 단계의 인과 사슬을 추적할 수 있어야 합니다. Maka는 이 사슬을 나중에 덧붙인 로깅 기능이 아니라 런타임의 핵심 요소로 다룹니다. 이것이 이 프로젝트에서 가장 주목할 부분입니다. 공개 평가 관행이 여러 릴리스에 걸쳐 유지된다면, 에이전트 하네스 사이의 비교가 더 투명해지는 계기가 될 수도 있습니다.

Sources