Перейти к содержанию

Модуль 21. Цикл агента

Чему вы научитесь в этом модуле

  • Записывать агента как цикл: модель думает, вызывает инструмент, получает наблюдение, думает заново.
  • Объяснять, что такое инструмент и каким образом модель решает, какой из них вызвать.
  • Различать состояние, память и политику агента.
  • Читать трейс как последовательность «мысль → действие → наблюдение» и находить в нём место ошибки.
  • Объяснять, почему читаемый трейс важнее, чем кажется, и каким образом он связывает агента с eval из части VII.

Время: около двух недель. Пререквизиты: модуль 11. Ноутбук: открыть в Colab · notebooks/21-the-agent-loop.ipynb

Зачем нужен этот модуль

Языковая модель из модуля 11 умеет продолжать текст, но не умеет действовать: посмотреть в базу данных, произвести вычисление, выполнить код. Агент — это модель, помещённая в цикл с инструментами. Ничего сверх этого в слове «агент» нет, и весь цикл помещается на одном экране.

Модель Инструмент действие наблюдение ответ когда решено

Инструменты

Инструмент — это функция, которую агент может вызвать: поисковый запрос, калькулятор, обращение к базе данных, запуск фрагмента кода. Модель не выполняет инструмент сама — она выбирает, какой инструмент и с какими аргументами использовать, а обёртка вокруг модели выполняет вызов и возвращает результат обратно. По механизму это тот же текст из модуля 11: модель выдаёт текст, но по его формату обёртка читает его не как ответ пользователю, а как «вызови такой-то инструмент с такими аргументами».

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

Состояние, память и политика

Три разные вещи, которые легко путаются между собой.

Состояние — то, что агент видит прямо сейчас: условие задачи плюс все уже сделанные шаги. Память — то, что переносится дальше: краткая сводка прошлого, факты, ранее принятые решения; без неё длинный диалог не помещается в контекстное окно. Политика — правило, по которому из текущего состояния выбирается следующее действие; в LLM-агенте роль политики играет сама модель.

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

Трейс

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

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

Отсюда требование к инструментам курса: трейс должен быть читаемым. Там, где нужен агентный цикл, который можно проследить по шагам, курс использует glia: цикл умещается на экране, а каждый шаг — мысль, вызов, наблюдение — записан так, чтобы через неделю можно было точно понять, в каком месте всё пошло не туда. Агент без читаемого трейса — это чёрный ящик, который иногда оказывается прав.

Трейс — это будущий eval. Раз всё, что агент сделал, записано по шагам, по трейсу можно систематически проверять его работу: правильные ли инструменты, в правильном ли порядке, честен ли ответ. Это прямая дорога к модулю 23, где eval — это тест из модуля 7, а регрессия — разница между трейсами двух прогонов одной задачи. Читаемый трейс здесь — то же, что воспроизводимый прогон в модуле 1: без него нечего проверять.

Практическая часть

Часть 1. Работа с ноутбуком

Откройте notebooks/21-the-agent-loop.ipynb. Только numpy и matplotlib, вычисления занимают мгновения.

Что содержится внутри:

  1. Цикл агента с нуля: модель-заглушка плюс честные инструменты (калькулятор, справочник). Двадцать строк кода, и они производят полноценный трейс.
  2. Трейс как артефакт отладки: ломаем один инструмент и по трейсу находим точное место сбоя — не гадая, а прочитав.
  3. Регрессия как разница трейсов: два прогона с разными версиями инструмента, diff трейсов. Это eval из модуля 23 в зачатке.

Часть 2. Собственный агент

Возьмите задачу, которую вы решаете в несколько шагов с обращением к внешним источникам.

  1. Разложите её на «мысль → действие → наблюдение». Сколько шагов получилось и какие инструменты потребовались?
  2. Что здесь является состоянием, что — памятью, что — политикой?
  3. Где агент с наибольшей вероятностью свернёт не туда, и как это будет выглядеть в трейсе?
  4. Как выглядел бы ответ, верный при неверном рассуждении?

Задание

  1. Реализуйте цикл агента с двумя инструментами и остановкой по ответу. Уложитесь в один экран кода.
  2. Прогоните три задачи и напечатайте трейсы. По трейсу восстановите, что агент думал на каждом шаге.
  3. Сломайте один инструмент (пусть возвращает мусор) и покажите, что трейс точно указывает место сбоя.
  4. Добавьте память: сводку прошлых шагов, чтобы длинная задача поместилась в контекст. Что теряется при сжатии?
  5. Прогоните одну и ту же задачу дважды с разными инструментами и постройте diff трейсов. Это регрессия из модуля 23.

Проверка усвоения

  1. Из чего состоит цикл агента и чем он отличается от одиночного ответа модели?
  2. Что такое инструмент и почему модель его не выполняет сама?
  3. Чем различаются состояние, память и политика агента?
  4. Почему трейс — единственное место, где видно, что агент в действительности сделал?
  5. Может ли ответ быть верным при неверном рассуждении? Каким образом это обнаружить?
  6. Почему читаемый трейс важнее, чем кажется?
  7. Как трейс связывает агента с eval из модуля 23?

Что дальше

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

Агент — это модель в цикле с инструментами: думает, действует, наблюдает, пока не решит. Всё, что он сделал, записано в трейсе, и трейс — единственное, по чему можно судить, а не гадать.


Принцип

Хороший агент — скромная модель с честными инструментами и читаемым трейсом, а не всезнающая модель, которой верят на слово. Верный ответ при неверных шагах — это удача, а не работа.