---
title: "Прокси-сервер"
id: "986"
type: "page"
slug: "proxy"
published_at: "2026-06-23T15:23:34+00:00"
modified_at: "2026-06-30T21:07:26+00:00"
url: "https://pastukhov.com/agent/docs/proxy"
markdown_url: "https://pastukhov.com/agent/docs/proxy.md"
excerpt: "Pastukhov Agent включает встроенный прокси-сервер, который перехватывает весь трафик между Claude Code CLI и AI-провайдерами…"
---

# Прокси-сервер

[https://pastukhov.com/agent/docs/proxy.md](https://pastukhov.com/agent/docs/proxy.md)

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

![Веб-интерфейс просмотрщика прокси-трафика Pastukhov Agent](https://pastukhov.com/wp-content/uploads/2026/06/proxy-traffic-viewer.png)## Обзор

Прокси запускается как фоновый сервис при старте 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`. Все запросы проходят через прокси, который обрабатывает их по следующей схеме:

1. Прокси принимает запрос от Claude Code CLI
2. Определяет тип провайдера из конфигурации окружения
3. Конвертирует запрос в целевой протокол (если нужно)
4. Форвардит на upstream API-провайдер
5. Извлекает token usage из ответа
6. Логирует в SQLite и обновляет статистику чата
7. Транслирует ответ обратно 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. Данные о токенах и стоимости отображаются в интерфейсе чата рядом с каждым сообщением (при включённой настройке «Показать токены сообщения» — см. [Настройки → Чат](/agent/docs/settings)
).

## Хранение данных

Прокси использует отдельную 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](/agent/docs/telegram)

**Далее:** [Настройки](/agent/docs/settings)
 →
