AI Frontier

Ускорение локальных LLM: Headroom сжимает контекст агента на 95 % для быстрых ответов инструментов

MacHTML Lab2026.06.08 ~11 мин чтения
Headroom сжимает задержку локальных LLM-агентов Ollama на Mac mini

Вы подключили Ollama, DeepSeek или Llama к фреймворку агента, попросили прочитать весь monorepo — и интерфейс завис на три–восемь минут: не сбой, а prefill, тонущий в JSON инструментов. На Mac mini M4 с 16–32 ГБ унифицированной памяти локальные модели упираются в потолок, когда один ход отправляет 40–80 тыс. токенов вывода npm test, SQL-дампов или результатов ripgrep. Облачные API тарифицируют по объёму; локальный GPU сжигает реальное время на attention за каждый байт.

Headroom сжимает выводы инструментов, логи и блоки RAG до попадания в модель — опубликованные нагрузки показывают сжатие на 92 % для SRE-трасс и 73–92 % для поиска по коду. Это руководство Type A ставит Headroom перед OpenAI-совместимым API Ollama: инструменты агента не меняются, но модель видит 5 тыс. токенов вместо 50 тыс. токенов сена. Контроль расходов через облачный шлюз: OpenClaw + прокси Headroom; локальный торговый стек без API: TradingAgents на Ollama.

Раскрытие: MacHTML предлагает опциональную аренду облачного Mac mini; это руководство применимо к любому локальному хосту macOS или Linux с установленным Ollama.

Почему локальные агенты «зависают» на больших выводах инструментов

На Apple Silicon задержка prefill локальных LLM примерно линейно зависит от длины контекста — нет магии «бесконечного контекста» при 30 tok/s, когда вы заливаете весь CI-лог. Симптомы, которые операторы путают с зависанием:

СимптомВероятная причинаРычаг Headroom
Спиннер после read_file 2-МБ лога50 тыс.+ токенов в одном сообщении инструментаSmartCrusher / LogCompressor
Первый ход быстрый, 5-й зависаетНакопление контекста через несколько ходов инструментовCCR + IntelligentContext drops
Давление на RAM, swap на Mac mini 16 ГБKV-кэш + огромный promptСокращение prefill-токенов на 60–95 %
«На GPT-4o работало»Облачная модель шире / кремний быстрееЛокально нужны сжатие + меньший эффективный контекст

Цитата: На железе класса Mac mini маршрутизация трафика агента через Headroom на 127.0.0.1:8787 к Ollama на 11434 может сократить prompt'ы с большим объёмом инструментов на 60–95 % и вернуть субминутные ходы инструментов, невозможные с сырыми логами.

Внешние ссылки: Headroom GitHub, документация прокси, API Ollama.

Архитектура слоя сжатия

┌──────────────┐  工具 JSON/日志   ┌─────────────────────┐  压缩后      ┌─────────────┐
│ Agent        │ ────────────────► │ Headroom 代理       │ ───────────►│ Ollama      │
│ (OpenClaw、  │  OPENAI_BASE_URL  │ :8787               │  聊天 API    │ :11434/v1   │
│  LangGraph、 │  = localhost:8787 │ SmartCrusher + CCR  │              │ llama3 等   │
│  Aider…)     │                   │                     │              │             │
└──────────────┘                   └─────────────────────┘              └─────────────┘

Прокси Headroom предоставляет OpenAI-совместимый /v1/chat/completions — тот же интерфейс, что и у Ollama. Вы направляете клиент агента на Headroom; Headroom сжимает и пересылает на upstream URL Ollama.

Пошаговое руководство (Ollama + Headroom)

1. Базовый Ollama на хосте

ollama --version
ollama pull llama3.2:3b          # 或 deepseek-r1:7b、qwen2.5-coder 等
curl -s http://127.0.0.1:11434/api/tags | python3 -m json.tool

Выберите модель по объёму RAM: 3B–8B на Mac mini 16 ГБ для циклов агента; 14B+ требует 32 ГБ+ для комфортного запаса KV.

2. Установка стека прокси Headroom

python3 --version   # 3.10+
pip install "headroom-ai[proxy]"
headroom --version

3. Запуск Headroom с указанием на Ollama

export OPENAI_API_KEY=ollama-local
export OPENAI_TARGET_API_URL=http://127.0.0.1:11434/v1
headroom proxy --host 127.0.0.1 --port 8787 \
  --log-file ~/.headroom/ollama-agent.jsonl

Проверка:

curl -s http://127.0.0.1:8787/health | python3 -m json.tool

4. Направить SDK агента на Headroom, не напрямую на Ollama

export OPENAI_BASE_URL=http://127.0.0.1:8787/v1
export OPENAI_API_KEY=ollama-local

Локальная модель OpenClaw — настройте в ~/.openclaw/.env; режим входа можно сочетать с OpenClaw + Webhook Ollama.

5. Режим библиотеки для собственного Python-агента

