오픈 소스 프로젝트 #114: caveman — 적은 토큰으로도 충분할 때 왜 많은 토큰을 사용하는가
요약
AI 코딩 에이전트의 불필요한 미사여구를 제거하여 출력 토큰을 최대 65% 절감하는 오픈 소스 프로젝트 caveman을 소개합니다. LLM의 공손함 편향을 제어하여 비용을 줄이고 답변 속도를 높이는 기술적 접근법을 다룹니다.
핵심 포인트
- LLM의 RLHF로 인한 다변성 편향(verbosity bias) 해결
- 출력 토큰 65% 절감 및 답변 속도 향상
- 코드, 명령어, 에러 메시지의 무결성 유지
- 간결한 제약 조건이 벤치마크 정확도를 높일 수 있음
서론 (Introduction)
"적은 토큰으로도 충분할 때 왜 많은 토큰을 사용하는가"
이 글은 "하루에 하나의 오픈 소스 프로젝트(One Open Source Project a Day)" 시리즈의 114번째 기사입니다. 오늘의 프로젝트는 caveman입니다. 이는 AI 코딩 에이전트가 마치 원시인(caveman)처럼 말하게 하여, 코드 내용을 바이트 단위로 정확하게 유지하면서도 출력 토큰(output tokens)을 65% 절감하는 기술(Skill)입니다.
82,947개의 Star를 기록 중입니다. 이것은 밈(meme) 프로젝트이자 진지한 엔지니어링 도구입니다.
LLM(대규모 언어 모델)은 RLHF(인간 피드백을 통한 강화학습)에 의해 학습된 기본적 다변성 편향(verbosity bias)을 가지고 있습니다. 즉, "물론입니다!", "기꺼이 도와드리겠습니다!", "이 문제를 겪고 계신 이유는 아마도...", "요약하자면"과 같은 표현을 사용하는 것을 좋아합니다. 이러한 문구들은 대화에서는 가치가 있습니다. 하지만 코딩 워크플로우(workflow)에서는 순전한 토큰 낭비일 뿐입니다. 당신이 원하는 것은 서론이 아니라 정답입니다.
Caveman의 해결책은 에이전트에게 "미사여구는 버리고, 핵심만 남기며, 파편화된 표현을 사용하되 — 코드, 명령어, 또는 에러 메시지는 절대 건드리지 마라"라고 지시하는 제약 조건(constraint)을 설치하는 것입니다. 그 결과: 출력 토큰 65% 감소, 더 빠른 답변, 더 적은 비용이 발생합니다. 또한 2026년의 한 논문에 따르면, 간결함에 대한 제약 조건이 일부 벤치마크에서 정확도를 약 26포인트 _향상_시킨다는 사실이 밝혀졌습니다.
학습 내용
- caveman 압축의 작동 원리: 무엇을 삭제하고 무엇을 유지하는가
- 네 가지 압축 레벨: lite / full / ultra / wenyan 및 각각의 트레이드오프(tradeoffs)
- 솔직한 수치: 65%는 출력 토큰 기준입니다 — 왜 전체 세션 절감액은 더 작은지, 그리고 언제 caveman이 오히려 손해(net-negative)가 되는지
- 전체 도구 세트: 메모리 파일의 영구적인 절약을 위한
/caveman-compress - caveman 생태계: 토큰 문제의 각기 다른 부분을 해결하는 5개의 관련 프로젝트
사전 요구 사항
- Claude Code 또는 기타 AI 코딩 도구 사용 경험
- LLM 토큰에 대한 기본 이해 (출력 토큰은 비용이 발생함)
프로젝트 배경 (Project Background)
개요 (Overview)
caveman은 에이전트 간 교차 사용이 가능한 기술/플러그인(Skill/Plugin)입니다. 설치 후, 이 도구는 당신의 AI 코딩 에이전트에게 다음과 같이 지시합니다: "미사여구 없이 답변하고, 완전한 문장 대신 파편화된 표현을 사용하되 — 코드, 명령어, 에러 메시지는 완전히 그대로 두어라."
이것은 "AI의 답변이 틀리다"는 문제를 해결하는 것이 아닙니다. "AI가 너무 말을 많이 한다"는 문제를 해결합니다. 거대 언어 모델 (LLM)은 RLHF (Reinforcement Learning from Human Feedback) 학습을 통해 공손함 편향 (politeness bias)을 갖게 됩니다. 즉, "물론입니다!", "좋은 질문입니다!", "보시다시피", "요약하자면"과 같은 표현을 선호합니다. 이러한 단어들은 채팅에서는 가치가 있지만, 코딩 워크플로우 (coding workflow)에서는 노이즈 (noise)입니다.
이 프로젝트는 Julius Brussee에 의해 만들어졌습니다. 웹사이트: caveman.so.
저자 / 팀
- 저자: Julius Brussee
- 주요 언어: JavaScript
- 라이선스: MIT
- 웹사이트: caveman.so
프로젝트 통계
- ⭐ GitHub Stars: 82,900+
- 🍴 Forks: 4,629+
- 📄 라이선스: MIT
- 📅 생성일: 2026년 4월 (~3개월 만에 82k stars 달성)
기능
Before / After
| 일반 에이전트 (Normal agent) — 69 토큰 | Caveman 에이전트 — 19 토큰 |
|---|---|
| "당신의 React 컴포넌트가 리렌더링 (re-rendering)되는 이유는 아마도 각 렌더링 사이클마다 새로운 객체 참조 (object reference)를 생성하고 있기 때문일 것입니다. 인라인 객체를 프롭 (prop)으로 전달하면, React의 얕은 비교 (shallow comparison)가 매번 이를 다른 객체로 인식하여 리렌더링을 트리거합니다. 객체를 메모이제이션 (memoize)하기 위해 useMemo를 사용하는 것을 권장합니다." | "매 렌더링마다 새로운 객체 참조. 인라인 객체 프롭 = 새로운 참조 = 리렌더링. useMemo로 감쌀 것." |
| "물론이죠! 기꺼이 도와드리겠습니다. 겪고 계신 문제는 인증 미들웨어 (authentication middleware)가 토큰 만료를 제대로 검증하지 못해서 발생했을 가능성이 가장 높습니다. 제가 살펴보고 수정 사항을 제안해 드릴게요." | "인증 미들웨어 버그. 토큰 만료 체크 시 <= 대신 < 사용. 수정:" |
수정 내용은 동일합니다. 단어 수는 3분의 1입니다. 기술적인 내용은 전혀 손실되지 않았습니다.
┌────────────────────────────────────────────┐
│ output tokens saved █████████ 65% │
│ input tokens saved ░░░░░░░░░ 0% │
...
Caveman은 뇌를 작게 만드는 것이 아닙니다. Caveman은 _입(mouth)_을 작게 만듭니다. 에이전트가 아는 것이 아니라, 에이전트가 말하는 것을 줄입니다.
설치
단 한 번의 명령. 당신의 머신에 있는 모든 에이전트를 찾아 각각 설치합니다.
# macOS · Linux · WSL · Git Bash
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash
# Windows PowerShell 5.1+
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.ps1 | iex
약 30초 소요. Node ≥18 버전이 필요합니다. 설치되어 있지 않은 에이전트는 건너뜁니다. 다시 실행해도 안전합니다.
활성화 (Activation): Claude Code에서는 첫 번째 메시지부터 caveman이 활성화됩니다 (훅 메커니즘을 사용하므로 별도의 명령이 필요하지 않음). 다른 에이전트에서는 /caveman을 입력하거나 "talk like caveman"이라고 말하여 켜고, "normal mode"라고 말하여 끌 수 있습니다.
특정 에이전트에 설치하기:
# Claude Code 플러그인
claude plugin marketplace add JuliusBrussee/caveman && claude plugin install caveman@caveman
...
당신의 끙끙거림(Grunt) 선택하기 (4단계)
/caveman <level>을 사용하여 언제든지 전환할 수 있습니다. 레벨은 변경하거나 세션이 종료될 때까지 유지됩니다.
| 레벨 | 동일한 문장, 축소됨 |
|---|---|
| 일반 에이전트 (normal agent) | "You should wrap the object in useMemo, since a new reference is created on every render." |
| ... | |
언어 참고 사항: caveman은 당신의 언어를 유지합니다. 스페인어로 쓰면 caveman도 스페인어로 끙끙거립니다. 프랑스어, 포르투갈어도 마찬가지입니다. caveman은 스타일을 압축할 뿐, 번역하지는 않습니다. wenyan은 의도적인 예외입니다. 고전 중국어(Classical Chinese)는 현대의 어떤 언어보다 토큰당 더 많은 의미를 담고 있습니다. |
전체 도구 세트 (Full Toolset)
| 명령 (Command) | 기능 |
|---|---|
| `/caveman [lite | full]` |
| ... |
심층 분석 (Deep Dive)
벤치마크 데이터 (Benchmark Data)
Claude API의 실제 토큰 수입니다. 10개의 전형적인 코딩 프롬프트를 기본의 장황한 답변(verbose replies)과 비교하여 측정했습니다:
| 작업 (Task) | 일반 (Normal) | Caveman | 절약됨 (Saved) |
|---|---|---|---|
| React 리렌더링 버그 설명 | 1180 | 159 | 87% |
| ... | |||
벤치마크 코드는 benchmarks/ 및 evals/에 있으며, 직접 재현할 수 있습니다. |
솔직한 수치에 대한 경고
README에는 직접 인용할 가치가 있는 보기 드문 면책 조항이 포함되어 있습니다:
솔직한 수치에 대한 경고. Caveman은 오직 출력 (output) 토큰만을 줄입니다. 입력 (input) 및 추론 (reasoning) 토큰은 건드리지 않으며, 이 기술 자체로 턴당 약 1~1.5k의 입력 토큰이 추가됩니다. 따라서 전체 세션에서의 절감량은 출력 토큰 절감 수치보다 작으며, 이미 간결한 작업의 경우 오히려 손해(net-negative)가 될 수도 있습니다. 진정한 이점은 **가독성(readability)과 속도(speed)**입니다. 비용 절감은 보너스일 뿐입니다.
Caveman이 효과적인 경우:
- 설명 작업 (아키텍처 설명, 개념 워크스루) → 최대 절감 (80%+)
- 디버깅 설명 → 큰 절감 (70-80%)
- 코드 생성 → 중간 정도의 절감 (코드 자체는 압축되지 않음)
Caveman이 효과적이지 않은 경우:
- 이미 간결한 작업 ("이 명령어를 실행해" 등) → 기술 오버헤드 > 절감량
- 짧은 세션 → 초기 토큰 비용이 상쇄되지 않음
이러한 종류의 솔직한 프레이밍은 생산성 도구에서 흔치 않습니다.
/caveman-compress: 영구적인 절감 전략
/caveman-compress <file>은 응답당 압축과는 다릅니다. 이는 매 세션마다 로드되는 메모리 파일 — CLAUDE.md, AGENTS.md, 프로젝트 노트 등을 압축합니다.
/caveman-compress CLAUDE.md
README의 실제 수치:
| 파일 | 원본 | 압축됨 | 절감됨 |
|---|---|---|---|
claude-md-preferences.md | 706 | 285 | 59.6% |
| ... |
코드, URL, 경로는 바이트 단위로 보존됩니다. 산문 형태의 설명만 압축됩니다. 한 번 실행해 두면, 이후 모든 세션은 약 46% 더 작은 컨텍스트(context)로 시작합니다. 일회성 이득이 아닌 영구적인 절감입니다.
작동 원리
1. 설치 (Install)
└── 에이전트의 rules/config 디렉토리에 스킬 파일(skill file)을 배치합니다.
...
연구 논문 근거
2026년 3월에 발표된 논문 (arXiv:2604.00025), _"Brevity Constraints Reverse Performance Hierarchies in Language Models"_는 31개의 모델을 테스트했으며, 대규모 모델에 짧은 답변을 강제했을 때 일부 벤치마크에서 정확도가 약 26포인트 향상된다는 것을 발견했습니다.
짧은 것이 단순히 비용이 덜 드는 것만이 아닙니다. 때로는 짧은 것이 더 정확합니다.
Caveman 생태계
저자는 단 하나의 논제, 즉 "에이전트(agents)는 더 적은 것으로 더 많은 것을 수행해야 한다"를 중심으로 다섯 개의 관련 프로젝트를 구축했습니다.
| Repo | 축소 대상 |
|---|---|
| caveman (본 프로젝트) | 에이전트가 말하는 것 (What the agent says) |
| ... |
여기에 다섯 개의 형제 기술(grill-me, interface-kit, junior-to-senior, loop-factory)이 더 있으며, 모두 다음 명령어를 통해 설치할 수 있습니다:
npx skills@latest add JuliusBrussee/skills
Claude Code 상태 표시줄(Status Line) 통합
설치 후, Claude Code의 상태 표시줄(statusline)에 다음과 같이 표시됩니다:
[CAVEMAN] ⛏ 12.4k
이는 지금까지 절약한 총 출력 토큰(output tokens) 수이며, /caveman-stats를 실행할 때마다 업데이트됩니다. CAVEMAN_STATUSLINE_SAVINGS=0을 설정하여 이를 숨길 수 있습니다.
리소스 (Resources)
공식 링크
- 🌟 GitHub: JuliusBrussee/caveman
- 🌐 웹사이트: caveman.so
- 📊 벤치마크 (Benchmarks):
benchmarks/및evals/(직접 재현 가능) - 📄 정직한 수치 문서 (Honest numbers doc):
docs/HONEST-NUMBERS.md
요약 (Summary)
caveman은 밈(meme)의 탈을 쓴 진지한 도구입니다. 원시인(caveman) 컨셉은 농담일 뿐입니다. 65%의 출력 토큰(output token) 감소는 재현 가능한 벤치마크를 통해 측정된 실제 데이터입니다.
이 프로젝트를 수치 그 이상으로 돋보이게 만드는 것은 지적 정직성(intellectual honesty)입니다. README에는 "이것은 출력 토큰 기준이며, 전체 세션 절약량은 더 적을 수 있고, 짧은 작업에서는 오히려 손해(net-negative)가 발생할 수 있다"라고 명시되어 있습니다. 이는 최상의 결과 수치만을 앞세우는 대부분의 생산성 도구보다 훨씬 솔직합니다.
/caveman-compress는 장기적으로 가장 큰 레버리지(leverage)를 제공하는 기능입니다. 매 세션마다 로드되는 메모리 파일(예: CLAUDE.md, 프로젝트 노트)을 압축하여 입력 토큰(input tokens)을 약 46% 절약하며, 이 절약 효과는 향후 모든 세션에 걸쳐 복리로 적용됩니다. 만약 CLAUDE.md 파일이 너무 길어졌다면, 한 번쯤 시도해 볼 가치가 있습니다.
Claude Code나 다른 AI 코딩 도구를 사용하며 하루에도 수많은 코딩 대화를 나누는 개발자들에게, caveman은 현재 사용 가능한 도구 중 마찰(friction)이 가장 적고 부작용(side-effect)이 가장 적은 토큰 최적화(token optimization) 도구 중 하나입니다. 단 한 번의 설치 명령과 30초의 시간만 투자하면, 그 이후의 모든 AI 답변은 더 빠르고, 짧아지며, 저렴해집니다.
Caveman은 토큰을 아낍니다. Caveman은 돈을 아껴줍니다. 스타(Star)를 누르는 비용은 0원입니다. 공정한 거래입니다. ⭐
실제 기업 워크플로우(enterprise workflows)를 통해 검증된 AI 에이전트 및 기술의 큐레이션 마켓플레이스인 PrimeSkills를 살펴보세요. 과장 없이, 실제로 작동하는 것들만 제공합니다.
더 많은 통찰과 흥미로운 제품들을 확인하려면 저의 개인 사이트를 방문해 주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기