Акты Становления

005: Агент/Цикл

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

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

Цикл исполнения

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

  1. Внешний цикл (Создание запросов): Жизнь агента — это последовательность Запросов. Он начинает с какой-то начальной информацией и входит в цикл.
  2. Потоковая передача запросов и вызовов: Внутри цикла он создаёт один Запрос. Этот Запрос сразу же, по мере готовности, начинает отправлять Вызовы (команды), которые собираются в очередь ожидания.
  3. Внутренний цикл (Управление вызовами): Для каждого Запроса запускается внутренний цикл, который отвечает за выполнение всех его Вызовов. Этот процесс очень быстрый и может идти параллельно:
    • Управляющий постоянно проверяет очередь ожидающих Вызовов, чтобы найти те, которые уже можно выполнить (то есть все их зависимости удовлетворены).
    • Все разблокированные Вызовы можно показать человеку для подтверждения, а затем запустить на выполнение одновременно. Это возможно, потому что Состояние агента сделано неизменяемым; каждый Вызов записывает результат в своё уникальное место (_outputPath), что исключает путаницу.
    • Как только Вызов завершается, его результат обновляет общую информацию, что может разблокировать другие ожидающие Вызовы.
    • Этот умный параллельный процесс продолжается, пока не поступят все Вызовы от текущего Запроса и очередь не опустеет. Такая модель сильно ускоряет работу, ведь агент может начать выполнять несколько независимых шагов одновременно, даже не зная всего плана наперёд.
  4. Проверка завершения: Когда внутренний цикл заканчивается, агент смотрит на итоговое Решение от родительского Запроса. Если в нём нет новых Вызовов, считается, что цель достигнута, и внешний цикл останавливается.
  5. Продолжение: Если в Решении были Вызовы, агент возвращается к шагу 2 и создаёт новый Запрос, но уже с обновлённой информацией, включающей результаты предыдущего шага.
  6. Вывод результата: После остановки в поле output финального Решения будет содержаться ответ, соответствующий тому формату, который задал пользователь.

'потоком вызовы'

найдены

любой завершён

не найдены

Да

Нет

Да

Нет

Агент(...)

Агент.Запрос(...)

Найти разблокированные вызовы

Подтвердить и запустить все (параллельно)

Обновить контекст результатом

Поток активен или есть ожидающие вызовы?

Ждать новые вызовы или завершения

В запросе были вызовы?

Вернуть контекст/решение

Человек-в-цикле (HITL)

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

  • Одобрение: Перед тем как выполнить разблокированный Вызов, система может показать его пользователю для одобрения. Это очень эффективно, потому что человеку не нужно тратить время на проверку команд, которые могут быть заблокированы и никогда не запустятся.
  • Исправление: Пользователь может изменить параметры Вызова или даже заменить его на другой.

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

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

Роль данных в цикле

Цикл исполнения создаёт динамическую структуру для поведения агента, но его настоящая сила — в данных, которые циркулируют внутри него. За это отвечает тип сообщения Данные, который мы рассмотрим в 006: Агент/Данные.