from headroom import compress
import ollama

messages = [...]  # 含臃肿 tool 角色
result = compress(messages, model="llama3.2")
response = ollama.chat(model="llama3.2", messages=result.messages)
print(response["message"]["content"])

Если HTTP оркестрируете сами, режим библиотеки избегает конфликтов портов прокси.

6. Ограничить payload инструментов до сжатия (двойная страховка)

rg -n "ERROR" logs/ | head -n 200

Лучше, чем cat logs/build.log. Headroom спасёт грубые Skill, но лимит 200 строк ограничивает худшую задержку на хосте 16 ГБ.

7. Измерить экономию и задержку

curl -s http://127.0.0.1:8787/stats | python3 -m json.tool

Записывайте tokens_before, tokens_after и реальное время за ход. При первом аудите репозитория цель — сокращение ≥50 %; дампы JSON/поиска часто дают 60–90 %.

8. Опциональный MCP: Claude Code + локальный sidecar Ollama

headroom mcp install

Полезно, когда локальная модель работает в другом терминале — MCP headroom_stats; удобно при смешении сжатия памяти Hermes в облаке и локального Headroom.

9. Персистентность прокси через launchd (постоянно включённый Mac mini)

Создайте ~/Library/LaunchAgents/ai.headroom.ollama.plist, задайте OPENAI_TARGET_API_URL=http://127.0.0.1:11434/v1, загрузите до шлюза агента. Ollama в отдельном LaunchAgent — порядок запуска: Ollama → Headroom → Agent.

10. Регрессионная проверка после смены модели

После ollama pull нового тега перезапустите фикстуру с раздутым инструментом. Выигрыш от квантизации не заменяет сжатие — длина контекста по-прежнему доминирует в prefill.

Шаблон бенчмарка Mac mini

ФикстураИсходные токены (типично)После Headroom (типично)Цель по времени
stderr npm test упавшего набора25–45 тыс.3–8 тыс.Prefill M4 16 ГБ <45 с
Список find . -name '*.ts'15–30 тыс.2–5 тыс.<30 с
Один JSON API-дамп 500 КБ40–70 тыс.4–10 тыс.<60 с

Для каждой фикстуры один раз обойдите прокси (заголовок x-headroom-bypass: true), зафиксируйте зависание, которое нужно устранить — цифры в wiki команды.

Устранение неполадок

Агент всё ещё подключается напрямую к 11434

Симптом: ноль запросов в Headroom /stats.

Исправление: проверьте окружение процесса (ps eww -p $(pgrep -f your-agent)). OPENAI_BASE_URL у процесса агента должен быть http://127.0.0.1:8787/v1, а не только в конфиге shell.

Ollama 404 модель не найдена через прокси

Симптом: upstream 404 в логах Headroom.

Исправление: имя модели в chat-запросе должно совпадать с ollama list; сначала pull локально — Headroom не управляет файлами моделей.

Сжатие удаляет нужные строки стека

Симптом: в аудите нет номеров строк.

Исправление: включите CCR-извлечение в Skill («вызвать headroom_retrieve, если стек неполный») или обойдите один ход. Не отключайте сжатие глобально.

Mac mini заблокирован swap'ом

Симптом: memory_pressure критический во время работы агента.

Исправление: меньшая квантизация (:q4_0), меньше параллельных инструментов, добавьте Headroom. На 16 ГБ избегайте 14B + 80 тыс. сырых токенов одновременно.

Частые вопросы

Headroom работает только с облачным OpenAI?

Нет. Прокси сжимает и пересылает на любой OpenAI-совместимый upstream — Ollama, локальный vLLM или облако. Укажите OPENAI_TARGET_API_URL на локальный сервис.

Реалистично ли сжатие 95 %?

Некоторые нагрузки агентов публично достигают 92 %; в смешанных репозиториях обычно 60–80 %. Измеряйте через /stats — не предполагайте маркетинговый потолок на каждом ходу.

Помогает ли от перегрева GPU?

По сравнению с гигантским сырым prompt'ом меньше работы prefill снижает нагрев — но непрерывные циклы инструментов всё равно нагружают CPU/GPU. На Mac mini следите за powermetrics.

Headroom vs Hermes trajectory_compressor?

Hermes сжимает долгую память диалога; Headroom сжимает payload инструментов и RAG на уровне HTTP/библиотеки. Оба можно использовать вместе в гибриде облако/локально.

Нужен ли Headroom с облачным Anthropic?

Опционально для контроля расходов; локальные модели часто зависят от него, чтобы оставаться пригодными. Для смешения провайдеров см. облачный OpenClaw Headroom.

Развернуть Ollama + Headroom на облачном Mac mini

Запускайте прокси и Ollama на Apple Silicon через SSH/VNC — проверьте порты, порядок LaunchAgent и бенчмарки с раздутыми инструментами перед выводом цикла агента в прод.

Headroom + Ollama
Локальная LLM — без цен