---
title: "Обвязки"
id: "1111"
type: "page"
slug: "backends"
published_at: "2026-08-02T11:29:48+00:00"
modified_at: "2026-08-03T14:00:30+00:00"
url: "https://pastukhov.com/agent/docs/backends"
markdown_url: "https://pastukhov.com/agent/docs/backends.md"
excerpt: "Pastukhov Agent нейтрален к движку: он оборачивает любой CLI-агент программирования и превращает его в полноценный…"
---

# Обвязки

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

Pastukhov Agent нейтрален к движку: он оборачивает любой CLI-агент программирования и превращает его в полноценный веб-интерфейс с чатом, файлами, diffs, сборками, сессиями и аналитикой. Из коробки доступны пять встроенных обвязок — **Claude Code** (по умолчанию), **Codex**, **Reasonix**, **OpenCode** и **Pi**, — а подключение любой новой занимает около суток по запросу.

Все обвязки реализуют единый интерфейс `IAgentBackend`, поэтому для вас они выглядят одинаково: тот же интерфейс чата, те же навыки, хуки, сборки и статистика. Меняется только «движок» под капотом — какой CLI-бинарник реально запускается на каждое сообщение.

## Как это работает

Обвязка выбирается переменной окружения `AGENT_BACKEND`, которая задаётся в конфигурации **окружения** (см. [Окружения](/agent/docs/environments)
). Разрешение происходит по тому же принципу, что и остальные переменные:

1. Берётся окружение, выбранное для чата;
2. Если не задано — используется настройка `selectedEnvironment`;
3. Если и её нет — берётся окружение `default`;
4. Из результирующего набора переменных читается `AGENT_BACKEND`. Если её нет — используется `claude-code`.

Допустимые значения: `claude-code` (по умолчанию), `codex`, `reasonix`, `opencode`, `pi`. Таким образом, переключить движок можно для каждого чата отдельно — достаточно сменить у него окружение.

**Авто-установка.** Если нужного бинарника нет в `PATH`, Pastukhov Agent установит его сам при первом сообщении через `npm install -g <пакет>`, а прогресс в реальном времени покажет прямо в чате. Устанавливать что-либо вручную обычно не нужно.

## Встроенные обвязки

- **Claude Code** — `@anthropic-ai/claude-code`. Базовая обвязка, по умолчанию. Полная поддержка: внутренний прокси, сабагенты, навыки, переключение моделей.
- **Codex** — `@openai/codex`. Модели GPT-5 от OpenAI. Вход через подписку ChatGPT (Go/Plus/Pro, безлимит) либо по prepaid API-ключу. *Протестирован отлично — работает полностью.*
- **OpenCode** — `opencode-ai`. Движок-агностик: подключаете любой свой провайдер (Anthropic, OpenAI, Gemini, локальная модель).
- **Pi** — `@earendil-works/pi-coding-agent`. Минимальный расширяемый агент из pi.dev. Тоже работает с любым провайдером по вашему ключу.
- **Reasonix** — `reasonix`. DeepSeek-native агент (reasonix.io): модели DeepSeek-V4 Flash/Pro, контекст 1М токенов. Ключ DeepSeek, без подписки. *Протестирован отлично — работает полностью.*

## Как подключить обвязку

Подключение сводится к созданию окружения с правильной переменной `AGENT_BACKEND` и аутентификационными данными нужного движка:

1. Откройте **Настройки → Окружения** и нажмите «Создать»;
2. Выберите готовый шаблон провайдера — **Codex**, **Reasonix**, **OpenCode** или **Pi** (они уже содержат `AGENT_BACKEND` и нужные переменные);
3. Заполните API-ключ или выполните вход (для Codex — кнопка `/login` с подпиской ChatGPT);
4. Выберите это окружение у чата — при первом сообщении бинарник установится автоматически.

Либо создайте окружение типа **Custom** и задайте переменные вручную — это даёт полный контроль. Пример для Codex:

