Модели

«Модель» в Pastukhov Agent — это не только сама ИИ-модель, а полный «паспорт подключения» к поставщику ИИ: какой агент-исполнитель обслуживает чаты, какой у вас ключ доступа, на какой адрес отправляются запросы, какие цены считать. Вы можете завести несколько таких паспортов (например, для Claude, GPT и недорогой модели на каждый день) и переключаться между ними прямо из чата — без перезапуска программы.

Почти все настройки агента задаются через переменные окружения — это технические параметры запуска, которые вы указываете один раз, а программа применяет их автоматически. Они делятся на два типа:

  • Переменные уровня приложения — настраивают сам Pastukhov Agent (логин и пароль для входа, путь к проекту, лицензия, ключи). Задаются до запуска — через системные переменные окружения, аргументы командной строки или файл .env — и со страницы «Модели» не меняются;
  • Переменные уровня модели — настраивают подключение к ИИ и управляются полностью через страницу Модели. Каждая модель — именованный набор переменных (ключи, названия моделей, адреса, цены) и агента-обвязки. Модели можно создавать, копировать и переключать в любой момент.

Переменные уровня приложения

Эти переменные настраивают сам Pastukhov Agent и должны быть заданы до запуска. Их нельзя поменять со страницы «Модели» — используются системные переменные окружения, аргументы командной строки (KEY=VALUE при запуске) или файл .env (подключается через --env имя_файла).

Основные настройки

  • AGENT_LOGIN — имя пользователя для входа в интерфейс. Если не задано, автоматически подставляется agent;
  • AGENT_PASSWORD — пароль в виде хеша SHA256 (хеш — это «отпечаток» текста, восстановить по нему исходный пароль нельзя). Если не задан, генерируется автоматически и выводится в консоль до перезапуска. Хеш для своего пароля можно получить на странице входа — по ссылке «▸ SHA256 generator» под кнопкой входа;
  • AGENT_PROJECT_PATH — путь к папке проекта. Нужен при ручной установке и в Docker. Папка может быть пустой или ещё не существовать — тогда агент сам получит проект из настроенного Git-адреса;
  • AGENT_LICENSE — ключ лицензии. Если не задан, используется пробная лицензия;
  • AGENT_API_KEY — хеш SHA256 ключа API для удалённого доступа. Если не задан, удалённый доступ отключён;
  • AGENT_DATABASE — путь к базе данных программы или строка подключения PostgreSQL. По умолчанию — файл .pastukhov/project.db (SQLite), лежащий рядом с проектом, чтобы его можно было сохранять в Git. Для серьёзной эксплуатации лучше PostgreSQL — она быстрее и надёжнее SQLite;
  • JWT_SECRET_KEY — секретный ключ подписи «пропусков» входа (JWT; минимум 32 символа). Не задали — ключ сгенерируется сам. Это важная деталь безопасности: кто знает ключ, тот может сам создавать действительные пропуска. Без своего ключа при пересоздании Docker-контейнера он перегенерируется и всем пользователям придётся входить заново;
  • AGENT_CLICKHOUSE_URL — адрес системы ClickHouse для сбора статистики чатов в единое хранилище. Позволяет строить общие графики по всем проектам сразу (например, в Grafana) вместо разрозненного просмотра проектов по отдельности. Пример: Host=172.17.0.1;Port=8127;Protocol=http;Database=;Username=;Password=;
  • MANAGER_PASSWORD — пароль менеджера: при задании открывает доступ к чатам для централизованного управления агентом (используется MultiAgent);
  • AGENT_BRAND — торговая марка интерфейса. По умолчанию определяется по имени исполняемого файла (XedantAgent → Xedant, прочее — Pastukhov). Меняет название продукта, логотип и папку конфигурации.

Подключение Git-репозитория

  • AGENT_GIT_URL — адрес Git-репозитория проекта (хранилища истории изменений), откуда клонировать проект. По умолчанию берётся демонстрационный репозиторий;
  • AGENT_GIT_LOGIN — логин для доступа к репозиторию;
  • AGENT_GIT_PASSWORD — пароль для доступа к репозиторию;
  • AGENT_GIT_USER_NAME — имя автора, которое будет стоять в записях об изменениях;
  • AGENT_GIT_USER_EMAIL — email автора для записей об изменениях.

Встроенный FTP-сервер

