Субагенты
Субагент — помощник, которому основной агент передаёт отдельную часть задачи. Пока субагент прогоняет тесты или изучает код, основной агент и вы продолжаете работу.
Зачем это нужно
- Параллельная работа. Например:
Параллельно прогони тесты и объясни PR. - Чистый контекст. Побочная работа не засоряет основной чат: в него приходит только результат.
- Независимая проверка. Отдельный агент проверяет изменения, не опираясь на рассуждения автора.
Два вида помощников
| Вид | Как работает | Когда полезен |
|---|---|---|
| Форк | Ветка текущего чата: наследует контекст и переиспользует кэш провайдера | Параллельные части задачи, где нужен накопленный контекст |
| Независимый субагент | Начинает с пустого контекста и получает задачу целиком | Независимый взгляд, ревью, роль со своими инструкциями |
Какой вид выбрать, решает основной агент. Вы можете попросить об этом явно: Проверь мои изменения отдельным субагентом.
Форки и кэш промпта
Форк создаётся от последнего завершённого хода основного агента. У него тот же системный промпт, те же инструменты в том же порядке, та же модель и тот же уровень рассуждений. Поэтому первый запрос форка читает историю чата из кэша провайдера, а не оплачивает её заново. На подписке Veai это сокращает время обработки запроса, а значит и расход минут; со своим ключом — экономит деньги напрямую.
Из этого следуют два ограничения:
- Модель и уровень рассуждений форк берёт у основного агента. Задать их отдельно для форка нельзя. Если нужна другая модель, используйте независимого субагента с профилем модели.
- Если вы только что сменили модель, истории для новой модели в кэше ещё нет, и первый запрос форка оплатит запись в кэш.
Пример: тесты в трёх модулях
Попросим агента прогнать тесты в проекте из трёх модулей и починить падения. Агент запускает три форка, по одному на модуль. Под чатом появляется панель с их состоянием.

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

Закончив, форк присылает основному агенту отчёт: что сделано, какие файлы затронуты и что осталось непроверенным.

Если форку нужно разрешение на команду, запрос появляется в основном окне. В нём видно, какой форк спрашивает и почему.

Встроенные агенты
| Агент | Роль | Инструменты |
|---|---|---|
workhorse | Реализует чётко поставленное изменение и сообщает, что изменил | Стандартный набор |
hawkeye | Проверяет изменение по задаче и сообщает о дефектах с файлом и строкой | Только чтение |
retriever | Находит файлы, точки входа и поток данных и подсказывает, с чего начать | Только чтение |
Как следить за субагентами
Запущенные субагенты видны на панели работы в терминале.
- Нажмите
Enterна субагенте, чтобы следить за ним в реальном времени. - В истории субагента клавиша
bотправляет его в фон, аsостанавливает.
Субагент может работать в фоне, пока вы продолжаете переписку. Результат придёт основному агенту автоматически.
Свои агенты и профили моделей
Агенты задаются Markdown-файлами:
| Что | Для всех проектов | Для одного проекта |
|---|---|---|
| Агент (роль, инструкции, инструменты, скиллы) | ~/.veai/agents/*.md | <проект>/.veai/agents/*.md |
| Профиль модели (модель и уровень рассуждений) | ~/.veai/models/*.md | <проект>/.veai/models/*.md |
Агенты и профили комбинируются: один агент-ревьюер может работать на дешёвой модели для маленького диффа и на сильной — для большого. Если профиль не указан, субагент работает на модели основного агента.
Пример агента <проект>/.veai/agents/reviewer.md:
---
name: reviewer
description: Независимое ревью готового изменения. Только чтение.
tools: [read, grep, find, ls]
---
Проверь изменение по задаче. Сообщай о дефектах с файлом и строкой. Ничего не редактируй.
Проще всего попросить агента создать файл: Создай агента-ревьюера, который только читает код. Команда /agents показывает всех агентов, их источник и состояние и позволяет включать и выключать их.
Настройки
В settings.json:
| Ключ | По умолчанию | Что задаёт |
|---|---|---|
subagents.maxConcurrency | 20 | Сколько субагентов могут работать или ждать одновременно |
subagents.disabledAgents | [] | Отключённые агенты, включая встроенные |
subagents.disabledProfiles | [] | Отключённые профили моделей |
Подробнее — в разделе «Настройки».
Ограничения
- Вложенных субагентов нет: субагент и форк не могут запускать своих субагентов.
- Если лимит параллельных субагентов (
subagents.maxConcurrency) исчерпан, новый запуск отклоняется. Основной агент получает отказ и сам решает, что остановить. - Если субагент закончил работу и не прислал отчёт, CLI напоминает ему об этом. После нескольких напоминаний субагент завершается с ошибкой.
- Каждый форк и субагент расходует минуты сам: три параллельных форка списывают минуты втрое быстрее, чем один.
- Субагент начинает работу в режиме разрешений основного агента и следует его переключениям.
- Субагент не переключается на другую модель во время работы. Если модель из профиля недоступна, запуск завершится ошибкой: CLI не подставит другую модель молча.
- Поля
modelиз агентов других инструментов (например,.claude/agents/) не действуют. Модель задаётся только через профиль.