```
AGENT_BACKEND=codex
CODEX_API_KEY=$CODEX_API_KEY      # или вход через ChatGPT вместо ключа
MODEL=gpt-5.6-sol
```

## Claude Code (по умолчанию)

Эталонная обвязка, на которой работает всё остальное. Пакет `@anthropic-ai/claude-code` (по умолчанию 2.1.217), бинарник `claude`. Поддерживает внутренний прокси-сервер для логгирования трафика и подсчёта стоимости, сабагенты, навыки и переключение моделей Opus/Sonnet/Haiku на лету.

Аутентификация — через стандартные переменные Anthropic:

- `ANTHROPIC_API_KEY` — прямой ключ Anthropic;
- `ANTHROPIC_AUTH_TOKEN` — токен для совместимых прокси (например, z.ai);
- `ANTHROPIC_BASE_URL` — адрес upstream-провайдера или прокси.

## Codex

OpenAI Codex CLI — модели GPT-5. Пакет `@openai/codex` (по умолчанию 0.146.0), бинарник `codex`, запускается в режиме `codex exec --json`: один процесс на сообщение, события стримятся как NDJSON, завершение — по выходу процесса. Сессии сохраняются и возобновляются через `resume`.

**Два способа аутентификации**, управляемые переменной `CODEX_AUTH` (`auto` по умолчанию):

- **Подписка ChatGPT** (`CODEX_AUTH=chatgpt`) — безлимитное использование по плану Go/Plus/Pro. Вход выполняется командой `/login` через device-code: открывается ссылка `auth.openai.com`, вводится код, учётка сохраняется в `~/.codex/auth.json`. Квота подписки отслеживается встроенным сервисом.
- **API-ключ** (`CODEX_AUTH=apikey` или когда логина нет) — prepaid-кредиты. Переменные `OPENAI_API_KEY`/`CODEX_API_KEY` и опционально `OPENAI_BASE_URL` для прокси.

В режиме `auto` (по умолчанию) Pastukhov Agent сам выбирает: если есть логин ChatGPT — идёт подписка, иначе — API-ключ.

Доступные модели: `gpt-5.6-sol` (флагман), `gpt-5.6-luna` (быстрая и недорогая). Задаются переменной `MODEL`.

**Codex протестирован отлично и работает полностью** — чат, инструменты, сессии, аналитика и трекинг квоты подписки.

## OpenCode

Движок-агностик с opencode.ai. Пакет `opencode-ai` (актуальная версия), бинарник `opencode`, запуск `opencode run --format json`. Альтернативная установка одним скриптом: `curl -fsSL https://opencode.ai/install | bash`.

Аутентификация — **свой ключ провайдера** (подписок нет):

- `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY` — ключ нужного провайдера;
- `LOCAL_ENDPOINT` — для локальной модели;
- любые переменные с префиксом `OPENCODE_`.

Модель задаётся в формате «провайдер/модель», например `MODEL=anthropic/claude-sonnet-4-20250514`.

## Pi

Минимальный расширяемый агент из pi.dev. Пакет `@earendil-works/pi-coding-agent` (актуальная версия), бинарник `pi`, запуск в режиме `pi --mode rpc` — Pastukhov Agent общается с ним по RPC-протоколу (команды `set_model` и т. п.), сессии сохраняются в JSONL и возобновляются после перезапуска.

Аутентификация — **свой ключ провайдера**, как у OpenCode:

- `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY`, `LOCAL_ENDPOINT`;
- любые переменные с префиксом `PI_`.

Модель — в формате «провайдер/модель:мышление», например `MODEL=anthropic/claude-sonnet-4-20250514:medium` (суффикс `:thinking` задаёт уровень размышлений).

## Reasonix

DeepSeek-native coding-агент (reasonix.io). Пакет `reasonix` (актуальная версия), бинарник `reasonix`, запуск `reasonix run --output-format stream-json --auto`: один процесс на сообщение, события стримятся как NDJSON, завершение — по выходу процесса. Сессии сохраняются в JSONL и возобновляются через `--resume`.