В Docker-образы встроен FTP-сервер — по FTP можно подключаться к файлам проекта напрямую, из любого файлового менеджера. Подробности — на странице Файлы.

  • AGENT_FTP_USER — имя пользователя для FTP-доступа. Сервер запускается, только если заданы обе переменные (пользователь и пароль);
  • AGENT_FTP_PASSWORD — пароль для FTP-доступа;
  • AGENT_FTP_MIN_PORT — нижняя граница диапазона портов для передачи данных (по умолчанию 30000);
  • AGENT_FTP_MAX_PORT — верхняя граница диапазона (по умолчанию 30009);
  • AGENT_FTP_ADDRESS — адрес сервера для подключений; по умолчанию определяется автоматически.

SSL и размещение

  • AGENT_SSL — режим сертификата безопасности: auto автоматически включает защищённое соединение (HTTPS), даже без своего домена. Подробнее — на странице SSL-сертификаты;
  • AGENT_SSL_PORT — порт для HTTPS в режиме AGENT_SSL=auto (по умолчанию — номер HTTP-порта + 1);
  • AGENT_SSL_DOMAINS — явный список доменов/IP через запятую, которые включить в сертификат;
  • AGENT_BASE_PATH — размещение приложения в подпапке домена (например, /agent1), без отдельного домена. Работает вместе с X-Forwarded-Prefix за обратным прокси.

Разное

  • AGENT_CLAUDE_PATH — путь к программе (исполняемому файлу) Claude Code, если она установлена не в стандартном месте;
  • AGENT_BACKEND — выбор агента-обвязки для чатов: claude-code (по умолчанию), codex, opencode, pi, oh-my-pi, reasonix, deepseek-harness, kimi-code, mini или command-code. Задаётся в конфигурации модели. Что такое обвязки и чем они отличаются — на странице Обвязки;
  • CODEX_PATH, OPENCODE_PATH, PI_PATH, OMP_PATH, REASONIX_PATH, KIMI_CODE_PATH — пути к программе соответствующей обвязки (если она не найдена автоматически);
  • AGENT_YANDEX_DISK_TOKEN, AGENT_YANDEX_DISK_FOLDER, AGENT_YANDEX_DISK_POLL_INTERVAL — удалённое управление агентом через Яндекс.Диск (включая десктопное приложение AgentRemote). См. страницу Удалённое управление;
  • AGENT_ICON_PATH — путь к своей иконке, которая будет показана в интерфейсе (и в окне установленного приложения);
  • DISABLE_AUTOUPDATER — установите 1, чтобы отключить автоматическое обновление Claude Code (обычно нужно в Docker);
  • DOTNET_ROOT — путь к среде выполнения .NET (используется системой сборки);
  • HTTP_PROXY, HTTPS_PROXY, NO_PROXY — выход в интернет через прокси (обычно нужны в корпоративной сети). Первые две задают адрес прокси для обычных и защищённых соединений, третья — список адресов, которые прокси нужно обходить, например локальные сервисы. Эти переменные получают все движки агента, поэтому запросы к поставщикам ИИ и установка инструментов идут через прокси автоматически. Их можно задать и на уровне отдельной модели — так один проект может ходить напрямую, а другой через прокси.

Переменные уровня модели

Эти переменные настраивают подключение к ИИ и управляются со страницы «Модели». Они хранятся в .pastukhov/models.yml и передаются программе-исполнителю (обвязке) при запуске сеанса чата. Переменные модели имеют приоритет над системными, а системные используются как запасной вариант.

Ключи доступа и адреса

  • ANTHROPIC_API_KEY — ключ доступа к API Anthropic для прямой работы с Anthropic;
  • ANTHROPIC_AUTH — способ входа в Claude Code: apikey — по ключу Anthropic, claude — по тарифу Claude (Pro/Max);
  • ANTHROPIC_AUTH_TOKEN — ключ доступа для сторонних поставщиков (z.ai, OpenRouter, xAI, MiniMax, Kimi). Альтернатива ANTHROPIC_API_KEY;
  • ANTHROPIC_BASE_URL — адрес API. По умолчанию — адрес Anthropic; для сторонних поставщиков меняется на их адрес;
  • MAX_MCP_OUTPUT_TOKENS — максимальный объём ответа (в токенах) для вспомогательных серверов MCP, которые дают агенту дополнительные возможности. По умолчанию 100000.

