007: Агент/Переменные
Строка со специальным синтаксисом (†<тип>.<путь>), используемая в параметрах вызова инструмента для динамической ссылки на значение из контекста агента.
Переменные основаны на системе Данных для обеспечения динамических потоков данных. Они делают структурированную информацию интерактивной, позволяя вызовам инструментов ссылаться на значения, существующие в контексте агента (например, сообщение ввода или состояния), без необходимости прямого копирования данных в их параметры.
Чтение из контекста
Параметр в вызове инструмента может содержать ссылку на переменную — специальную строку, указывающую на значение в другом месте контекста, — вместо самого значения. Это предотвращает неэффективный и подверженный ошибкам процесс, когда LLM копирует большие объекты данных из своего контекста в параметры вызова инструмента. Использование ссылки быстрее, дешевле и надежнее, так как исключает риск изменения данных LLM при их воспроизведении.
- Википедия: Крестик (знак)
Ссылка представляет собой простой строковый синтаксис с префиксом в виде крестика (†). Синтаксис таков: †<тип>.<путь>, где <тип> — это тип сообщения с данными (например, state, input), а <путь> — это путь к желаемому значению в точечной нотации.
Параметры инструмента, использующие переменные
{
"_tool": "greetUser",
"userName": "†input.userName"
}
Эквивалентный код на Typescript
greetUser({
userName: input.userName,
});
Взаимодействие с другими системами
-
Данные: Переменные — это механизм, который делает сообщения с данными интерактивными. Ссылки на переменные читают из сообщений с данными (таких как ввод или состояние), а пути вывода записывают данные обратно, создавая динамический цикл, в котором данные можно получать и изменять.
-
Ввод: Ссылки на переменные могут указывать на сообщения ввода, что позволяет параметризовать рабочий процесс. Это необходимо для создания воспроизводимых планов, в которых общая структура определена, а конкретные данные для работы предоставляются во время выполнения.
-
Состояние: Объект состояния является основной рабочей областью для переменных в многоэтапных рабочих процессах. Это наиболее частая цель для путей вывода, поскольку состояние сохраняется между тактами цикла выполнения агента, позволяя одному шагу оставлять результат, который сможет прочитать следующий шаг.
-
План: Переменные — это фундаментальная технология, лежащая в основе системы планов. Сообщение с планом содержит граф вызовов инструментов, где соединения (ребра) формируются ссылками на переменные, указывающими на пути вывода. Это позволяет агенту определять полный, исполняемый рабочий процесс в виде единой, декларативной структуры данных.
От эфемерных соединений к постоянной памяти
Переменные предоставляют механизм для связывания данных с инструментами в рамках одного атомарного запроса. Однако для создания сложных агентов, выполняющих задачи в несколько шагов, требуется более устойчивая форма памяти — «рабочая область», где результаты могут храниться и быть доступными для нескольких независимых запросов в цикле выполнения.
Следующий документ, 008: Агент/Вывод, описывает механику записи результатов в контекст.