AI / Automation

로컬 LLM 가속: Headroom으로 Agent 컨텍스트 95% 절감 (2026)

Mac mini M4 Headroom 로컬 LLM 도구 지연·컨텍스트 압축

Mac mini에서 Ollama, DeepSeek, Llama 3 코딩 Agent에 monorepo grep이나 200 MB 로그 tail을 맡기면 UI가 멈추고 tok/s가 떨어집니다. 8B–14B 로컬에서는 도구 출력 팽창이 모델 지능보다 치명적입니다—압축되지 않은 바이트마다 통합 메모리 버스를 ~20–40 tok/s로 점유합니다.

Headroom은 OSS 컨텍스트 압축 레이어(Apache 2.0)로 LLM 진입 전 도구·로그·파일 읽기를 보통 60–95% 줄입니다. CCR로 원문을 요청 시 복원합니다. 로컬 우선 워크플로용이며, 클라우드 비용 절감은 Hermes Trajectory Compressor를 참고하세요.

고지: ProxyMac은 Mac 개발 가이드를 게시합니다. Headroom은 제3자 프로젝트이며 제휴 관계가 없습니다.

큰 도구 출력에서 로컬 Agent가 멈추는 이유

로컬 추론 지연은 컨텍스트 길이메모리 대역폭에 좌우되며, '똑똑함'만으로 결정되지 않습니다.

증상일반 원인관찰
도구 1회 후 30–120초 '생각'stdout 5만–20만 token진행 막힘; GPU 100%
세션 중 답변 품질 하락KV cache 가득; 옛 dump 잔류최신 지시 무시
앱이 얼어붙은 느낌8–16GB Mac mini swap팬 풀가동; 메모리 압력 빨강
실패 grep 반복에러 줄이 노이즈에 묻힘동일 도구 루프

인용 정의: 로컬 LLM 도구 지연 = 도구 반환 후 다음 토큰까지의 실시간—비압축 컨텍스트 prefill이 지배하며 도구 실행 시간이 아닙니다.

Apple Silicon에서 OpenClaw/MLX도 쓰면 8GB 메모리 예산과 병행하세요.

Headroom 아키텍처: prefill 전 압축

Agent (Cursor, OpenClaw, custom) │ tool results · file reads · logs ▼ ┌──────────────────────────────┐ │ Headroom (local) │ │ CacheAligner → ContentRouter │ │ ├─ SmartCrusher (JSON) │ │ ├─ CodeCompressor (AST) │ │ └─ Kompress-base (text) │ │ CCR store (reversible) │ └──────────────────────────────┘ │ compressed messages + headroom_retrieve ▼ Ollama / llama.cpp / MLX API

README 벤치(python -m headroom.evals suite 재현):

워크로드압축 전압축 후절감
Code search (100 results)17,7651,40892%
SRE incident debugging65,6945,11892%
GitHub issue triage54,17414,76173%

CCR: 원문은 디스크 보관; headroom_retrieve로 전체 파일 복원—영구 삭제 없는 공격적 압축.

문서: 퀵스타트, CCR.

결정 매트릭스: Mac mini Agent

방식token 절감가역최적
head -n 50 수동 절단높음아니오임시
Hermes compression.*중간부분Hermes Agent
Headroom proxy60–95%예(CCR)OpenAI 호환 로컬
Headroom MCP동일 엔진MCP/OpenClaw
작은 quant만도구 팽창 0%N/A거대 로그에 부적합

Mac mini OpenClaw: Headroom은 OpenClaw wrap·ContextEngine 플러그인 지원.

If X, do Y: 7B에서 cat 후 prefill 10초 초과면 GPU/클라우드 전에 Headroom 활성화.

시나리오 A — Ollama + Headroom proxy (코드 변경 없음)

Agent OpenAI base URL을 Headroom에; Headroom이 Ollama로 전달.

스택: Mac mini M2/M3/M4, qwen2.5-coder:7b 또는 deepseek-r1:8b, proxy 8787.

기대: 커뮤니티: 7B에서 45–90초8–15초 (저장소별 상이).

시나리오 B — 홈서버 OpenClaw + Headroom MCP

MCP headroom_compress 등. 병렬 상한과 궁합—16GB에서 2 동시 작업 가능.

7단계: Mac mini Headroom + Ollama

1단계 — Headroom 설치 (Python 3.10+)

brew install python@3.12 pip install "headroom-ai[proxy,mcp]" headroom --version

2단계 — Ollama 코딩 모델

ollama pull qwen2.5-coder:7b-instruct-q4_K_M ollama serve # default :11434

3단계 — Ollama 향 proxy

export OLLAMA_HOST=http://127.0.0.1:11434 headroom proxy --port 8787 --backend ollama

(proxy 가이드 참고.)

4단계 — Agent를 localhost:8787로

OpenAI 호환 예:

export OPENAI_API_BASE=http://127.0.0.1:8787/v1 export OPENAI_API_KEY=ollama # placeholder for local

base URL: http://127.0.0.1:8787/v1.

5단계 — 베이스라인 vs 압축

동일 프롬프트 2회:

  1. 직접 Ollama — TODO 전부
  2. Headroom 경유

headroom_stats 기록.

6단계 — 디버그 시 retrieve

스택 누락 시 headroom_retrieve로 ERROR 구간 복원.

7단계 — LaunchAgent (선택)

메모리 가이드로 Node 힙 제한. 순서: Ollama → Headroom → Agent.

문제 해결

증상: Headroom 후에도 느림

패턴: 바이너리/protobuf 압축률 낮음.
해결: JSON/텍스트 포맷 먼저; CodeCompressor; 병렬 읽기 감소.

증상: 실패 테스트 줄 소실

패턴: FAIL 행 삭제.
해결: headroom_retrieve; SmartCrusher; rg --json ERROR.

증상: proxy 연결되나 404

패턴: 백엔드 env/Ollama 미실행.
해결: curl tags; 올바른 --backend로 재시작.

구성권장
Cursor + Ollamaproxy 8787 + 7B
OpenClaw 게이트웨이MCP + 16GB 병렬 1–2
Hermes 8BHeadroom + 8B 튜닝
MLXHeadroom + MLX 하이브리드

FAQ

클라우드 API 전용?+
아닙니다. 로컬 자체 호스팅(Ollama 등)용입니다.
Hermes와 차이?+
Hermes는 완료 궤적, Headroom은 유입 도구/RAG/로그 압축.
95% 압축 정확도?+
BFCL 97% 보고. CCR retrieve 유지.
DeepSeek 로컬?+
예—OpenAI 호환 서버면 가능.
최소 RAM?+
16GB 권장; 8GB8GB 가이드.

전용 Mac mini?

무헤드 호스트에서 Ollama+Headroom 상시 실행.