Вход по подписке Claude. Если модель настроена на вход по тарифу Claude (переменная ANTHROPIC_AUTH=claude), ключ доступа не нужен. Когда такая модель выбрана в чате, внизу появляется подсказка «Войти через Claude». Нажмите её, откройте ссылку, войдите в аккаунт Claude и вставьте полученный код — после этого появится «Выполнен вход через Claude», и запросы пойдут по подписке, без оплаты за токены. Это отдельный вход: он относится к оплате ИИ, а не к доступу в сам агент. Подробности — на странице Обвязки.

Конфигурация модели

  • ANTHROPIC_MODEL — основная модель для ответов в чате;
  • ANTHROPIC_DEFAULT_OPUS_MODEL — модель для сложных подзадач, требующих максимальных возможностей;
  • ANTHROPIC_DEFAULT_SONNET_MODEL — модель для сбалансированных подзадач (оптимум скорости и качества);
  • ANTHROPIC_DEFAULT_HAIKU_MODEL — модель для быстрых и лёгких подзадач;
  • CLAUDE_CODE_SUBAGENT_MODEL — модель для вспомогательных агентов, которых Claude Code запускает для параллельной работы над мелкими задачами;
  • MODEL — модель для обвязок не от Anthropic (OpenCode, Pi, Oh My Pi, Reasonix, Codex, MiniAgent, Command Code и др.) в формате, принятом в этой обвязке;
  • MODEL_CONTEXT_LENGTH — размер окна контекста (рабочей памяти) в токенах. Используется для расчёта стоимости и отображения заполнения.

Цены (за миллион токенов)

Токены — это «единицы текста», за которые вы платите поставщику. Здесь задаются тарифы, по которым агент считает ваши расходы:

  • MODEL_INPUT_PRICE — цена текста, отправляемого модели (ваши сообщения, содержимое файлов);
  • MODEL_OUTPUT_PRICE — цена текста, сгенерированного моделью в ответ;
  • MODEL_CACHE_READ_PRICE — цена обращения к кэшу: повторная обработка уже знакомого модели текста обходится дешевле;
  • MODEL_CACHE_WRITE_PRICE — цена записи текста в кэш.

Управление поведением

  • CLAUDE_DISABLE_EXPERIMENTAL_BETAS — true отключает экспериментальные функции (рекомендуется для сторонних поставщиков, которые их не поддерживают);
  • DISABLE_NON_ESSENTIAL_MODEL_CALLS — true отключает второстепенные обращения к модели (тоже рекомендуется для сторонних поставщиков — экономит и деньги, и время);
  • ENABLE_TOOL_SEARCH — false отключает поиск инструментов (используется некоторыми поставщиками, которые его не поддерживают);
  • MODEL_PEAK_HOURS — периоды «часов пик», когда провайдер берёт повышенную плату. Вместе с MODEL_PEAK_DAYS определяет, когда рядом с выбором модели появляется значок-предупреждение. Подробности — в разделе «Пиковые часы» ниже.

Примечание: при создании модели из встроенного шаблона провайдера (Anthropic, z.ai, OpenRouter, DeepSeek и др.) большинство переменных заполняется автоматически — включая обвязку. От вас нужен только ключ доступа: шаблон подставит названия моделей, адрес, цены и параметры поведения. См. раздел Настройка первой модели в руководстве «Начало работы».


Пиковые часы

Некоторые провайдеры берут повышенную плату в часы пиковой нагрузки. Модель может объявить свои пиковые периоды — тогда агент предупредит о них в интерфейсе и не будет тратить деньги на автоматические запуски в это время.

Переменные пиковых часов

  • MODEL_PEAK_HOURS — периоды «начало-конец» через запятую в формате H:MM-H:MM. Время задаётся по Гринвичу (GMT/UTC). Пример: 3:00-5:00,7:00-12:00. Поддерживается переход через полночь — период 23:00-1:00 действует с 23:00 до 1:00. Если переменная не задана, пиковых часов у модели нет — она никогда не считается «в пике»;
  • MODEL_PEAK_DAYS — дни недели английскими названиями через запятую, полные или сокращённые (monday, tuesday или mon, tue и т.д.). По умолчанию пиковые дни — понедельник–пятница; задав свою переменную, вы переопределяете их (например, saturday,sunday).

Обе переменные задаются в редакторе модели обычным способом: кнопка «Добавить переменную» и пара «имя — значение». Работают и наследование по сегментам имени, и подстановка $ИМЯ — включая системные переменные окружения (см. разделы «Наследование настроек» и «Подстановка переменных» ниже).

