
Многие разработчики в последнее время используют облачные LLM для генерации программного кода, в том числе с помощью агентов. Но это вызывает как минимум две проблемы:
-
Утечка информации: мы не знаем, какие данные LLM передаёт в облако
-
Бесконтрольный расход токенов, особенно в случае автоматических агентов, которые запускаются в автономную работу на длительный период
Для этого есть специальные инструменты мониторинга. Например, Tokentap (бывший Sherlock) отслеживает использование токенов для LLM CLI в реальном времени на панели в консоли. Такой MitM-прокси полезен для информационной безопасности и просто для учёта расходов.
Особенности программы:
-
Отслеживание использования токенов: сколько токенов потребляет каждый запрос.
-
Мониторинг контекстных окон: визуальный индикатор показывает, сколько накопилось токенов, по сравнению с лимитом.
-
Отладка подсказок: автоматически сохраняет каждый запрос в форматах Markdown и JSON для просмотра.
-
Простая конфигурация (точнее, её отсутствие): программа работает сразу после установки, не требует сертификатов или дополнительной настройки.
Установка
Для установки Tokentap на Linux желательно сначала поставить пакеты pip и pipx. Тогда инсталляция с автоматической установкой виртуального окружения проходит проще всего:
pipx install tokentap

Как вариант, можно вручную установить из исходников, но тогда нужно будет вручную установить venv:
git clone https://github.com/jmuncor/tokentap.git
cd tokentap
pip install -e .
Затем запускаем прокси:
tokentap start
Программа предложит сохранить перехваченные промты, а затем появится консоль такого вида:
┌─────────────────────────────────────────────────────────────┐
│ TOKENTAP - LLM Traffic Inspector │
├─────────────────────────────────────────────────────────────┤
│ Context Usage ████████████░░░░░░░░░░░░░░░░ 42% │
│ (84,231 / 200,000 tokens) │
├─────────────────────────────────────────────────────────────┤
│ Time Provider Model Tokens │
│ 14:23:01 Anthropic claude-sonnet-4-20250514 12,847 │
│ 14:23:45 Anthropic claude-sonnet-4-20250514 8,234 │
│ 14:24:12 Anthropic claude-sonnet-4-20250514 15,102 │
├─────────────────────────────────────────────────────────────┤
│ Last Prompt: "Can you help me refactor this function..." │
└─────────────────────────────────────────────────────────────┘
Или можно сразу запустить установленную локальную LLM через прокси:
# Для Claude Code
tokentap claude
# Для Gemini CLI
tokentap gemini
# Для OpenAI Codex
tokentap codex
Пока поддерживаются три провайдера LLM, все они обычно используются для программирования из консоли, в том числе запуска агентов.
Предположим, мы установили в системе Gemini CLI и подключились к аккаунту Google. Теперь запускаем прокси командой tokentap gemini:

MitM-прокси
Схема работы прокси:
┌─────────────────────────────────────────────────────────────────┐
│ Terminal 1: tokentap start │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ HTTP Proxy (localhost:8080) ││
│ │ Dashboard ││
│ │ Prompt Archive ││
│ └─────────────────────────────────────────────────────────────┘│
└───────────────────────────────┬─────────────────────────────────┘
│ HTTP
│
┌───────────────────────────────┴─────────────────────────────────┐
│ Terminal 2: tokentap claude │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ Sets ANTHROPIC_BASE_URL=http://localhost:8080 ││
│ │ Runs: claude ││
│ └─────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────┘
│
│ HTTPS
▼
┌───────────────────┐
│ api.anthropic.com │
└───────────────────┘
Опции при запуске:
tokentap start [OPTIONS]
Options:
-p, --port NUM Proxy port (default: 8080)
-l, --limit NUM Token limit for fuel gauge (default: 200000)
Что показывает информационная панель:
-
Зелёный индикатор: < 50% от лимита токенов
-
Жёлтый: 50-80% от лимита
-
Красный: > 80% от лимита
Каждый перехваченный запрос сохраняется в выбранный каталог в форматах Markdown (человекочитаемый формат для удобства) и JSON (исходное тело запросов API для отладки
При выходе из LLM-CLI отображается сводка сессии в таком формате:
Session complete. Total: 84,231 tokens across 12 requests.
Судя по фрагменту исходного кода, программа работает как расширение для mitmproxy, известного HTTPS-прокси.

Локальные модели
Чтобы избежать утечки информации, специалисты по безопасности рекомендуют использовать локальные модели из набора Hugging Face. Все модели на этом сайте доступны для скачивания:

Модели работают через оболочку инференса llama.ccp следующим образом:
# Использовать файл локальной модели
llama-cli -m my_model.gguf
# Скачать и запустить модель напрямую с Hugging Face
llama-cli -hf ggml-org/gemma-3-1b-it-GGUF
# Запустить OpenAI-совместимый сервер API
llama-server -hf ggml-org/gemma-3-1b-it-GGUF

Оболочка для инференса llama.ccp основана на тензорной библиотеке машинного обучения ggml, которая обеспечивает высокую производительность больших моделей на стандартном компьютерном железе. Библиотека не имеет внешних зависимостей, работает на любой аппаратной платформе и не выдвигает высоких требований к конфигурации ПК.
Несколько недель назад автор ggml Георгий Герганов объявил о том, что небольшой коллектив разработчиков теперь войдёт в состав компании Hugging Face, что гарантирует дальнейшую разработку интерфейса для локального запуска моделей ИИ (Local AI). Проекты ggml остаются открытыми и управляемыми сообществом, а дополнительное внимание в ближайшее время уделят интеграции с библиотекой transformers от Hugging Face для улучшенной поддержки моделей.
Разработчики считают, что сейчас локальный инференс «становится значимой и конкурентоспособной альтернативой облачному». Для будущей сверхмощной системы ИИ важно, чтобы она работала по распределённой модели на железе пользователей, а не в дата-центре коммерческой корпорации.
Примечание. Локальная LLM может быть установлена на компьютер даже без ведома пользователя. Например, последние версии браузера Chrome принудительно устанавливают локальную модель Gemini Nano, не предупреждая об этом.
Отключить эту опцию можно с помощью параметров Optimization Guide On Device Model и Prompt API в браузере, которые изменяются через chrome://flags/.

После этого модно удалить модель размером около 4 ГБ в папке AppData/Local/Google/Chrome/User Data/OptGuideOnDeviceModel/.
И в локальной, и в облачной нейронной модели для информационной безопасности желательно отслеживать, какие промты и токены к ней поступают, как она она их обрабатывает и какой выдаёт результат. Для облачной модели — также отслеживать и логгировать внешний трафик. Если мы не контролируем действия модели, то ей нельзя полностью доверять.


