Что такое AI-агент: скрипт, который сам выбирает следующий шаг
Эту петлю вы уже крутили руками — и не один раз. Открывается pull request, вы копируете дифф в чат с моделью, она предполагает, где проблема. Вы открываете файл, копируете его туда же. Модель смотрит уже на два куска и предлагает третий. Пятнадцать минут, дюжина пересылок, и вот оно — замечание, которое можно оставить в PR.
А теперь представьте, что то же самое произошло в 22:34, когда открылся чужой PR, а вы смотрели сериал. Дифф прочитан, нужные файлы открыты, замечания сформулированы и posted. Никто не копировал ничего руками.
Разница между первым и вторым сценариями — и есть предмет этого курса.
Скрипт, чат и агент: кто решает, что дальше
Разложите три знакомые вещи по одному признаку — кто выбирает следующее действие.
Обычный скрипт с вызовом LLM в середине — скажем, «прогони текст ошибки через модель и верни предположение» — делает ровно то, что вы написали. Один запрос, один ответ, ветвление продумано вами заранее. Это надёжно и часто достаточно. Но на неожиданный вход такой скрипт реагирует так, как никто не планировал: модель сказала «нужно посмотреть файл X», а скрипку всё равно — у него нет шага «посмотреть файл X».
Чат с моделью — противоположность. Модель умна и сообразительна, но без рук: каждое её действие проходит через вашу копипасту. Вся петля «подумала → вы сделали → она посмотрела» держится на вас. Хотите двадцать PR в день — привет, двадцать раз по пятнадцать минут.
Агент убирает вас из середины этой петли. Агент — это программа, в которой решение „что сделать следующим“ принимает языковая модель, а не заранее прописанная логика. Модель встроена в цикл, ей выданы инструменты (прочитать файл, найти строку, отправить запрос) — и она сама решает, каким инструментом воспользоваться на очередном шаге, а когда сказать «готово».
Заметьте: определение скромное. Никакой «общей свободы воли» — просто право выбирать следующий шаг внутри программы, которую написали вы.
Петля из четырёх слов
Внутри любого агента живёт один и тот же цикл:
┌──────────────────────────────────────┐
▼ │
[мысль] → [действие] → [наблюдение] → снова мысль... → [ответ]
модель инструмент результат модель сказала «готово»Модель думает («чтобы понять этот дифф, надо посмотреть, как устроен сервис»), выбирает действие (read_file("order_service.py")), получает наблюдение — содержимое файла — и думает дальше. Оборот цикла называется шагом. Ответ появляется, когда модель решает, что задача решена — или когда исчерпан лимит шагов.
Слово «наблюдение» здесь не для красоты. Модель не видит ваш экран и не знает, чем закончился вызов инструмента, пока результат не вернётся в её контекст текстом. Ошибка, пустой список, файл на тысячу строк — всё это наблюдения, по которым она строит следующий шаг. Плохо описанный результат инструмента — и самый умный агент тычется наугад, как навигатор без сигнала GPS.
Что агент делает сам, а что остаётся вам
Потренируемся на агенте-ревьюере, которого вы соберёте в третьем модуле.
Сам он умеет довольно много: забрать дифф открытого PR, прогнать быстрые проверки, решить, какие файлы кроме диффа стоит прочитать, превратить подозрение в конкретное замечание на конкретной строке.
Ваше в этой системе — всё, что вокруг петли. Какие инструменты выдать (читать файлы — да, делать push в main — наверное, нет). Какие правила вшить в промпт. Какой лимит шагов поставить. Когда бот обязан промолчать — скажем, на диффах из автоматических генераторов. Наконец, человек решает, что делать с замечанием: агент предлагает, вы взвешиваете.
Ближайшая живая аналогия — младший коллега в первый месяц. Он сам ходит по репозиторию и читает код, но право мержить и писать клиентам ему не дают: рамки поставили те, кто отвечает за результат. С агентами та же механика, только рамки задаются кодом: лимит шагов, лимит потраченных токенов, список разрешённых действий. Слово «автономность» в отношении агентов означает ровно это — рутину внутри рамки, которую построил разработчик. Вне рамки агента не существует.
Почему это курс для разработчиков, а не «промпт-мастеров»
Собрать агента — работа инженерная. Нужно посчитать, сколько токенов съест один прогон и в какую сумму выльется месяц работы бота (модуль 01). Нужно спроектировать инструменты и не дать петле зациклиться (модуль 02). Нужно приладить всё к GitHub API и своему репозиторию (модули 03–05) и поставить агента на рельсы CI так, чтобы он не сломался и не слил ключи (модуль 06). Промпты здесь — десятая часть дела, и мы будем относиться к ним как к коду.
А начинается оно с самой приземлённой вещи: одного запроса к модели из вашего кода. Следующие два занятия — про это.
Что запомнить
Агент — программа, где выбор следующего шага делает языковая модель. Скрипт решает за вас заранее, чат держит петлю на вас, агент забирает её себе.
Петля: мысль → действие → наблюдение → мысль → … → ответ. Один оборот — шаг, шагов всегда конечное число.
Рамку строите вы: инструменты, лимиты, правила и право финального решения. Автономность агента — автоматизация рутины внутри этой рамки.
Это инженерная задача: деньги, код, API, CI. Промпты — часть работы, но не вся работа.
Что такое AI-агент: скрипт, который сам выбирает следующий шаг
6 мин
Путь курса: от первого запроса к LLM до бота в GitHub Actions
5 мин
Окружение: Python, VS Code и «мозг» для агента
8 мин
Домашка: первый запрос к модели
4 мин
Квиз: Окружение: Python, VS Code и „мозг“ для агента
6 мин