Skip to main content

Терминал и фоновые задачи

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.