Терминал и фоновые задачи
Veai CLI запускает долгие команды — dev-сервер, watcher, длинную сборку или тесты — в фоне. Команда продолжает работать, а агент и вы занимаетесь следующей задачей.
Зачем это нужно
Без фонового режима агент ждал бы окончания сервера или сборки и не мог бы продолжать работу. С фоновыми задачами можно, например, поднять сервер, а затем проверить его запросами из того же чата.
Как пользоваться
Опишите задачу в чате:
Запусти сервер в фоне
Прогони полный набор тестов в фоне и, пока они идут, разберись с предупреждениями компилятора
Агент сам решает, какие команды запускать в фоне. Когда фоновая команда завершится, он получит уведомление и учтёт результат.
Как это устроено
Для работы с командами у агента три инструмента:
| Инструмент | Что делает |
|---|---|
bash | Выполняет команду сразу или запускает её в фоне |
bash_output | Читает вывод фоновой задачи или ждёт её завершения заданное время |
bash_kill | Останавливает фоновую задачу |
Время ожидания команды задаёт сама модель параметром timeout: по умолчанию 120 секунд, максимум час. Если команда не уложилась в это время, CLI её не останавливает: команда отсоединяется и продолжает работать в фоне. Модель узнаёт об этом и получит уведомление, когда команда завершится.
Вывод фоновой задачи пишется в файл в служебной папке агента, а не в проекте: в репозитории служебные файлы не появляются.
Чтобы агент не забыл о запущенной задаче, CLI напоминает ему о ней через 4, 8 и 30 минут работы.
Уведомления о завершении
Когда агент заканчивает задачу, CLI показывает уведомление на рабочем столе:
- в Windows — системное уведомление Windows;
- в macOS и Linux — через escape-коды терминала,
notify-sendилиosascript.
Пока окно терминала в фокусе, уведомления не показываются.
Как посмотреть вывод и остановить задачу
- Чтобы увидеть вывод, попросите агента:
Покажи вывод сервера. - Чтобы остановить задачу, попросите:
Останови сервер. Агент сначала отправит процессу мягкий сигнал завершения, а если тот не завершится — принудительный. В Windows используетсяtaskkill. - Команда, которая выполняется дольше отведённого времени, не прерывается, а переходит в фон.
Запущенные команды видны на панели работы в терминале. В истории задачи клавиша b отправляет её в фон, а s останавливает. Ctrl+O показывает или скрывает полный вывод инструментов в чате.
Свои команды в терминале
Команду можно выполнить и самостоятельно, не выходя из CLI:
| Ввод | Что происходит |
|---|---|
!команда | Выполняет команду и отправляет её вывод агенту |
!!команда | Выполняет команду, не отправляя вывод агенту |
Если агент в это время работает, результат ! придёт после его ответа. Чтобы просто посмотреть вывод, используйте !! или дождитесь окончания работы.
Ограничения
- Полный вывод завершённой фоновой задачи хранится 30 минут после её окончания. Последние 2000 строк (до 50 КБ) остаются доступны до конца сессии.
- Число одновременных фоновых задач ограничено.
- В Windows без bash команды выполняются в PowerShell.