Axe – 12MB 바이너리로 AI 프레임워크를 대체하는 Unix 철학 기반 CLI Agent 도구
Show HN: Axe – A 12MB binary that replaces your AI framework
TL;DR Highlight
TOML 설정으로 정의된 경량 LLM Agent CLI 도구는 Unix 파이프·git hook·cron 등 기존 도구와 조합하여 무거운 AI 프레임워크 없이도 재조합 가능한 Agent를 실행한다.
Who Should Read
LangChain 같은 무거운 AI 프레임워크 없이 LLM을 기존 개발 워크플로우(git hook, CI/CD, cron 등)에 간단하게 통합하고 싶은 백엔드/DevOps 개발자. 특히 커밋 메시지 생성, 로그 분석 같은 작은 자동화 작업에 LLM을 활용하고 싶은 경우에 유용하다.
Core Mechanics
- Axe는 'AI는 챗봇이어야 한다'는 전제를 거부하고, Unix 프로그램처럼 각 Agent가 한 가지 일만 잘 하도록 설계됐다. TOML 파일로 Agent를 정의하고 CLI에서 호출하며, 파이프로 데이터를 넘기고 결과를 받을 수 있다.
- Go로 작성된 단일 바이너리(12MB)로 배포되며, 별도 데몬이나 GUI 없이 동작한다. Anthropic(Claude), OpenAI, Ollama(로컬 모델) 세 가지 LLM 제공자를 지원한다.
- Agent 설정은 TOML 파일로 버전 관리가 가능하며, 각 Agent마다 시스템 프롬프트·모델 선택·스킬 파일·컨텍스트 파일·작업 디렉토리를 개별 지정할 수 있다.
- Sub-agent 위임(delegation) 기능이 있어서 Agent가 LLM 도구 호출(tool use)을 통해 다른 Agent를 호출할 수 있다. 무한 재귀를 막기 위한 depth 제한과 병렬 실행도 지원한다.
- Persistent memory 기능으로 타임스탬프가 붙은 마크다운 로그 형태로 실행 간 컨텍스트를 유지한다. LLM이 직접 오래된 메모리를 패턴 분석해 정리하는 'Memory garbage collection' 기능도 포함돼 있다.
- Skill 시스템을 통해 재사용 가능한 instruction 조각을 여러 Agent에서 공유할 수 있다. 예를 들어 'unix-output.md', 'be-concise.md', 'git.md' 같은 스킬 파일을 만들어서 여러 Agent에서 불러다 쓰는 방식이다.
- Axe 자체는 스케줄러가 아니라 실행기(executor)다. 스케줄링이나 워크플로우 오케스트레이션은 cron, git hook, 파일 와처 같은 기존 Unix 도구에 맡기고, Axe는 Agent 실행에만 집중한다.
Evidence
- 한 댓글 작성자가 비슷한 접근법을 쉘 스크립트로 직접 구현해서 사용 중이라는 경험을 공유했다. `git diff --staged | ai-commit-msg | git commit -F -` 같은 파이프라인을 만들었고, 각 Agent 스크립트는 bash로 작성해 스킬 파일을 불러오는 라이브러리를 공유하는 방식을 쓴다고 했다. Axe와 철학은 같지만 훨씬 가볍게 직접 구현했다는 점이 흥미롭다.
- 비용 통제에 대한 우려가 제기됐다. '거대한 컨텍스트 창 하나는 비싸지만, 작은 컨텍스트 창을 가진 10개 Agent가 의도치 않게 fan-out 되면 더 비쌀 수 있다'는 지적이다. 이에 대해 작성자는 명확한 답변을 내놓지 않았고, 커뮤니티에서도 이 부분이 미해결 과제로 남았다.
- 'Persistent memory'라는 용어에 회의적인 댓글이 있었다. 메모리 기능을 추가하면 스코프 크리프(기능이 의도치 않게 커지는 현상)나 복잡성 증가로 이어진다는 주장이다. '어떤 파일이 어떻게 파이프되는지 3문장으로 설명하지 못하는 memory 기능은 토큰만 낭비하는 추상화'라는 날카로운 비판이었다.
- 12MB 바이너리 크기가 크다는 지적이 있었다. Zig로 HTTP+TLS+LLM API 호출 스택을 구현하면 400KB, 언어/컴파일러/VM까지 구현해도 500KB 이하라는 비교가 나왔다. Go 런타임 특성상 어느 정도 불가피하지만, '12MB가 인상적인 수치'라는 홍보 방식에는 동의하지 않는다는 의견이었다.
- 단일 목적 Agent 모델에 대한 회의론도 있었다. '만약 Agent들이 사람이라면, 이렇게 세분화된 역할을 여러 사람에게 배분하고 협업시키는 건 완전히 비효율적일 것'이라는 지적이다. 반면 'Agent마다 필요한 컨텍스트만 주면 프롬프트가 작아져서 비용 통제와 동작 예측이 쉬워진다'는 긍정적인 반론도 있었다.
How to Apply
- git hook에 LLM 자동화를 붙이고 싶다면, Axe로 커밋 메시지 생성 Agent를 TOML로 정의하고 `.git/hooks/prepare-commit-msg`에서 `git diff --staged | axe run commit-writer`처럼 호출하면 된다. 프레임워크 설치 없이 바이너리 하나로 즉시 적용 가능하다.
- 여러 LLM 처리 단계를 파이프라인으로 연결하고 싶을 때, 각 단계를 별도 Agent TOML 파일로 정의하고 shell 파이프로 연결하면 된다. 예를 들어 `cat log.txt | axe run log-analyzer | axe run alert-formatter > alert.md` 식으로 구성하면 각 Agent가 최소한의 컨텍스트만 받아서 처리한다.
- Anthropic/OpenAI 클라우드 모델을 쓰다가 비용이 부담될 때, 같은 TOML 설정에서 model 필드만 Ollama 로컬 모델로 바꿔서 테스트해볼 수 있다. 멀티 프로바이더를 지원하기 때문에 프로바이더 전환 비용이 낮다.
- CI/CD 파이프라인에 코드 리뷰나 테스트 결과 요약 자동화를 추가하고 싶다면, GitHub Actions 워크플로우에서 Axe 바이너리를 다운로드해서 `axe run code-reviewer`를 실행하는 스텝을 추가하면 된다. 단일 바이너리라서 의존성 설치 없이 간단하게 통합된다.
Code Example
# TOML Agent 설정 예시 (예: commit-writer.toml)
[agent]
name = "commit-writer"
model = "claude-3-5-haiku-20241022"
system = "Given a git diff on stdin, output a single conventional commit message. One line only."
skills = ["core/unix-output.md", "core/be-concise.md", "domain/git.md"]
# CLI 사용 예시
$ git diff --staged | axe run commit-writer
$ git diff --staged | axe run commit-writer | git commit -F -
# 커뮤니티 댓글에서 공유된 bash Agent 스크립트 방식 (Axe 없이 직접 구현)
#!/usr/bin/env bash
# ai-commit-msg: stdin=git diff, stdout=conventional commit message
set -euo pipefail
source "${AGENTS_DIR:-$HOME/.agents}/lib/agent-lib.sh"
SYSTEM=$(load_skills \
core/unix-output.md \
core/be-concise.md \
domain/git.md \
output/plain-text.md)
SYSTEM+=$'\n\nTask: Given a git diff on stdin, output a single conventional commit message. One line only.'
run_agent "$SYSTEM"Terminology
관련 논문
프로덕션 AI 에이전트를 GPT-5.6으로 마이그레이션: 2.2배 빠르고 27% 저렴
마케팅 웹사이트를 자동 생성하는 프로덕션 AI 에이전트를 Claude Opus 4.8에서 GPT-5.6 Sol로 전환한 실전 경험담으로, 단순 모델 교체가 아니라 eval 하네스, 툴 스키마, 캐싱, 추론 리플레이까지 손봐야 했던 과정을 구체적인 수치와 함께 정리했다.
xAI Grok Build CLI가 xAI 서버로 전송하는 데이터: 네트워크 레벨 분석
xAI의 공식 코딩 CLI 도구 Grok Build가 사용자 동의 없이 전체 Git 저장소와 .env 시크릿 파일을 xAI 서버로 업로드한다는 사실이 네트워크 트래픽 분석으로 밝혀졌다.
중요할 때 기억하라: Long-Horizon 에이전트를 위한 Proactive Memory Agent
LLM 에이전트가 긴 작업 중 중요한 정보를 잊어버리는 문제를 별도의 메모리 에이전트가 '적절한 타이밍에' 끼어들어 해결하는 방법
WebSwarm: 깊고 넓은 웹 검색을 위한 재귀적 Multi-Agent Orchestration
복잡한 웹 검색을 재귀적으로 분해하고 각 노드에 적합한 검색 모드를 동적으로 할당하는 멀티에이전트 프레임워크
웹 앱을 리버스 엔지니어링해서 AI Agent 도구로 자동 변환하기
로그인된 웹 앱의 API 호출을 브라우저에서 감시해 자동으로 MCP 도구로 변환하는 에이전트를 만들었다. 소스 코드나 공식 API 문서 없이도 Jira, Spotify 같은 서비스에 AI 어시스턴트를 붙일 수 있다.
FableCut – AI 에이전트가 조작할 수 있는 브라우저 기반 비디오 에디터 (zero deps)
타임라인 전체를 JSON 파일 하나로 표현하고 MCP/REST로 AI 에이전트가 직접 편집할 수 있는 브라우저 비디오 에디터로, Claude 같은 AI가 프롬프트 하나로 영상을 자동 컷편집하고 결과를 실시간으로 UI에 반영해준다.