Что такое ИИ-агент простыми словами: цикл, память и bash-скрипт
Разбираю агента на кейсе Саймона Уиллисона: ChatGPT ждёт релиз Python 3.15 и сам решает, когда сообщить. Вот из каких частей это состоит.
ИИ агент простыми словами — программа, которой не расписали каждый шаг, а дали цель и инструмент: действуй сам, пока не наступит нужное условие. Разница с обычным скриптом видна на предельно простом кейсе: разработчик Саймон Уиллисон попросил ChatGPT последить за репозиторием GitHub, пока там не появится релиз Python 3.15, и сообщить об этом. Эта задача — хороший повод разобрать agent loop: из каких частей состоит такой агент и где он может сломаться.
Чем агент отличается от обычного скрипта
Скрипт делает ровно то, что в нём написано: открыл репозиторий, сравнил строку, вывел результат. Шаги фиксированы заранее, и если ситуация выйдет за их рамки, скрипт просто не заметит.
Агенту вместо шагов дают цель. Уиллисон не писал код проверки — он сформулировал задачу как инструкцию для модели:
Clone https://github.com/actions/python-versions and git pull once an hour until they add the stable 3.15 - then tell me about it · once an hour until they add the stable 3.15 · Саймон Уиллисон
Дальше модель сама решает, как часто проверять, что считать совпадением и когда остановиться. В этом и разница: скрипт исполняет инструкцию, агент — интерпретирует цель и действует по обстоятельствам.
Цикл — проверить, сравнить, решить, сообщить
За формулировкой «пока не появится» стоит повторяющийся цикл — тот самый agent loop, который выполняется раз в час:
Цикл агента · Проверить · git pull раз в час · Сравнить · есть ли версия 3.15 в репозитории · Решить · ждать дальше или сообщить · Сообщить · написать о релизе, как попросили
Клонировать репозиторий и обновлять его — это инструмент агента; git pull — его единственное действие в мире. Решение «ждать дальше или сообщить» — то, что отличает агента от простого вызова API: модель смотрит на результат git pull и каждый раз выбирает, что с ним делать.
Проверка версии · git pull · 3.15 ещё нет · 3.15.0 добавлен · сообщить о релизе
Когда в репозитории actions/python-versions появляется версия 3.15.0, цикл на этом же шаге заканчивается отчётом, а не очередным ожиданием.
Зачем агенту память между запусками
Цикл повторяется раз в час, но каждый запуск должен знать, что было в предыдущем. Иначе агент либо отчитывается о релизе при каждой проверке, либо вообще не замечает момент, когда ситуация изменилась.
Термин · Состояние · что агент помнит между проверками: релиз ещё не вышел, сообщение ещё не отправлено
В кейсе Уиллисона память простая: помнить, что отчёт ещё не отправлен, и что на предыдущих проверках 3.15 не находилось. Без этого состояния «проверить» и «сравнить» из цикла выше теряют смысл — сравнивать не с чем.
Где агент может сломаться
Уиллисон пишет, что ждал релиз «пару дней» — и именно это растянутое по времени ожидание самое уязвимое место такой схемы. Если процесс или сессия модели не держится все эти часы, цикл обрывается молча: ни ошибки, ни отчёта, просто тишина.
Второй риск — ложное совпадение. Если модель на шаге сравнения ошибётся и решит, что 3.15 уже добавлена, она сообщит раньше времени, и это будет сложно отличить от настоящего успеха, пока не проверишь репозиторий вручную.
Третий риск — повторный отчёт. Если агент не запомнил, что уже сообщал о релизе, он может написать об этом снова на следующей проверке.
Когда агент избыточен, а bash-скрипт достаточен
В этой конкретной задаче сравнение детерминированное: либо строка «3.15» появилась в репозитории, либо нет. Для такой проверки не нужно суждение модели — достаточно cron-задачи, которая раз в час делает git pull и grep по файлам, а при совпадении шлёт уведомление.
Два пути к одному результату · cron + bash-скрипт · git pull и grep по расписанию · ИИ-агент · сам решает, что и когда сообщить
Для разового случая разница в усилиях небольшая: написать и протестировать такой cron дольше, чем сформулировать задачу словами. Но если проверка повторяется часто и правило не меняется, скрипт обычно надёжнее: он не обрывается молча и не меняет интерпретацию условия от запуска к запуску.
Вопросы и ответы
Что такое ИИ агент простыми словами?
Программа, которой вместо фиксированных шагов дают цель и инструмент. Агент сам решает, когда и как действовать, пока не выполнится условие цели — например, пока в репозитории не появится нужная версия.
Как работает цикл агента (agent loop)?
Agent loop — это повтор четырёх шагов: проверить состояние инструментом (например, git pull), сравнить его с условием цели, решить, выполнено ли условие, и либо сообщить результат, либо повторить цикл на следующем часе.
Чем агент отличается от обычного cron-скрипта?
Cron-скрипт и агент могут делать одно и то же действие по расписанию, но скрипт сравнивает по жёсткому правилу, а агент интерпретирует условие и сам решает, что считать совпадением. Там, где проверка сводится к точному совпадению строки, скрипт с cron надёжнее агента.