Урок по треку ИИ в работе разработчика 6 мин

Агенты в разработке

Агентные IDE и CLI-агенты, MCP, режимы подтверждения, песочницы, границы автономии, откат и журнал действий.

Автодополнение предлагает строку, чат отвечает текстом. Агент сам выполняет шаги: читает файлы, правит код, запускает тесты и команды в терминале, смотрит на результат и решает, что делать дальше. Это сильно ускоряет рутину и так же сильно увеличивает цену ошибки.

Какие бывают агенты

  • Агентный режим в IDE. Агент работает в редакторе, показывает дифф по каждому файлу, просит разрешения на команды.
  • CLI-агенты. Запускаются в терминале, работают с репозиторием и командами напрямую. Их удобно запускать в контейнере или в CI.
  • Фоновые и облачные агенты. Получают задачу (например, issue), работают в своей среде и приносят готовый pull request.

Механика у всех одна: цикл «модель предлагает действие, инструмент его выполняет, результат возвращается модели». Разница в том, где выполняются действия и кто их подтверждает.

MCP

Model Context Protocol это открытый протокол, по которому ассистент подключается к внешним инструментам и данным: трекеру задач, базе, документации, браузеру. MCP-сервер описывает свои инструменты, клиент (IDE или CLI-агент) даёт модели их вызывать.

Риски MCP:

  • Сторонний сервер это чужой код, который работает с вашими правами и токенами. Ставить только из доверенных источников и читать, что он умеет.
  • Ответы сервера попадают в контекст модели и могут содержать prompt injection.
  • Инструмент с широкими правами (запись в базу, отправка сообщений) превращает любую инъекцию в реальное действие.

Границы автономии

Чем больше агент делает без человека, тем важнее ограничения. Основные рычаги:

  1. Режимы подтверждения. Чтение и правка файлов в рабочей папке без вопросов, команды и сеть с подтверждением. Полный автомат только в изолированной среде.
  2. Allowlist команд. Разрешены npm test, git diff, линтер. Запрещены rm -rf, git push --force, curl на произвольные адреса, деплой.
  3. Песочница. Контейнер или виртуальная машина без продовых доступов, без секретов, с ограниченной сетью. Худший сценарий: агент сломал песочницу, которую можно выбросить.
  4. Отдельная ветка или git worktree. Агент работает в своей копии, основная ветка защищена, результат приходит через pull request и обычное ревью.
  5. Лимиты. Число шагов, время, бюджет токенов. Без них агент может часами крутиться на одной ошибке.
  6. Журнал. Все команды и правки записываются, чтобы понять, что произошло, и откатить.

Типовые провалы агентов

  • «Починил» тест, удалив проверку или пометив его пропущенным.
  • Поменял сразу много файлов, и дифф невозможно проверить за разумное время.
  • Добавил зависимость, которой нет или которая не нужна.
  • Пошёл по ложному следу и сделал двадцать шагов в неправильную сторону.
  • Выполнил инструкцию из README или issue, которую туда подложил злоумышленник.

Отсюда практика: давать агенту небольшую, проверяемую задачу с понятным критерием готовности (например, «тесты зелёные, публичный API не менялся») и смотреть дифф целиком, а не только итоговое сообщение агента.

Как поставить задачу агенту

Хорошая задача для агента похожа на хороший тикет для нового коллеги:

  • Что сделать и зачем, в одном-двух предложениях.
  • Где смотреть: какие файлы и модули, на какой соседний код равняться.
  • Что нельзя трогать: публичный API, миграции, конфиги деплоя.
  • Как понять, что готово: какие тесты должны пройти, какие команды запустить.

Если агент ушёл не туда, дешевле остановить его и переформулировать задачу, чем пытаться выправить двадцатый шаг.

Агент в CI

Агентов запускают и в пайплайне: разбор упавшего теста, черновик исправления, ревью pull request. Тут те же правила, только строже: токен с минимальными правами, без доступа к секретам деплоя, результат только в виде комментария или отдельного pull request. Текст pull request и issue приходит от внешних людей, значит это недоверенный ввод.

Что ответить на собеседовании

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

Итог

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

Закрепите за 5 минут

После урока в тренажёре 3-5 проверочных вопросов, дальше модуль уходит в повторения.