Фоновая работа: саб-агенты и процессы¶
Фоновая работа идёт параллельно с диалогом: пока вы продолжаете разговор, задача выполняется своим ходом, а результат появляется в отдельном реестре. Это удобно для долгих сборок, тестов и исследований, которые не должны блокировать сессию.
Два вида фоновой работы¶
| Вид | Что это | Что видно в реестре |
|---|---|---|
| Фоновый саб-агент | Дочерняя сессия со своим контекстом, историей и ходом | Имя, статус, кнопка «Открыть сессию» |
| Фоновый процесс | Шелл-команда, которая пишет вывод в лог и не держит ход | Имя, статус, вывод по кнопке «Показать лог» |
Саб-агент нужен, когда задачу можно делегировать целиком: он получит свой контекст и не будет мешать текущему диалогу. Процесс — когда нужна конкретная команда: сборка, тесты, долгий скрипт. Оба вида живут в одном реестре и переживают закрытие вкладки: работа продолжается на сервере.
Вкладка «Процессы»¶
Правая панель → вкладка «Процессы». Заголовок «Фоновые процессы», рядом счётчики: сколько прогонов всего и сколько выполняется прямо сейчас.
- Фильтр «Фильтр по виду»: «Все», «Процессы», «Саб-агенты».
- Тумблер «Только текущая сессия» сужает список до работы этой сессии.
- В строке — имя, вид, статус и время; у саб-агента — «Открыть сессию», у процесса — «Показать лог» / «Скрыть лог» / «Обновить лог».
- «Остановить» и «Удалить» спрашивают подтверждение в диалоге.
Пока работы нет, вкладка показывает «Фоновых процессов нет» и подсказку, что фоновые шелл-команды и саб-агенты появятся здесь.
Статусы¶
| Статус | Что значит |
|---|---|
| выполняется | Прогон идёт прямо сейчас |
| завершён | Прогон закончился успешно |
| ошибка | Прогон завершился с ошибкой — смотрите лог или сессию |
| остановлен | Прогон остановлен вручную |
| потерян | Инстанс перезапускался, и связь с прогоном потеряна |
«Потерян» — не потеря данных: запись осталась, но самого процесса больше нет. Удалить можно только запись в терминальном статусе; идущую сначала останавливают.
Как запустить¶
Отдельной кнопки «Запустить в фоне» у пустого реестра нет: фоновую работу запускает агент по вашей просьбе.
- Попросите в диалоге: «запусти сборку в фоне», «проверь тесты фоном». Агент
вызовет
taskсbackground: trueдля саб-агента илиexecute_shellс тем же флагом для команды. - Уже идущий прогон можно перевести в фон: у работающего саб-агента и у
выполняющегося
execute_shellесть кнопка «В фон». ctrl+bпереводит в фон все блокирующие прогоны активной сессии.
ctrl+b
Нажмите ctrl+b, когда ход «залип» на долгой команде: все блокирующие
прогоны активной сессии уедут в фон, а диалог освободится. После перевода
появится тост «Переведено в фон: N».
Перевод в фон необратим
Прогон нельзя вернуть в текущий ход: он остаётся фоновым до завершения. Отмена родительского хода его не останавливает — останавливайте отдельно. В гибридном режиме для удалённой сессии перевод недоступен: живого прогона на этом инстансе нет.
Уведомления¶
- Тост на старте: «Фоновый процесс запущен: {имя}» или «Фоновый саб-агент запущен: {имя}».
- Тост на завершении, ошибке и остановке — с тем же именем.
- В ленте диалога — плашка «Фоновый процесс · {имя}» или «Фоновый саб-агент · {имя}».
Лимиты¶
| Что | Значение |
|---|---|
| Фоновых саб-агентов на сессию | 2 |
| Фоновых процессов на сессию | 5 |
| Записей в реестре на сессию | 10 |
| Размер лога процесса | 10 МиБ, дальше «Лог обрезан (достигнут лимит записи)» |
| Хранение терминальных записей | 7 дней |
| Вложенность | 1 уровень: саб-агент не запускает своих саб-агентов |
Лог обрезается, но процесс не останавливается. «Остановить» посылает SIGTERM, а через 5 секунд — SIGKILL; сама остановка асинхронная, статус меняется не мгновенно.
Перезапуск инстанса¶
Фоновые прогоны живут в процессе сервера. После перезапуска инстанса записи, которые ещё шли, получают статус «потерян»: продолжить их нельзя, можно только удалить и запустить работу заново. Поэтому долгую задачу лучше ставить так, чтобы её можно было безопасно повторить.
Фоновую работу можно выключить целиком: при background.enabled: false агент
не запускает фоновые прогоны, а вкладка остаётся пустой. Настройка задаётся в
конфигурации инстанса.
Что видит агент¶
process_list— список фоновых прогонов своей сессии и её дочерних сессий.process_logs— вывод процесса по смещению; у саб-агента лога нет, его результат — в самой сессии.
Оба инструмента только читают и доступны даже в режиме plan. По ним агент проверяет, закончилась ли команда, и подхватывает результат.
Что дальше¶
- Сессии и проекты — дочерние сессии и рабочий каталог.
- Режимы и права — что разрешено агенту.
- Пайплайны (preview) — шаги и прогоны в фоне.
- Что нового в 0.12.4 — изменения релиза.