8개월 동안 883번의 커밋을 거쳐 LLM 에이전트 하네스를 만들었지만, 과도한 엔지니어링 끝에 결국 포기했습니다 - 하하.
I spent 883 commits and 8 months building an LLM agent harness, overengineered it, and abandoned it - lol.
핵심 요약
LLM 에이전트 개발에 몰두하다 과도한 기능 추가로 프로젝트를 중단한 개발자의 회고와 교훈.
- 프로젝트 중단 — 완벽을 기하려다 기능이 너무 방대해져 결국 프로젝트를 폐기함
- 핵심 교훈 — 모델의 결과물을 맹신하지 않고 시스템이 직접 검증하는 구조의 중요성 확인
- 과잉 엔지니어링 — 실제 업무 효율보다 시스템 구축과 연구에 더 많은 시간을 쏟는 함정에 빠짐
- 지식 자산화 — 실패한 프로젝트지만 에이전트 설계와 검증 로직 등 유용한 기술적 아이디어는 남음
그래서, 883번의 커밋, 8개월의 시간, 그리고 수십억 개의 토큰을 쏟아부어서 이 물건을 만들었는데, 결국 갖다 버렸다.
이건 원래 LLM을 모든 걸 다 맡기는 주체가 아니라, 그냥 갈아 끼울 수 있는 일꾼 정도로 취급하는, 더 나은 코딩 에이전트 하네스를 만들어 보려고 시작한 거였다.
하네스가 실제 계획, 상태, 권한, 컨텍스트, 검증, 증거, 오케스트레이션 같은 걸 다 쥐고 있어야 했다. 모델이 "작업 끝냈음"이라고 말해도, 시스템이 그냥 믿는 게 아니라 실제로 뭐가 일어났는지 직접 확인하게 만드는 구조였지.
근데 만들다 보니 이것저것 계속 갖다 붙이게 되더라.
코드 그래프, RAG, 결정론적 오케스트레이션, 격리된 워커, 크래시 복구, 모델 라우팅, 로컬 모델, 재실행 가능한 런, 검증 게이트, 자기 개선 실험, 대시보드, 컴퓨터 사용, 개인 자동화, 그 외에도 수백만 가지 아이디어들까지.
결국엔 말도 안 되게 과하게 설계된 쓰레기 덩어리가 돼버렸다. 실제로 일을 하려고 이 툴을 쓰기보다는, 연구하고 계획 짜고 시스템 추가하는 데 시간을 다 썼거든. 다른 하네스들은 이미 훨씬 쓰기 편해지고 있는데, 내 건 여전히 거대한 머리 없는 실험체 수준이었으니까.
그래서 그냥 죽여버렸다.
이걸 무슨 완성된 제품이라고 올리는 것도 아니고, Claude Code 같은 세련된 대안을 기대하고 다운로드하는 건 절대 비추한다. 상당 부분이 미완성이고, 서로 연결도 안 되고, 구식이고, 그냥 현실화되지 못한 계획들뿐이니까.
그래도 그 안에는 엄청난 양의 연구, 아키텍처, 실험, 실패한 아이디어, 그리고 코드가 들어있다. 에이전트 하네스 만드는 사람들한테는 몇몇 부분은 여전히 쓸만할지도 모른다. 특히 이런 쪽은:
- 상태 관리와 검증을 모델 외부에서 처리하는 법
- 결정론적/재실행 가능한 에이전트 런
- 코드베이스 검색 및 의존성 그래프
- 오케스트레이터/워커 분리
- 컨텍스트 예산 관리 및 세션 핸드오프
- 샌드박싱 및 권한 게이트
- 에이전트가 직접 생성하지 않은 증거로 에이전트의 주장을 검증하는 법
이 아카이브에는 원래의 실험적인 Rust/Python/Tauri 코드, 수천 개의 계획 및 연구 문서, 그리고 정리된 커밋 히스토리가 다 들어있다.
결론은 이거다. 제품으로서는 실패했지만, 누군가 이 시체에서 건질만한 아이디어라도 훔쳐 갔으면 좋겠다.
다들 여기서 실제로 건질만한 게 뭐라고 생각하는지, 아니면 애초에 내가 범위를 계속 넓히기 시작했을 때부터 이 아키텍처는 망할 운명이었는지 궁금하다.
언젠가 다시 완성할지도 모르겠지만, 그게 필요할지는 누가 알겠냐. 모든 걸 해결하려고 덤볐다가 결국 아무것도 해결 못 했으니까. 이게 조금이라도 도움이 돼서 완전히 헛짓거리는 아니게 됐으면 좋겠다. 설령 그게 그냥 '이런 짓은 하지 마라'는 교훈이나 확인 정도일지라도 말이야.