Индикатор в интерфейсе

  • Где: рядом с селектором модели в панели ввода сообщения;
  • Когда: только если у выбранной модели сейчас пиковый период (часы и дни из её переменных);
  • Вид: значок-предупреждение — градиентный треугольник с восклицательным знаком;
  • Подсказка: «Пиковые часы модели с HH:MM до HH:MM, дороже» — время показывается в вашем локальном часовом поясе (значение из GMT конвертируется);
  • Обновление: каждые 30 секунд и при переключении модели.

Настройки поведения в пиковые часы

Две настройки управляют автоматикой в пиковые часы — автоотправкой промптов и автокликом кнопок. Обе по умолчанию включены.

НастройкаПо умолчаниюГде в интерфейсеКогда выключена
promptsIgnorePeakHoursвключеноAutoSend на странице Промптыпромпты, чья модель сейчас в пике, ждут в очереди; промпты непиковых моделей отправляются
autoclickDuringPeakHoursвключенокарточка «Кнопки» на странице Настройкикнопки с автонажатием в чатах пиковой модели не срабатывают сами — ждут ручного нажатия

promptsIgnorePeakHours. Переключатель «Пиковые часы» в настройках AutoSend («AutoSend settings» рядом с переключателем автоотправки). Пока включена (по умолчанию), автоотправка работает как обычно и пики не учитываются: промпты отправляются, даже если модель в пике. Выключив её, вы запрещаете автоотправку промптов, чья модель сейчас в пике: такие строки ждут в очереди и отправятся после окончания пика.

autoclickDuringPeakHours. Переключатель «Автоклик в часы пик» в карточке «Кнопки» (Настройки → Автоматизация). Пока включена (по умолчанию), кнопки с автонажатием срабатывают по расписанию даже в пиковые часы модели чата. Выключите её — кнопки в чатах, чья модель сейчас в пике, не сработают сами и останутся доступными для ручного нажатия.

Пример: пики в выходные

Модель «Weekend» с переменными MODEL_PEAK_HOURS=18:00-22:00 и MODEL_PEAK_DAYS=saturday,sunday:

  • каждую субботу и воскресенье с 18:00 до 22:00 по Гринвичу рядом с селектором модели появляется значок-предупреждение (подсказка покажет эти же часы в локальном времени);
  • пока promptsIgnorePeakHours включена, промпты этой модели отправляются как обычно; если выключить — в выходные вечером они ждут в очереди до конца пика, а промпты других моделей продолжают отправляться;
  • если выключить autoclickDuringPeakHours, кнопки с автонажатием в чатах на модели «Weekend» в эти часы не сработают сами — останутся только ручные нажатия.

Что такое модель?

Модель — это именованный набор настроек, по которым ИИ отвечает на ваши сообщения: ключ доступа к провайдеру, название модели, адрес API, цены и выбранная обвязка (какой агент-исполнитель работает «под капотом»). Вместо «зашитых» в код одного ключа и одной модели вы создаёте несколько моделей-конфигураций и переключаетесь между ними на лету.

Например, можно завести:

  • Claude — обвязка Claude Code, ключ Anthropic и модель Claude;
  • GPT — обвязка Codex, подписка ChatGPT или ключ OpenAI и модель GPT-5;
  • GLM — обвязка Claude Code, ключ z.ai и модель GLM;
  • DeepSeek — обвязка Reasonix или DeepSeek Harness, ключ DeepSeek, оплата за токены (недорогой вариант для повседневной работы);
  • Testing — дешёвая или быстрая модель для экспериментов.

У каждой модели свой набор переменных. При переключении ИИ немедленно начинает работать по новой конфигурации — уже со следующего сообщения.

Наследование настроек. Названия моделей поддерживают наследование по сегментам, разделённым дефисом. Модель glm-5-turbo автоматически наследует переменные моделей glm-5 и glm. Это позволяет задать общие настройки (например, ключ и адрес) один раз в «родительской» модели, а в «дочерних» переопределять только отличия (название модели или цены). Собственные переменные всегда важнее унаследованных.

Обвязки. Каждая модель может работать на любом из десяти агентов-исполнителей: Claude Code, Codex, OpenCode, Pi, Oh My Pi, Reasonix, DeepSeek Harness, Kimi Code, MiniAgent или Command Code. Обвязка задаётся переменной AGENT_BACKEND в составе модели, поэтому можно держать несколько моделей на разных движках и переключаться между ними. Подробнее — на странице Обвязки.


