← Блог

Полевая заметка

Выходите на улицу. Агент продолжает работать.

Телефон никогда не был тем, что поддерживало жизнь вашего агента. Это делает сервер. Стоит в это поверить — и полдня на свежем воздухе не будут стоить вам ничего: вы уходите, работа идёт дальше, и прерывает вас только вопрос, на который действительно нужен ответ.

Четыре сеанса на машине, которая принадлежит вам. Трём из них всё равно, где вы находитесь. Четвёртый — единственная причина достать телефон из кармана.

Работа заканчивается независимо от того, закончилась ли сборка. Pau hana — конец рабочего дня — наступает по собственному расписанию, и обычный ответ на это — не замечать: держать ноутбук открытым на столе, вполглаза следить за полосой прогресса и отдавать вечер процессу, которому вы не нужны ни на одном шаге.

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

Долговечный слой — это сервер

Запустите Claude Code или Codex внутри tmux, herdr или Zellij — и сеанс будет принадлежать серверу, а не вашему соединению. Опуститесь до одной палочки сигнала, зайдите в лавовую трубу, уберите телефон на два часа: агент продолжит читать, править и гонять тесты, потому что он никогда не был привязан к вам.

В этом весь фокус, и здесь стоит быть точным, потому что легко приписать заслугу не тому компоненту. Процесс держит не приложение. Его держит мультиплексор на дальнем конце. Задача Mobile SSH — чисто уйти и чисто вернуться.

Вы не источник питания. Перестаньте вести себя как он.

Заглядывайте, а не нянчитесь

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

Agent Alerts отвечают на этот вопрос. Обнаружение намеренно примитивное и потому заслуживает доверия: звонок терминала, уведомление OSC 9 или OSC 777 и агентский hook, который вы один раз ставите на сервер. Приложение не вчитывается в ваш вывод и не угадывает намерения, и никакого регулятора чувствительности здесь нет — сообщается ровно то, о чём объявила программа на другом конце.

Поэтому телефон лежит в кармане, пока не появится настоящий вопрос. Тогда он завибрирует, вы читаете запрос, отвечаете одним касанием и убираете его обратно. Это всё взаимодействие целиком, и оно одинаково работает с пляжа, от начала тропы или из очереди за shave ice.

Перед тем как уйти

  1. Запустите под мультиплексором

    Запускайте агента внутри tmux, herdr или Zellij, чтобы сеанс переживал ваше соединение, а не зависел от него.

  2. Поставьте агентский hook

    Один раз на сервер, прямо из приложения. Это небольшой shell-скрипт, который может вызвать любой агент, — не интеграция с поставщиком и не привязка к одной CLI.

  3. Убедитесь, что оповещение доходит

    Вызовите запрос и проверьте, что телефон завибрировал, прежде чем на это полагаться. Оповещение, которое вы ни разу не видели в работе, — не план.

  4. Задайте точку остановки

    Задача, которая где-то заканчивается, лучше бесконечной, потому что вы сознательно решили за ней не следить.

Задача, которую стоит оставить без присмотра Прочти AGENTS.md, затем почини падающие тесты обработчиков. Изучи diff перед правками, запусти целевые тесты и остановись, когда они пройдут, — не коммить.

Чего остров не исправит

Два честных ограничения — потому что текст, в котором перечислены одни достоинства, называется рекламой.

Что переживает ваш уход
Когда телефон отправляется в карманПродолжает работать?
Процесс агента на сервереПринадлежит tmux, herdr или Zellij ✓ Да
Файлы, diff и вывод тестовНа диске сервера ✓ Да
Ваше место в сеансеПрисоединяется заново, когда вы вернётесь ✓ Да
Соединение на AndroidУдерживается foreground-сервисом ✓ Да
Соединение на iOSКороткое время в фоне — затем переподключение — Нет
Оповещение, которое некому доставить без сигналаНужно активное соединение; доставка не гарантируется — Нет
Агент продолжает работать в каждой строке. Различается только то, держал ли ваш телефон окно открытым.

Разница между платформами реальна, и её стоит учитывать заранее. На Android соединение удерживает foreground-сервис, пока приложение в фоне: постоянное уведомление и есть сеанс. У iOS есть лишь короткое время для работы приложения в фоне; после приостановки оно переподключается и заново присоединяется к вашему мультиплексору, когда вы возвращаетесь. Для оповещений нужно активное соединение. И в том, и в другом случае агент на сервере не останавливался, в этом и суть. Закрывалось только окно.

Aloha — не повод для беспечности

Уходить как следует — небольшая дисциплина. То, что вы не оставили бы работать без присмотра на два часа, не стоит запускать уже на пороге: агенту посреди миграции расстояние не помогает. Дайте ему задачу с естественной точкой остановки, попросите сначала изучить, а потом править, и пусть diff будет тем, что вы просмотрите по возвращении.

И относитесь к уведомлению так же бережно, как к пейджеру. Если оповещает всё, не оповещает ничто. Hook срабатывает на тех состояниях, ради которых стоит отвлечь человека; оставьте это так — и вибрация сохранит смысл.

Сборке не нужны зрители. Идите и побудьте где-нибудь.