Что такое AI-агент: скрипт, который сам выбирает следующий шаг

Эту петлю вы уже крутили руками — и не один раз. Открывается pull request, вы копируете дифф в чат с моделью, она предполагает, где проблема. Вы открываете файл, копируете его туда же. Модель смотрит уже на два куска и предлагает третий. Пятнадцать минут, дюжина пересылок, и вот оно — замечание, которое можно оставить в PR.

А теперь представьте, что то же самое произошло в 22:34, когда открылся чужой PR, а вы смотрели сериал. Дифф прочитан, нужные файлы открыты, замечания сформулированы и posted. Никто не копировал ничего руками.

Разница между первым и вторым сценариями — и есть предмет этого курса.

Скрипт, чат и агент: кто решает, что дальше

Разложите три знакомые вещи по одному признаку — кто выбирает следующее действие.

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

Чат с моделью — противоположность. Модель умна и сообразительна, но без рук: каждое её действие проходит через вашу копипасту. Вся петля «подумала → вы сделали → она посмотрела» держится на вас. Хотите двадцать PR в день — привет, двадцать раз по пятнадцать минут.

Агент убирает вас из середины этой петли. Агент — это программа, в которой решение „что сделать следующим“ принимает языковая модель, а не заранее прописанная логика. Модель встроена в цикл, ей выданы инструменты (прочитать файл, найти строку, отправить запрос) — и она сама решает, каким инструментом воспользоваться на очередном шаге, а когда сказать «готово».

Заметьте: определение скромное. Никакой «общей свободы воли» — просто право выбирать следующий шаг внутри программы, которую написали вы.

Петля из четырёх слов

Внутри любого агента живёт один и тот же цикл:

java
        ┌──────────────────────────────────────┐
        ▼                                      │
  [мысль] → [действие] → [наблюдение] → снова мысль... → [ответ]
   модель    инструмент    результат          модель сказала «готово»

Модель думает («чтобы понять этот дифф, надо посмотреть, как устроен сервис»), выбирает действие (read_file("order_service.py")), получает наблюдение — содержимое файла — и думает дальше. Оборот цикла называется шагом. Ответ появляется, когда модель решает, что задача решена — или когда исчерпан лимит шагов.

Слово «наблюдение» здесь не для красоты. Модель не видит ваш экран и не знает, чем закончился вызов инструмента, пока результат не вернётся в её контекст текстом. Ошибка, пустой список, файл на тысячу строк — всё это наблюдения, по которым она строит следующий шаг. Плохо описанный результат инструмента — и самый умный агент тычется наугад, как навигатор без сигнала GPS.

Что агент делает сам, а что остаётся вам

Потренируемся на агенте-ревьюере, которого вы соберёте в третьем модуле.

Сам он умеет довольно много: забрать дифф открытого PR, прогнать быстрые проверки, решить, какие файлы кроме диффа стоит прочитать, превратить подозрение в конкретное замечание на конкретной строке.

Ваше в этой системе — всё, что вокруг петли. Какие инструменты выдать (читать файлы — да, делать push в main — наверное, нет). Какие правила вшить в промпт. Какой лимит шагов поставить. Когда бот обязан промолчать — скажем, на диффах из автоматических генераторов. Наконец, человек решает, что делать с замечанием: агент предлагает, вы взвешиваете.

Ближайшая живая аналогия — младший коллега в первый месяц. Он сам ходит по репозиторию и читает код, но право мержить и писать клиентам ему не дают: рамки поставили те, кто отвечает за результат. С агентами та же механика, только рамки задаются кодом: лимит шагов, лимит потраченных токенов, список разрешённых действий. Слово «автономность» в отношении агентов означает ровно это — рутину внутри рамки, которую построил разработчик. Вне рамки агента не существует.

Почему это курс для разработчиков, а не «промпт-мастеров»

Собрать агента — работа инженерная. Нужно посчитать, сколько токенов съест один прогон и в какую сумму выльется месяц работы бота (модуль 01). Нужно спроектировать инструменты и не дать петле зациклиться (модуль 02). Нужно приладить всё к GitHub API и своему репозиторию (модули 03–05) и поставить агента на рельсы CI так, чтобы он не сломался и не слил ключи (модуль 06). Промпты здесь — десятая часть дела, и мы будем относиться к ним как к коду.

А начинается оно с самой приземлённой вещи: одного запроса к модели из вашего кода. Следующие два занятия — про это.

Что запомнить

  • Агент — программа, где выбор следующего шага делает языковая модель. Скрипт решает за вас заранее, чат держит петлю на вас, агент забирает её себе.

  • Петля: мысль → действие → наблюдение → мысль → … → ответ. Один оборот — шаг, шагов всегда конечное число.

  • Рамку строите вы: инструменты, лимиты, правила и право финального решения. Автономность агента — автоматизация рутины внутри этой рамки.

  • Это инженерная задача: деньги, код, API, CI. Промпты — часть работы, но не вся работа.

  • theory icon

    Что такое AI-агент: скрипт, который сам выбирает следующий шаг

    6 мин

  • theory icon

    Путь курса: от первого запроса к LLM до бота в GitHub Actions

    5 мин

  • theory icon

    Окружение: Python, VS Code и «мозг» для агента

    8 мин

  • homework icon

    Домашка: первый запрос к модели

    4 мин

  • quiz icon

    Квиз: Окружение: Python, VS Code и „мозг“ для агента

    6 мин

🎯
Тренажёр собеседованияЗакрепите знания перед интервью