Просмотр моделей

Модели открываются из диалога «Модели» в главном меню (значок модели в шапке). Диалог показывает список всех настроенных моделей с цветами и основными настройками. Нажмите на модель, чтобы открыть её редактор и посмотреть или изменить все переменные.

Список моделей Pastukhov Agent

Редактирование модели

Редактор показывает все переменные в виде пар «имя — значение». Настраивайте модель здесь, а изменения сохранятся сами.

Редактор модели с парами ключ-значение

Изменить переменную: нажмите на поле значения и введите новое. Изменение сохраняется автоматически через короткую паузу — кнопка сохранения не нужна.

Добавить переменную: нажмите «Добавить переменную», чтобы создать новую пару «имя — значение».

Добавить ссылочную переменную: нажмите «Добавить ссылочную переменную», чтобы создать переменную, чьё значение ссылается на другую переменную. Удобно для упорядоченной конфигурации (см. раздел «Подстановка переменных» ниже).

Изменить порядок: перетаскивайте переменные вверх или вниз. Это нужно только для порядка — на работу переменных расположение не влияет.

Контекстное меню: клик правой кнопкой мыши по переменной открывает дополнительные действия — редактирование, удаление, копирование.


Подстановка переменных

Переменные могут ссылаться на другие переменные — синтаксис $ИМЯ_ПЕРЕМЕННОЙ. При использовании модели ссылки автоматически раскрываются в реальные значения.

Например:

  • API_KEY = sk-abc123... (ваш настоящий ключ доступа)
  • BASE_URL = https://api.example.com
  • FULL_ENDPOINT = $BASE_URL/v1/chat (ссылается на BASE_URL)

Так конфигурация остаётся чистой: поменяли адрес один раз — все переменные, ссылающиеся на него, обновились автоматически. А ключ доступа можно задать в одном месте и ссылаться на него отовсюду.

Совет по безопасности: синтаксис $ИМЯ_ПЕРЕМЕННОЙ работает и с системными переменными окружения. Это значит, что секреты (ключи доступа, лицензии, пароли) можно передавать через переменные окружения Docker, системные переменные или аргументы запуска, а в models.yml лишь ссылаться на них — и в репозиторий секреты не попадут:

# .pastukhov/models.yml — безопасно для сохранения в Git
models:
  production:
    variables:
      - ANTHROPIC_API_KEY=$MY_API_KEY          # берётся из системной переменной при запуске
      - ANTHROPIC_AUTH_TOKEN=$MY_AUTH_TOKEN     # секрет не хранится в файле
      - ANTHROPIC_BASE_URL=https://api.anthropic.com  # не секрет — можно хранить открыто

Настоящие секретные значения остаются в конфигурации Docker (файл compose, .env или флаги -e), а models.yml можно спокойно сохранять в Git и передавать коллегам.


Создание новой модели

Мастер новой модели Pastukhov Agent
  1. Откройте диалог «Модели» из главного меню;
  2. Нажмите «Создать модель»;
  3. Выберите шаблон провайдера (Anthropic, z.ai, OpenRouter, DeepSeek, Codex, Reasonix, OpenCode, Pi, Oh My Pi, DeepSeek Harness, Kimi Code и др.) — шаблон сам заполнит обвязку, ключевые переменные, модели и цены;
  4. Укажите свой ключ доступа (или войдите в аккаунт, если шаблон предполагает подписку — для моделей на подписке Claude в чате появится подсказка «Войти через Claude»);
  5. Введите имя модели (например, «Claude» или «GPT-5»);
  6. Модель готова — переключитесь на неё из поля ввода чата.

Переименование модели

Нажмите на имя модели в редакторе, введите новое имя и подтвердите. Изменение применится везде, где модель упоминается, — включая селектор в поле ввода чата. Ссылки на модель в задачах и ботах переименовываются автоматически.


Переключение моделей в чате

Самый быстрый способ переключить модель — прямо из области ввода чата:

Селектор моделей в области ввода сообщений
  1. Найдите выпадающий список моделей рядом с полем ввода чата;
  2. Нажмите на него — откроется список доступных моделей;
  3. Выберите нужную модель;
  4. Все последующие сообщения пойдут уже через неё.

Переключение мгновенное — перезапускать чат или обновлять страницу не нужно: ИИ применит новые настройки уже в следующем сообщении. Подробнее об области ввода — в разделе Чат.