macOS의 OpenClaw 게이트웨이는 장시간 에이전트 작업에 탁월합니다. MCP 도구 팬아웃, 워크스페이스 파일 읽기, 매 모델 턴마다 수 MB 로그를 쏟아 넣는 예약 작업이 대표적입니다. Headroom(GitHub: chopratejas/headroom)은 LLM 앞 로컬 압축 계층(프록시·라이브러리·MCP 서버)으로, Anthropic 과금 이전에 도구 출력·JSON 블록·대화 기록을 줄입니다. 공개 벤치마크는 에이전트 워크로드에서 60–95% 토큰 절감을 보여 주며 품질을 유지합니다. SRE형 인시던트 디버깅은 Headroom 평가에서 65,694 → 5,118 토큰(92% 절감)까지 내려갔습니다.
Mac mini M4에서 launchd 예약 작업·게이트웨이 정렬 가이드로 야간 감사를 이미 돌린다면, 빠진 조각은 새 Skill이 아니라 OpenClaw Anthropic 트래픽을 Headroom 프록시로 라우팅하는 것입니다. grep이 많은 도구 반환과 리포 전체 스캔이 API 예산을 깨뜨리는 패턴을 막습니다. Headroom README는 OpenClaw를 일급 통합(headroom/providers/openclaw의 ContextEngine 플러그인)으로 나열합니다. 본문은 env 기반 프록시 라우팅, LaunchAgent 공존, MCP 공존, 고처리량 야간 검사 파이프라인을 한데 엮은 아키텍처입니다—NodeMac 홍보는 최소화합니다.
OpenClaw + Headroom이 필연인 이유
OpenClaw 에이전트는 설계상 도구 집약형입니다. 파일시스템 도구, MCP stdio 서버, Webhook 브리지, 다단계 워크스페이스 작업이 채팅 전용 봇보다 컨텍스트를 훨씬 빠르게 부풀립니다. 야간 코드 감사 한 번에 다음이 흔합니다.
- 수천 개 파일 나열(
tools.fs또는 shell 동등물). - CI API 또는 linter 출력의 전체 JSON 가져오기.
- 이전 턴 도구 페이로드를 다음 모델 호출에 다시 붙이기.
Anthropic은 입력 토큰으로 과금합니다. 압축 없이 단일 감사 작업이 저장소당 5만–8만 토큰을 재생하는 경우가 많습니다—Headroom이 실제 에이전트 트레이스에서 보고하는 47–92% 절감 구간과 정확히 겹칩니다.
Headroom은 OpenClaw 기존 운영 매트릭스를 보완하며 게이트웨이 환경 변수 우선순위 매트릭스나 MCP 전송 허용 목록 매트릭스를 대체하지 않습니다. 투명 HTTP 심을 추가해 OpenClaw API 형태는 그대로 두고, Headroom ContentRouter가 JSON용 SmartCrusher, AST용 CodeCompressor, 산문용 Kompress-base를 선택하며 CCR이 원문을 로컬에 보관해 필요 시 정확히 꺼냅니다. 운영팀은 게이트웨이 Skill·MCP 레지스트리·launchd 스케줄을 다시 쓰지 않고도 HTTP 경계에서 입력 토큰을 체계적으로 줄일 수 있습니다.
아키텍처: 세 가지 통합
┌─────────────────────────────────────────────────────────────┐
│ OpenClaw Gateway (launchd) │
│ skills · MCP tools · scheduled nightly audit jobs │
└───────────────────────────┬─────────────────────────────────┘
│ HTTPS (Anthropic-compatible)
▼
┌─────────────────────────────────────────────────────────────┐
│ Headroom Proxy 127.0.0.1:8787 (launchd or headroom wrap) │
│ CacheAligner → ContentRouter → SmartCrusher / Code / CCR │
└───────────────────────────┬─────────────────────────────────┘
│ compressed /v1/messages
▼
api.anthropic.com (or Bedrock/OpenRouter)
| 모드 | 용도 | OpenClaw 훅 |
|---|---|---|
| 프록시 + env | 프로덕션, 코드 변경 없음 | ANTHROPIC_BASE_URL=http://127.0.0.1:8787 LaunchAgent plist에 |
| headroom wrap openclaw | 개발 노트북, 빠른 A/B | CLI 래핑; ContextEngine 플러그인 경로 설치 |
| Headroom MCP | MCP 클라이언트 내 임시 도구 페이로드 압축 | OpenClaw MCP 서버와 함께 headroom mcp install |
인용: ANTHROPIC_BASE_URL을 http://127.0.0.1:8787로 두면 모든 OpenClaw 모델 호출이 Headroom /v1/messages 압축기를 거치며 Skill 재작성이 필요 없습니다.
비용 매트릭스: 전후
| 워크로드 | 이전 | 이후 | 절감 | OpenClaw 적합 |
|---|---|---|---|---|
| 코드 검색(100건) | 17,765 | 1,408 | 92% | 야간 grep+목록 |
| SRE 인시던트 | 65,694 | 5,118 | 92% | 게이트웨이 로그+MCP |
| GitHub 이슈 | 54,174 | 14,761 | 73% | Webhook 루프 |
| 코드베이스 탐색 | 78,502 | 41,254 | 47% | 넓은 tools.fs |
| 대표 야간 감사 | ~40,000 | ~12,000 | ~70% | 다중 리포 launchd |
재무 환산: 입력 토큰 $3/M(Sonnet급 가정)에서 야간 작업 4만 → 1.2만은 회당 약 $0.084 절감—매일 1회면 저장소당 월 ~$2.50. 20개 저장소면 감사 깊이를 줄이지 않고 Mac mini M4 임대 비용을 회수할 수 있습니다.
시나리오 A: 야간 자동 코드 감사
목표: 현지 02:00에 OpenClaw가 구성된 워크스페이스를 스캔하고, 정적 검사를 실행하며, 요약 아티팩트를 만들고 Slack에 게시—헤드리스 Mac에서 무인 운영.
Headroom 없음: eslint, swiftlint 또는 커스텀 MCP linter 출력이 컨텍스트를 범람하고, 에이전트가 매 턴 전체 JSON을 다시 읽습니다. 작업이 30분을 넘기고 레이트 리밋에 걸립니다.
Headroom 있음: 프록시가 JSON 배열과 로그 tail을 압축하고, CCR로 발견에 원문 증거가 필요할 때만 headroom_retrieve를 호출합니다. launchd 예약 작업·게이트웨이 정렬 가이드와 연계해 curl -sf http://127.0.0.1:8787/health 성공 후에만 StartCalendarInterval 감사를 실행하세요.
처리량: 입력 토큰이 약 70% 줄면 같은 M4 호스트가 밤에 2–3배 더 많은 저장소를 처리합니다—CPU는 거대 프롬프트 대기가 아니라 도구 실행에 묶입니다.
시나리오 B: 대화형 게이트웨이 + 상시 프록시
목표: 주간에 엔지니어가 OpenClaw 브리지로 채팅하고, 야간 작업이 같은 게이트웨이 호스트를 공유합니다.
위험: 16GB M4에서 RAM 여유 없이 --llmlingua를 켜면 Headroom 프록시 OOM이 날 수 있습니다.
완화: 기본 프록시는 LLMLingua 없이(Headroom 문서 기준 약 1GB RAM); 기존 동시성 매트릭스로 OpenClaw 세션 상한; /stats를 Prometheus에 노출해 headroom_tokens_saved_total을 추적합니다. 대화형 트래픽과 야간 배치가 같은 호스트를 공유할 때 메모리·큐 병목을 조기에 발견할 수 있습니다.
권장 경로
- launchd 프로덕션은 plist에 ANTHROPIC_BASE_URL 고정— 게이트웨이 환경 변수 우선순위 매트릭스.
- 감사에 컴플라이언스용 원문 파일 스니펫이 필요하면 CCR을 유지(기본)—되돌릴 수 없는 호스팅 압축기는 쓰지 마세요.
- 기업 이그레스는 이그레스 프록시 TLS 허용 목록 준수.
- 일주일 후 절감이 40% 미만이면
/stats-history를 확인—짧은 채팅 위주 워크로드일 가능성이 큽니다. Headroom의 스위트 스팟은 두꺼운 도구 출력입니다.
Runbook: Mac mini M4 8단계
1. Headroom 설치
pip install "headroom-ai[proxy,mcp]"
headroom --version
2. 로컬 프록시 시작 및 헬스 확인
headroom proxy --host 127.0.0.1 --port 8787 \
--log-file ~/.headroom/openclaw-proxy.jsonl
curl -s http://127.0.0.1:8787/health | jq .
테스트 호출 후 "optimize": true와 tokens_saved 증가를 확인하세요(프록시 문서).
3. 베이스라인 토큰 지출(OpenClaw 작업 1회)
프록시 없이(Anthropic 직결)대표 감사를 1회 실행합니다. Anthropic 대시보드 또는 게이트웨이 로그에서 입력 토큰을 기록하세요. Anthropic 문서.
4. LaunchAgent env로 OpenClaw를 Headroom에 연결
OpenClaw 게이트웨이 plist의 EnvironmentVariables 딕셔너리에 추가(프로덕션 경로—.env보다 우선):
<key>ANTHROPIC_BASE_URL</key>
<string>http://127.0.0.1:8787</string>
<key>ANTHROPIC_API_KEY</key>
<string>sk-ant-…</string>
launchctl kickstart…
5. OpenAI 호환(선택)
export OPENAI_BASE_URL=http://127.0.0.1:8787/v1
키는 Keychain/plist.
6. MCP
headroom mcp install
MCP 전송 허용 목록 매트릭스—headroom_ 접두사.
7. 스케줄
#!/bin/bash
set -euo pipefail
curl -sf http://127.0.0.1:8787/health >/dev/null
curl -sf http://127.0.0.1:18789/health >/dev/null # OpenClaw gateway port—adjust
/usr/local/bin/openclaw job run --workspace ~/audits/acme --profile nightly
/stats를 SIEM에.
8. 측정·예산
headroom perf
curl -s http://127.0.0.1:8787/stats | jq '.stats.savings_percent'
--budget 50.0, 3박 <35% 알림.
문제 해결
직접 api.anthropic.com
증상: 만액·/stats 정체.
조치: launchctl print·env 정리·재시작.
행 번호 불일치
증상: 요약만 맞음.
조치: headroom_retrieve·bypass 비교.
502
증상: :8787 거부.
조치: 별도 LaunchAgent, +15s 지연.
혼란도 가지치기 vs 프록시 CCR 선택은
Headroom vs LLMLingua 비교
—의사결정 매트릭스, --llmlingua, 8단계 평가.
FAQ
Skill/MCP 변경?
프록시 모드에서는 코드 변경이 필요 없습니다. ANTHROPIC_BASE_URL로 라우팅합니다. Skill과 MCP 서버는 동일하고 HTTP 경계의 프롬프트 페이로드만 줄어듭니다.
보안 감사 손실?
Headroom은 가역 CCR을 사용합니다—원문은 로컬에 남고 필요 시 모델이 verbatim 청크를 가져옵니다. 벤치마크는 GSM8K에서 ±0, SQuAD v2에서 약 19% 압축 시 97% 정확도입니다. linter JSON 스키마에 대한 골든 파일 테스트는 계속 실행하세요.
이그레스와 차이?
이그레스는 경로·TLS. 이그레스 프록시 TLS 허용 목록 Headroom은 localhost LLM 셈.
Claude Code 공존?
예. headroom wrap claude와 교차 에이전트 공유 메모리를 지원합니다. OpenClaw 게이트웨이는 plist 고정 env; 대화형 개발만 wrap 모드로 env 충돌을 피하세요.
야간 절감?
도구 집약 감사는 Headroom 공개 에이전트 워크로드 기준 50–85% 입력 감소가 흔합니다. 채팅 위주 게이트웨이는 < 30%일 수 있습니다—/stats-history로 1주 측정 후 재무에 80%를 약속하세요.