- BrainTools - https://www.braintools.ru -

Многие разработчики в последнее время используют облачные LLM для генерации программного кода, в том числе с помощью агентов. Но это вызывает как минимум две проблемы:
Утечка информации: мы не знаем, какие данные LLM передаёт в облако
Бесконтрольный расход токенов, особенно в случае автоматических агентов, которые запускаются в автономную работу на длительный период
Для этого есть специальные инструменты мониторинга. Например, Tokentap [1] (бывший 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:

Схема работы прокси:
┌─────────────────────────────────────────────────────────────────┐
│ 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.
Судя по фрагменту исходного кода [2], программа работает как расширение для mitmproxy [3], известного HTTPS-прокси.

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

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

После этого модно удалить модель размером около 4 ГБ в папке AppData/Local/Google/Chrome/User Data/OptGuideOnDeviceModel/.
И в локальной, и в облачной нейронной модели для информационной безопасности желательно отслеживать, какие промты и токены к ней поступают, как она она их обрабатывает и какой выдаёт результат. Для облачной модели — также отслеживать и логгировать внешний трафик. Если мы не контролируем действия модели, то ей нельзя полностью доверять.
Автор: GlobalSign_admin
Источник [12]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/27942
URLs in this post:
[1] Tokentap: https://github.com/jmuncor/tokentap
[2] фрагменту исходного кода: https://github.com/jmuncor/tokentap/blob/fb76605fabbda351828ebc0e042f03d13caee502/sherlock/interceptor.py#L17
[3] mitmproxy: https://www.mitmproxy.org/
[4] Hugging Face: https://huggingface.co/
[5] llama.ccp: https://github.com/ggml-org/llama.cpp
[6] обучения: http://www.braintools.ru/article/5125
[7] ggml: https://github.com/ggml-org/ggml
[8] объявил: https://github.com/ggml-org/llama.cpp/discussions/19759
[9] внимание: http://www.braintools.ru/article/7595
[10] transformers: https://github.com/huggingface/transformers
[11] принудительно устанавливают локальную модель Gemini Nano: https://habr.com/ru/posts/1002320/
[12] Источник: https://habr.com/ru/companies/globalsign/articles/1016612/?utm_campaign=1016612&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.