009: Агент/Состояние
- Требует:
- Открывает возможности для:
- Дополняется:
Это специальное сообщение типа Данные
, которое работает как живая, постоянно меняющаяся память для рабочего процесса. Оно похоже на блокнот с записями, что позволяет выполнять сложные задачи, состоящие из нескольких шагов.
Эта статья описывает сообщение Состояния — особый вид сообщения Данных, который служит постоянной памятью для агента во время его Цикла выполнения. Если Переменные — это «провода», соединяющие инструменты, то объект Состояния — это «блокнот», где результаты этих соединений записываются и хранятся на протяжении всех шагов задачи.
Объект Состояния — это как файл сохранения в видеоигре. Он содержит всю правду о текущем статусе задачи, что позволяет ставить процесс на паузу и возобновлять его. Когда начинается новый шаг, агент заглядывает в Состояние с предыдущего шага. Это даёт ему чёткое понимание, на чём он остановился, и помогает без проблем продолжить работу.
Направление рабочего процесса с помощью Схемы
Можно задать «схему» для объекта Состояния — это необязательно, но очень полезно. Схема — это как рецепт: она описывает, какие данные и в каком порядке должны появляться. Это подсказывает ИИ, какие инструменты и как нужно использовать. Получается крепкая обратная связь: зная, какие данные должны быть в Состоянии, ИИ создаёт Вызовы инструментов с правильными «адресами для сохранения» (_outputPath
). Это улучшает результат, потому что действия агента становятся более структурированными и соответствуют общему плану.
Инструменты из нескольких шагов
Основная задача сообщения Состояния — позволить разным Инструментам обмениваться информацией в рамках одного непрерывного процесса. Оно делает возможными многошаговые операции, предоставляя общий «блокнот», куда Инструменты могут записывать свои результаты.
Это работает очень просто: один Инструмент записывает свой результат в объект Состояния, а другой Инструмент на следующем шаге может прочитать эти данные и использовать их как входные. Так создаются цепочки инструментов, где результат работы одного напрямую передаётся другому, и ничего не теряется между шагами.
Планирование и Выполнение
Комбинация записи в состояние (через _outputPath
) и чтения из него (с помощью Ссылок на переменные) — это главный механизм, который позволяет разделить планирование и выполнение. Он даёт агенту возможность построить полную схему потока данных — цепочку Вызовов инструментов, связанных ссылками, — ещё до того, как хотя бы один инструмент будет запущен.
Эту схему можно проверить, использовать повторно и даже симулировать, что идеально подходит для скрытого выполнения задач ИИ. Гибкость системы в том, что можно управлять и входами, и выходами на уровне схемы. Разработчик может либо оставить Ссылки на переменные (входы) и _outputPath
(выходы) на усмотрение ИИ, либо задать их жёстко, чтобы обеспечить надёжный и предсказуемый поток данных.
Когда мы создаём Вызовы инструментов, связанные друг с другом через Состояние, мы занимаемся планированием. Эта система создаёт для этого техническую основу: постоянное Состояние служит блокнотом, Ссылки на переменные и _outputPath
— проводами, а Цикл агента — мотором, который всё это крутит. Вместе эти компоненты позволяют агенту построить полную схему потока данных, что и является сутью Плана.
Взаимосвязи
-
Вызов: Система Вызовов тесно связана с Состоянием через специальное свойство
_outputPath
. Это свойство превращает Вызов инструмента, который сам по себе мог бы быть одноразовым действием, в операцию, изменяющую состояние. Указывая_outputPath
, Вызов говорит системе записать свой результат в объект Состояния. Так агент сохраняет итоги своих действий. Это позволяет последовательности Вызовов опираться друг на друга, создавая цепочку причин и следствий, которая фиксируется в Состоянии. -
Данные: Сообщение Состояния — это, по сути, особый случай использования системы сообщений Данных (сообщение Данных с
kind: "state"
). Оно использует основные возможности сообщений Данных для создания постоянной памяти агента. Свойствоschema
используется для описания ожидаемой структуры этой памяти, служа чертежом, который направляет действия ИИ. Кроме того, важна способность системы Данных объединять информацию: это позволяет обновлять Состояние по частям, а система сама собирает эти части в единое целое. -
Области видимости: Система Областей видимости — это основной способ передать объект Состояния инструменту, который работает в изолированной среде, например, Делегату. Когда Вызов делегируется, свойство
_scopes
может указать, что Состояние должно быть включено в «чистую комнату» делегата. Это позволяет изолированным инструментам читать данные из основного рабочего процесса и взаимодействовать с его состоянием контролируемым и явным образом. -
Экземплирование: Сообщение Состояния полностью совместимо с системой Экземплирования. Когда запрос обрабатывает несколько Экземпляров, каждый из них имеет свой собственный, изолированный объект Состояния, определяемый уникальным ключом
_instance
. Ссылки на переменные (например,†state.currentUser.id
) автоматически и незаметно направляются к нужному объекту Состояния, соответствующему Экземпляру, на который нацелен Вызов инструмента. Это позволяет выполнять один и тот же общий План для множества разных состояний параллельно с гарантированной изоляцией данных. -
План: Хотя Состояние позволяет создавать простые последовательности инструментов, его настоящая сила раскрывается, когда оно становится основой для системы Планов. В сообщении Плана рабочий процесс представлен в виде графа, где Вызовы инструментов — это узлы. Объект Состояния обеспечивает связи — рёбра — между этими узлами. Он позволяет одному узлу записывать данные в переменную, а другим — читать их, что делает возможными сложные сценарии, такие как логические ветвления (если-иначе) или параллельное выполнение задач.
От одного Состояния к управляемым процессам
Сообщение Состояния предоставляет механизм для управления памятью одного целостного рабочего процесса. Имея постоянный «блокнот» и переменные для соединения инструментов, мы теперь можем проектировать и выполнять сложные многошаговые процессы.
Следующий документ, 010: Агент/План, описывает систему для организации этих процессов в виде графа Вызовов инструментов.