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

007: Агент/Переменные

Строка со специальным синтаксисом (†<тип>.<путь>), используемая в параметрах вызова инструмента для динамической ссылки на значение из контекста агента.

Переменные основаны на системе Данных для обеспечения динамических потоков данных. Они делают структурированную информацию интерактивной, позволяя вызовам инструментов ссылаться на значения, существующие в контексте агента (например, сообщение ввода или состояния), без необходимости прямого копирования данных в их параметры.

Чтение из контекста

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

Ссылка представляет собой простой строковый синтаксис с префиксом в виде крестика (). Синтаксис таков: †<тип>.<путь>, где <тип> — это тип сообщения с данными (например, state, input), а <путь> — это путь к желаемому значению в точечной нотации.

Параметры инструмента, использующие переменные

{
  "_tool": "greetUser",
  "userName": "†input.userName"
}

Эквивалентный код на Typescript

greetUser({
  userName: input.userName,
});

Взаимодействие с другими системами

От эфемерных соединений к постоянной памяти

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

Следующий документ, 008: Агент/Вывод, описывает механику записи результатов в контекст.