Аутентификация — **ключ DeepSeek** (без подписки, prepaid-кредиты):

- `DEEPSEEK_API_KEY` — ключ для `api.deepseek.com`;
- для произвольного OpenAI-compatible провайдера (OpenRouter и т. п.) — `REASONIX_BASE_URL`, `REASONIX_API_KEY` и модель (`REASONIX_MODEL` либо `MODEL`).

Reasonix читает ключи провайдера **только** из своего конфига (`<REASONIX_HOME>/.env`), а не из переменных окружения — но Pastukhov Agent сам подкладывает туда разрешённые ключи перед запуском, вручную ничего настраивать не нужно.

Модели DeepSeek — Flash (быстрая, по умолчанию) и Pro. Контекстное окно — 1М токенов. Задаются переменной `MODEL` в формате «провайдер/модель» (например `deepseek/deepseek-v4-pro`); готовые шаблоны окружения Reasonix уже содержат правильное значение.

**Reasonix протестирован отлично и работает полностью** — чат, инструменты, рассуждения, сессии и аналитика.

## Справочник переменных

- **AGENT_BACKEND** — выбор обвязки: `claude-code` (по умолчанию), `codex`, `reasonix`, `opencode`, `pi`
- **CLAUDE_PATH / CODEX_PATH / REASONIX_PATH / OPENCODE_PATH / PI_PATH** — путь к конкретному бинарнику (переопределение авто-поиска)
- **CLAUDE_CODE_VERSION / CODEX_VERSION / REASONIX_VERSION / OPENCODE_VERSION / PI_VERSION** — зафиксировать версию при авто-установке
- **CODEX_AUTH** — способ входа в Codex: `auto` (по умолчанию), `chatgpt`, `apikey`
- **OPENAI_API_KEY / CODEX_API_KEY** — prepaid-ключ OpenAI для Codex (+ `OPENAI_BASE_URL` для прокси)
- **DEEPSEEK_API_KEY** — ключ DeepSeek для Reasonix; либо `REASONIX_BASE_URL` + `REASONIX_API_KEY` для OpenAI-compatible провайдера (OpenRouter и т. п.)
- **MODEL** — модель в формате, принятом обвязкой (имя для Codex, `провайдер/модель` для OpenCode и Reasonix, `провайдер/модель:thinking` для Pi)

## Установка и версии

По умолчанию бинарники ставятся автоматически через npm при первом использовании. Если нужно поставить вручную:

```
npm install -g @anthropic-ai/claude-code   # Claude Code
npm install -g @openai/codex               # Codex
npm install -g reasonix                    # Reasonix (либо: brew install esengine/reasonix/reasonix)
npm install -g opencode-ai                 # OpenCode (либо: curl -fsSL https://opencode.ai/install | bash)
npm install -g @earendil-works/pi-coding-agent  # Pi
```

Версию можно зафиксировать переменной окружения (например `CODEX_VERSION=0.146.0`), либо указать точный путь к бинарнику через `*_PATH` — тогда авто-установка не понадобится вовсе.

## Статус и поддержка

- **Claude Code** — обвязка по умолчанию, работает идеально: полный функционал без ограничений.
- **Codex протестирован отлично** — стабильная полноценная работа: чат, инструменты, сессии, аналитика, трекинг квоты ChatGPT.
- **Reasonix протестирован отлично** — стабильная полноценная работа: чат, инструменты, рассуждения DeepSeek, сессии и аналитика.
- **OpenCode и Pi** реализованы и подключаются, но как более свежие обвязки могут содержать мелкие шероховатости. Любые баги в них поправимы буквально за пару часов по запросу.
- **Новая обвязка по запросу** — нужно подключить ещё какой-нибудь CLI-агент (Gemini CLI, Cursor, Aider и т. п.)? Архитектура `IAgentBackend` это предусматривает: подключение любой новой обвязки занимает около 1 суток.

**← Назад:** [Окружения](/agent/docs/environments)

**Далее:** [Советы и устранение проблем](/agent/docs/tips)
 →
