Облачные агенты: задача уходит в работу, даже когда вы закрыли ноутбук
Кодинг-агент в терминале хорош ровно до того момента, пока вы сидите перед терминалом. Стоит закрыть крышку — и работа останавливается. А половина задач в любом репозитории именно такие: их не жалко отдать, но жалко на них сидеть. Обновить зависимости. Дописать тесты на модуль, до которого два года не доходили руки. Разобрать выгрузку. Внести правки по ревью, которые вы уже проговорили словами.
Облачные агенты Kodagent — это способ отдать такую задачу целиком. Вы описываете, что нужно сделать; платформа арендует машину, поднимает на ней кодинг-агента, даёт ему ваш репозиторий и метрируемый доступ к моделям, а в конце присылает merge request — или патч, или zip с результатом. Машина после этого уничтожается.
И главное: за всем этим можно следить и всем этим можно управлять из Telegram. Из метро, из отпуска, с чужого ноутбука — откуда угодно, где у вас есть телефон.
Как это выглядит
В консоли, на странице Облачные агенты, форма помещается на один экран:
- Воркспейс — git-репозиторий, префикс в S3, папка Яндекс Диска или пустой воркспейс;
- Задача — обычный текст, как вы объяснили бы её коллеге;
- Ограничить по — расходу (в кредитах) или времени (в часах);
- при желании — модель, усилие и машина.
Дальше — «Запустить». Через секунду (или через пару минут, если вы выбрали арендованную облачную ВМ) в транскрипте появляются первые строки, и вы либо смотрите, либо закрываете вкладку и занимаетесь своими делами. Сессия от этого не остановится: она живёт на своей машине, а не в вашем браузере.
Когда агент задаёт вопрос или заканчивает — вы отвечаете в том же окне. Или в Telegram.
Управление из Telegram
Это не «уведомления в чат». Это полноценная вторая входная дверь к той же самой функции: чат запускает сессии тем же кодом, что и консоль, проходит те же проверки прав и видит те же сессии организации. Что нельзя было сделать в браузере — нельзя и в чате.
Привязка занимает два тапа. На странице агентов нажимаете «Подключить Telegram», получаете одноразовую ссылку, открываете её — всё. Одному аккаунту можно привязать несколько чатов (телефон и десктоп), а каждый сотрудник организации привязывает свой собственный — сессии общие, а говорит бот от лица того, кто к нему подключился.
Запуск. Самое короткое — просто написать задачу:
/new почини флейки в тестах и объясни, из-за чего они падали
Первое слово не похоже на репозиторий — значит, это уже задача, и сессия стартует на пустом воркспейсе. Нужен репозиторий — поставьте его первым:
/new https://github.com/acme/api обнови зависимости и почини сломавшееся
А /new без аргументов задаст два вопроса — репозиторий, потом задачу.
Разговор. Дальше обычный текст в чате уходит агенту текущей сессии, а всё, что делает агент, приходит обратно: его реплики, по строчке на каждый вызов инструмента, ошибки и прогресс. Пауза между строками у агента бывает в десятки секунд, поэтому бот сам меняет темп — секунда, пока идёт работа, и десять, когда всё затихло.
Файл в чат — файл в воркспейсе. Пришлите документ, и он ляжет рядом с кодом, а подпись к нему уйдёт агенту сообщением. Спека в docx, выгрузка в csv, скриншот с ошибкой — то, что приходит вам в мессенджер, попадает прямо в работу, без «сначала дойду до компьютера».
Команды, которые действительно нужны с телефона:
| Команда | Что делает |
|---|---|
/list, /status, /use | какие сессии есть, что происходит, на какую переключиться |
/stop, /interrupt | остановить совсем или прервать текущий шаг и сказать иначе |
/limit 500, /limit 3h | потолок новых сессий — в кредитах или в часах |
/model, /effort | модель и усилие для новых сессий |
/deliver on|off | доставлять ли результат, если сессию остановил лимит |
/token | токен для приватного репозитория (сообщение с ним бот сразу удаляет) |
/patch, /archive | прислать изменения патчем или рабочую копию файлом |
/mcp | свои MCP-серверы организации |
/lang ru|en | язык, на котором бот отвечает |
Обратите внимание на /patch и /archive: результат приходит файлом в чат, а не
ссылкой на страницу, которую ещё надо открыть с телефона.
Бот двуязычный, и язык — это выбор чата, а не языка вашего клиента Telegram: поставили
/lang ru — и повествование, и сводки, и ошибки будут по-русски, даже когда чат ведёт
фоновый процесс, которому некого спросить.
Что агент получает на машине
Верстак, а не голый рантайм. В образе стоят git, gh, jq, yq, ripgrep, sqlite3 — и
тулчейны почти под всё: Node LTS с npm/pnpm/yarn, Python 3, Rust, Go, JDK 17 с Maven, .NET
SDK, PHP с Composer, Ruby, C/C++ с cmake. Глобальные установки работают без sudo и сразу
оказываются в PATH, так что npm i -g, pip install, go install и dotnet tool — это
обычные команды, а не приключение.
Ваши MCP-серверы. Интересные MCP-серверы — всегда ваши собственные: трекер,
observability, внутренний сервис, до которого достучаться можем только вы. Организация
настраивает их один раз (на странице агентов или командой /mcp), и дальше их получает
каждая сессия. Удалённый сервер по https или локальная stdio-команда прямо в ВМ сессии —
работает и то, и другое. Это единственный чужой секрет, который платформа хранит у себя, и
хранит она его зашифрованным.
Возможность спросить другую модель. Одна модель на сессию — правильное умолчание и
неправильная догма: дешёвые открытые модели не умеют смотреть на картинки. Поэтому у агента
есть команда ask-model: он может отправить один вопрос с файлом (картинкой, страницей,
текстом) другой модели из каталога и получить ответ — а в его собственном контексте
останется только ответ, не мегабайт base64. Токены при этом списываются с бюджета той же
сессии.
Куда попадает результат
Это, пожалуй, главное отличие «агента в облаке» от «агента в терминале»: результат должен пережить машину, на которой он появился.
- Git. Агент коммитит остатки, пушит ветку
kodagent/agent-<id>вашим токеном и открывает merge request — GitHub, GitLab, GitVerse, SourceCraft распознаются по хосту. Не распознали форж или API отказал — ветка всё равно на месте. - Существующий MR. В поле репозитория можно вставить ссылку на открытый PR/MR. Агент разберёт её, склонирует нужную ветку (для PR из форка — сам форк) и в конце обновит тот же MR, а не заведёт новый. Ровно то, что нужно для правок по ревью.
- S3 и Яндекс Диск. Папка скачивается в начале и синхронизируется обратно в конце.
- Пустой воркспейс. Zip внутрь — zip наружу. Стартовые файлы распаковываются до начала работы, а по завершении вся рабочая копия приезжает архивом; в Telegram — сразу файлом.
- Патч — всегда. Что бы ни случилось, кумулятивный диф относительно исходного состояния
сохраняется и доступен:
/patchв чате или кнопка в консоли.
Отдельно про остановки по лимиту. Такая остановка прерывает агента посреди работы, поэтому
пушить недоделанный MR или перезаписывать вашу папку платформа сама не станет — по
умолчанию она сохранит только патч. Хотите иначе — галочка «доставлять по лимиту» на форме
или /deliver on в чате. Остановка вашей кнопкой доставляет всегда.
Деньги и предохранители
Тарификация устроена так, чтобы у сессии не было способа «уйти в разнос».
Время ВМ считается по начатым минутам, но удерживается авансом: платформа резервирует блок машинного времени до того, как он использован, а неиспользованные минуты возвращает на баланс при остановке. Токены идут через тот же метрируемый шлюз, что и все остальные запросы, — у сессии свой ключ со своим потолком.
Оба потолка есть всегда. Вы выбираете, чем рулить — деньгами или временем, — но второй предел никуда не девается: сессия с лимитом в часах не может потратить неограниченно токенов, а сессия с лимитом в кредитах не может простаивать сутки. Останавливает тот, до которого дойдут первым: бюджет, дедлайн, таймаут простоя или обнулившийся баланс.
Плюс несколько вещей, о которых приятно не думать: количество одновременных сессий на организацию ограничено, машины держат «аренду» и сами гаснут, если платформа перестанет их продлевать, а фоновая уборка регулярно ищет и убивает машины, которых по базе быть не должно. Забытая работающая ВМ — самый дорогой из возможных багов, поэтому за ним следят отдельно.
Две полосы: быстрая и облачная
Сессию можно запустить на нашем собственном железе — это микро-ВМ, готовая примерно за секунду, — или на арендованной облачной ВМ, которой на запуск нужна пара минут. Быстрая полоса дешевле в час; облачная — это чужое железо, если вам так спокойнее. Выбор явный: платформа никогда не подменит одну другой, потому что это разные деньги. Актуальные цены на обе — на странице тарифов и в самой форме запуска.
Изоляция
Граница безопасности здесь — сама виртуальная машина. Она одна на одну сессию, внутри агент работает без бесконечных подтверждений (иначе headless-агент бесполезен), а в конце машина уничтожается вместе со всем, что на ней осталось.
Учётные данные воркспейса — токен GitHub, ключи S3, токен Диска — не сохраняются в базу вообще: они живут в памяти до момента, когда машина заберёт их один раз по TLS, и стираются. В метаданных ВМ, которые хранит облачный провайдер, лежит только адрес обратного вызова, идентификатор сессии и одноразовый токен. Никакого входящего порта у машины нет — всё общение исходящее.
Сценарии
Тикет, который жалко трогать в рабочее время
Обновление зависимостей, миграция на новую версию API, переименование по всему репозиторию, удаление мёртвого кода. Работы много, интересного мало, а прерываться на неё дорого. Запускаете с лимитом в кредитах, уходите заниматься своим делом, вечером смотрите merge request.
Правки по ревью — в тот же PR
Вы уже проговорили в комментариях, что не так. Вставляете ссылку на PR в поле репозитория, пишете задачу словами из ревью — агент склонирует ветку этого PR, внесёт правки и обновит его же. Новых веток и новых PR не появится.
Дежурство и разбор с телефона
Пришёл алерт. Вы в дороге. /new в Telegram, ссылка на репозиторий, задача — «воспроизведи
по логам, найди причину, предложи фикс». Если у организации подключены MCP-серверы
observability или трекера, агент сходит туда сам. Вы читаете ход работы в чате и отвечаете
на вопросы, как в обычной переписке.
Тесты на модуль, до которого не доходят руки
Задача, у которой понятен критерий готовности и не жалко времени машины. Хорошо ложится на
лимит по часам: /limit 2h, и пусть работает.
Не-код: разобрать выгрузку
Пустой воркспейс, zip со стартовыми файлами, задача вида «посчитай по этим csv вот такие срезы и собери отчёт». В конце забираете zip с тем, что получилось. Питон и его пакеты уже в образе, ставить ничего не надо.
Файлы команды, которые живут не в git
Папка Яндекс Диска или префикс в S3 как воркспейс: скачается в начале, синхронизируется обратно в конце. Удобно там, где артефакты — не репозиторий, а документы, датасеты или конфиги.
Прототип с нуля
Пустой воркспейс, описание того, что хочется, — и zip с работающим скелетом. Дешёвый способ проверить идею, не заводя репозиторий и не занимая свою машину сборкой.
Спека прилетела в мессенджер
Вам присылают документ или скриншот прямо в Telegram. Пересылаете его боту с подписью «вот требования, доделай по ним форму» — файл оказывается в воркспейсе, а подпись уходит агенту сообщением. Если модель сессии не умеет смотреть на картинки, бот скажет об этом сразу — а агент, если понадобится, спросит зрячую модель сам.
Честные границы
- Агент не заменяет ревью. Он приносит merge request, а не право его смержить.
- Открытые дешёвые модели не видят изображений. Это не тупик (
ask-modelи/modelрешают вопрос), но знать об этом лучше заранее, чем из непонятной ошибки. - S3 и Яндекс Диск нельзя запустить из чата — для них нужны ключи, которые тогда
остались бы лежать в истории переписки. Их принимает только форма в консоли, по TLS, в
память. Единственное исключение —
/tokenдля git, и сообщение с ним бот удаляет сам. - Одновременных сессий на организацию — ограниченное число. Это защита от случая «запустил пять и забыл», а не жадность.
Как начать
- Заведите аккаунт и пополните баланс — или воспользуйтесь стартовыми кредитами, если они действуют в вашем развёртывании.
- Откройте Консоль → Облачные агенты, выберите воркспейс, опишите задачу, поставьте лимит и нажмите «Запустить».
- Там же нажмите «Подключить Telegram» и откройте выданную ссылку — дальше сессии можно вести из чата.
- Первую задачу возьмите маленькую и проверяемую: «обнови зависимости и почини сборку», «добавь тесты на этот модуль», «приведи README в порядок». Так вы за полчаса поймёте, сколько это стоит и как выглядит результат, — на задаче, где ошибиться не страшно.
Всё остальное — merge request'ы, патчи, архивы, транскрипты — останется в консоли, а машины, на которых это происходило, к тому моменту уже не будет.