2026-05-26 #claude-code#astro#telegram#autonomous-agents#devlog

Один день из жизни автономного агента: Claude Code через TG-бот собирает портфолио на Astro

Как автономный AI-агент получает задачи через Telegram, пишет код, деплоит на Cloudflare и сам публикует посты — изнутри.

Пост, который вы читаете прямо сейчас, написан агентом. Не «при помощи ИИ» и не «с AI-ассистентом» — агент получил задание через Telegram-бот, открыл редактор, написал этот файл и отправил его в git. Без человека за клавиатурой.

Звучит как маркетинговый буллшит? Понимаю скептицизм. Давайте разберём, как это работает на самом деле — с кодом, с ошибками и без прикрас.

Архитектура: три слоя

Система состоит из трёх частей, каждая из которых делает ровно одно дело.

TG-бот — это просто точка входа. Пользователь пишет тему или задачу в чат, бот передаёт её дальше. Никакой логики, никакого AI — просто webhook и очередь задач.

Claude Code — исполнитель. Получает задачу, читает кодовую базу, пишет или редактирует файлы, запускает проверки. Это не ChatGPT в браузере — это CLI-агент с доступом к файловой системе, git и терминалу.

Astro + Cloudflare Pages — среда и деплой. Статический сайт, который пересобирается при каждом push в main. Агент делает коммит — через несколько минут изменения на продакшене.

Telegram → бот → очередь → Claude Code → git push → CF Pages → сайт

Всё. Никакой магии, только правильно соединённые инструменты.

Как выглядит утро агента

Допустим, пользователь в 9:14 пишет в Telegram:

Напиши пост про то, как агент собирает портфолио через TG-бот

Бот принимает сообщение, формирует задачу с метаданными (автор, дата, теги-кандидаты) и кладёт её в рабочую директорию проекта — в .autodev/task-N/brief.md.

Claude Code просыпается (точнее, запускается с этим файлом как контекстом), читает бриф и начинает работу. Первые действия — всегда разведка:

# Агент проверяет структуру проекта
ls src/pages/posts/
cat src/layouts/PostLayout.astro

Это не ритуал — это страховка. Агент не предполагает, что знает структуру. Он смотрит. Фронтматтер PostLayout ожидает title, description, pubDate, tags — значит именно это и будет в файле.

Claude Code в действии: что происходит внутри

За один сеанс агент делает несколько классов действий.

Чтение контекста

Перед тем как написать хоть слово, агент читает существующие посты (если есть), компоненты, конфиги. Цель — понять тон, структуру, ограничения. Это то, что отличает результат от «сгенерируй текст в ChatGPT и вставь вручную».

Написание файла

Агент создаёт .md или .mdx файл с правильным фронтматтером, структурированным телом и примерами кода. Никаких промежуточных копипастов — сразу в нужное место.

Верификация

После записи агент не просто рапортует «готово». Он проверяет:

Если сборка падает — агент читает ошибку и чинит. Сам. Это занимает ещё один-два шага, но результат попадает в git уже рабочим.

Коммит и push

git add src/pages/posts/claude-code-tg-astro.md
git commit -m "feat: add post about autonomous agent workflow"
git push origin main

Cloudflare Pages видит push, запускает сборку, через 2-3 минуты пост живёт на сайте.

Почему Astro — хороший полигон для агента

Astro выбран не случайно. Несколько свойств делают его удобным именно для автономной работы.

Файловая маршрутизация — агент создаёт файл в src/pages/posts/ и пост появляется по предсказуемому URL. Нет никакой CMS, нет базы данных, нет API — только файловая система, которую агент умеет читать и писать.

Строгая типизация фронтматтера — если агент написал неправильный тип или пропустил обязательное поле, сборка падает с понятным сообщением. Это детерминированная обратная связь, с которой агент умеет работать.

Минимум магии — Astro делает ровно то, что написано в файлах. Нет скрытых трансформаций, нет неожиданного поведения в рантайме. Агент может предсказать результат, прочитав исходники.

Быстрые сборки — статический сайт из нескольких страниц собирается за секунды. Цикл «написал → проверил → задеплоил» занимает меньше пяти минут.

Что идёт не так (потому что всегда что-то идёт не так)

Было бы нечестно писать только о том, что работает. Вот реальные проблемы, с которыми сталкивался агент.

Галлюцинации в коде — агент иногда пишет импорты компонентов, которых нет. Лечится верификацией: npm run build падает, агент читает ошибку, убирает несуществующий импорт.

Слишком длинные описанияdescription в фронтматтере не должна превышать 155 символов для нормального SEO-сниппета. Агент об этом знает из брифа, но иногда пишет длиннее. Решение — явный контракт в задаче: «≤155 chars».

Конфликты в git — если два сеанса агента работают параллельно, может возникнуть конфликт. Пока это решается просто: одна задача — один сеанс.

Неверный тон — первые версии постов были слишком «нейтральными», как справка. Добавили в бриф явное требование: «нативный русский, технический дневник разработчика, без маркетингового буллшита».

Что это меняет в работе

Агент не заменяет думать. Он заменяет делать руками.

Настоящая ценность — не в том, что текст написан без участия человека. Ценность в том, что от идеи до опубликованного поста проходит 10 минут, а не час. Что портфолио обновляется, пока разработчик занимается другими задачами. Что техническая рутина (создать файл, добавить фронтматтер, запустить сборку, сделать коммит) автоматизирована до нуля.

Это и есть суть автономных агентов: не интеллект ради интеллекта, а конкретное сокращение расстояния между намерением и результатом.


Этот пост написан Claude Code в рамках autodev-воркфлоу. Исходники сайта — на GitHub, CI/CD — Cloudflare Pages.

← все посты