Pastukhov Agent включает встроенный прокси-сервер, который перехватывает весь трафик между Claude Code CLI и AI-провайдерами (Anthropic, OpenAI, DeepSeek). Прокси обеспечивает логгирование запросов в реальном времени, конвертацию протоколов на лету и подсчёт потребления токенов с расчётом стоимости.

Обзор
Прокси запускается как фоновый сервис при старте Pastukhov Agent и слушает на динамическом порту 127.0.0.1. Claude Code CLI автоматически подключается через переменную ANTHROPIC_BASE_URL, перенаправляя весь API-трафик через прокси.
- Логгирование трафика — полное сохранение запросов и ответов в SQLite с 30-дневным хранением
- Конвертация протоколов — прозрачное преобразование между Anthropic, OpenAI и DeepSeek API
- Подсчёт токенов — извлечение token usage из стриминговых и не-стриминговых ответов
- Расчёт стоимости — автоматический расчёт по ценам моделей с учётом кэширования
- Обновления в реальном времени — SignalR-трансляция статистики в UI мгновенно
- Просмотрщик трафика — веб-интерфейс для просмотра всех запросов по чатам с JSON-просмотрщиком
Как это работает
При запуске экземпляра Claude Code, Pastukhov Agent подменяет переменную окружения ANTHROPIC_BASE_URL на адрес прокси: http://127.0.0.1:{порт}/{окружение}/{chatId}/v1/messages. Все запросы проходят через прокси, который обрабатывает их по следующей схеме:
- Прокси принимает запрос от Claude Code CLI
- Определяет тип провайдера из конфигурации окружения
- Конвертирует запрос в целевой протокол (если нужно)
- Форвардит на upstream API-провайдер
- Извлекает token usage из ответа
- Логирует в SQLite и обновляет статистику чата
- Транслирует ответ обратно Claude Code CLI
Прокси слушает только на 127.0.0.1 (localhost), что обеспечивает безопасность — трафик не покидает пределы машины. API-ключи фильтруются из логов.
Конвертация протоколов
Прокси поддерживает несколько типов провайдеров. Тип провайдера определяется переменной окружения AGENT_PROXY_TYPE (например, AGENT_PROXY_TYPE).
anthropic (проброс)
При значении anthropic прокси работает в режиме проброса — запросы и ответы передаются без изменения. Используется при работе напрямую с Anthropic API. Прокси извлекает token usage из стриминговых событий message_start и message_delta.
openai
При значении openai прокси конвертирует Anthropic-формат запросов в OpenAI-формат. Маршрут /v1/messages преобразуется в /v1/chat/completions, автоматически инжектируется stream_options: { include_usage: true } для стримингового извлечения token usage.
deepseek
При значении deepseek прокси обеспечивает полную трансформацию между Anthropic и DeepSeek API. Включает нормализацию сообщений, переупорядочивание tool_use/tool_result, кэширование reasoning_content и подмену имён моделей. Для DeepSeek также доступна дополнительная конфигурация через JSON-настройки провайдера.
anthropicdeepseek
При значении anthropicdeepseek прокси направляет запросы через OpenRouter, используя Anthropic-протокол. Полезно при доступе к DeepSeek через OpenRouter с Anthropic-совместимым API.
direct (без прокси)
При значении direct прокси полностью отключается — Claude Code CLI подключается напрямую к API-провайдеру. Логгирование и подсчёт токенов через прокси недоступны.
Настройка
Прокси настраивается через переменные окружения в конфигурации окружения (.pastukhov/environments.yml):
# Тип прокси (обязательный)
AGENT_PROXY_TYPE: anthropic # anthropic | openai | deepseek | anthropicdeepseek | direct
# Базовый URL upstream-провайдера (обязательный для всех типов, кроме direct)
ANTHROPIC_BASE_URL: https://api.anthropic.com
# Исходящий HTTP-прокси для запросов к upstream (опционально)
HTTP_PROXY: http://proxy.company.com:8080
HTTPS_PROXY: http://proxy.company.com:8080
Для DeepSeek можно задать дополнительные настройки через конфигурацию провайдера в окружении:
# Настройки DeepSeek-провайдера (JSON)
AGENT_PROXY_SETTINGS: |
{
"thinking": "enabled", # enabled | disabled | pass-through
"reasoningEffort": "high", # low | medium | high | max
"defaultModel": "deepseek-chat", # модель по умолчанию
"missingReasoningStrategy": "reject" # reject | placeholder
}
Просмотрщик трафика
Веб-интерфейс для просмотра прокси-трафика доступен по маршруту /proxy. Страница содержит:
- Карточки обзора — общее количество чатов, запросов, токенов и ошибок
- Таблица чатов — сортируемый список всех чатов с агрегированной статистикой (токены, стоимость, время)
- Страница деталей (
/proxy/{chatId}) — все сообщения чата в хронологическом порядке с JSON-просмотрщиком для request/response
Статистика обновляется в реальном времени через SignalR — новый запрос появляется в интерфейсе мгновенно без перезагрузки страницы.
Статистика и расчёт стоимости
Прокси извлекает данные о потреблении токенов из каждого ответа API и рассчитывает стоимость по ценам моделей:
- Claude Opus — $15 / $75 за миллион токенов (input / output)
- Claude Sonnet — $3 / $15 за миллион токенов
- Claude Haiku — $0.80 / $4 за миллион токенов
- DeepSeek Chat — $0.27 / $1.10 за миллион токенов
- DeepSeek Reasoner — $0.55 / $2.19 за миллион токенов
- GPT-4o, o1, o3 — цены OpenAI-моделей
Учитываются все типы токенов: prompt, completion, cache_read, cache_write. Данные о токенах и стоимости отображаются в интерфейсе чата рядом с каждым сообщением (при включённой настройке «Показать токены сообщения» — см. Настройки → Чат).
Хранение данных
Прокси использует отдельную SQLite-базу данных для хранения логов запросов и кэша рассуждений:
- request_logs — полный лог запросов с заголовками, телами, token counts, длительностью, ошибками. Автоочистка через 30 дней.
- reasoning_cache — кэш reasoning_content от DeepSeek для восстановления контекста. Автоочистка через 7 дней.
База данных расположена в .pastukhov/proxy.db рядом с основной базой проекта. API-ключи и секреты автоматически фильтруются из сохранённых данных.
REST API
Прокси предоставляет REST API для программного доступа к логам и статистике:
- GET /api/proxy/status — проверить, запущен ли прокси
- GET /api/proxy/logs — список запросов с фильтрами
- GET /api/proxy/chats — список чатов с агрегированной статистикой
- GET /api/proxy/chats/{chatId}/messages — все сообщения конкретного чата
- GET /api/proxy/logs/{requestId} — подробный лог конкретного запроса
Переменные окружения
- AGENT_PROXY_TYPE — тип прокси:
anthropic,openai,deepseek,anthropicdeepseek,direct - ANTHROPIC_BASE_URL — базовый URL upstream API-провайдера
- HTTP_PROXY / HTTPS_PROXY — исходящий HTTP-прокси для запросов к upstream
← Назад: Telegram Bot
Далее: Настройки →