006: Агент/Ввод
- Требует:
- Открывает возможность для: 002: Агент/Инструмент
Это особый вид Сообщения с Данными (помеченного как kind: "input"), которое содержит «схему» (schema) и сами «входные данные» (input). Оно описывает, какую информацию ожидает получить Запрос. Это превращает разовую команду в многоразовый инструмент, похожий на функцию в программировании.
Сообщение Ввода — это особый вид Сообщения с Данными, который даёт Запросу чёткую и структурированную инструкцию. Вместо того чтобы каждый раз объяснять всё с нуля, мы заранее определяем, какие данные нужны для получения решения (solution). Таким образом, Сообщение Ввода превращает одноразовую просьбу в многоразовый инструмент, похожий на функцию в программировании. Именно этот механизм позволяет превратить простой Запрос в исполняемый Инструмент, который могут использовать агенты.
Сохранённый и воспроизводимый Запрос система называет Идеей. Когда к его контексту добавляется Сообщение Ввода, он становится исполняемым Идеатором.
Тип сообщения Ввод
Сообщение Ввода — это специальный тип сообщения в контексте, созданный для того, чтобы официально объявить, какие данные принимает Запрос. Это механизм, который фиксирует структурированную информацию, использованную для создания конкретного решения (solution), обеспечивая полную и воспроизводимую запись всего процесса вычислений.
Сообщение Ввода содержит два ключевых свойства:
schema: Объект JSON Schema, который определяет структуру, типы и правила для данных, которые ожидает Запрос. По сути, это чертёж входных данных.input: Конкретный объект с данными, который соответствуетсхеме(schema) и представляет реальные значения, использованные для конкретного запуска.
Благодаря такому структурированному определению входов, любой Запрос может описывать не только свой результат (solution и его schema), но и то, что ему требуется для работы. Это ключевой механизм для создания воспроизводимых запросов.
Пример: Использование Ввода для структурированной инструкции
Как выглядит код
Agent.Request(
config,
schema, // Схема для результата
[
// Контекст
{
type: 'input',
input: {
userName: 'Женя',
topic: 'погода',
},
schema: {
type: 'object',
properties: {
userName: {
type: 'string',
description: 'Автор статьи',
},
topic: {
type: 'string',
description: 'Тема, о которой нужно написать статью',
},
},
},
},
]
);
Что видит большая языковая модель (LLM)
{
role: 'user',
content: {
type: 'text',
text:
`## Данные: ¶input
Входные данные ДОЛЖНЫ рассматриваться как структурированная инструкция
Схема: {
"type": "object",
"properties": {
userName: {
type: "string",
description: "Автор статьи"
},
topic: {
type: "string",
description: "Тема, о которой нужно написать статью"
},
}
}
{
"userName": "Женя",
"topic": "погода"
}`
}
}
Путь к удобству: Интерфейс по умолчанию
Сообщение Input — это не просто техническая деталь. Это ключ, который открывает полноценный интерактивный опыт для любого Запроса. Поскольку Запрос имеет чёткие схемы как для ввода, так и для вывода, для него можно автоматически создать пользовательский интерфейс.
Этот интерфейс состоит из двух частей:
- Форма:
Схема(schema) внутри Сообщения Ввода служит чертежом для формы ввода. Система может прочитать её и мгновенно создать интерактивные поля, кнопки и переключатели с подписями и проверкой правильности ввода. - Результат: Основная
схема(schema) Запроса служит чертежом для вывода. Когда Запрос выполнен, егорешение(solution) можно показать в красивом, структурированном виде, а не просто как сырые данные.
Это превращает любой Запрос в интерактивную песочницу. Пользователь может экспериментировать с разными данными в форме и сразу видеть, как они влияют на итоговый результат. Это делает создание и использование мощных инструментов доступным для всех, превращая абстрактные вычислительные процессы в понятные интерактивные приложения, которые может исследовать каждый.
Взаимодействие с другими системами
Сообщение Ввода — это частный случай шаблона Данных, но оно также взаимодействует с несколькими другими системами для создания сложных и динамичных процессов.
-
Инструмент: Сообщение Ввода — это ключ к превращению Запроса в многоразовый Инструмент.
Схема(schema) из Сообщения Ввода определяет параметры Инструмента (что ему нужно для работы), а основнаясхема(schema) Запроса определяет_outputИнструмента (что он производит). -
План: Сообщение Плана содержит схему из Вызовов Инструментов. Ввод предоставляет начальные параметры, которые передаются в первый Вызов Инструмента в схеме, запуская весь процесс.
-
Экземплирование: При использовании с протоколом Экземплирования, Сообщения Ввода могут предоставлять данные для запросов с несколькими экземплярами — либо как общую настройку для всех, либо как целевой ввод для конкретного экземпляра.
-
Переменные: Сообщение Ввода предоставляет начальные, неизменные данные, которые запускают процесс. Однако Переменные — это механизм, позволяющий использовать эти данные динамически. Вызовы Инструментов используют Ссылки на Переменные для чтения значений из Ввода, связывая начальные параметры с исполняемыми шагами Плана.
От статичного ввода к динамическим связям
Сообщение Ввода предоставляет формальный механизм для передачи структурированных данных агенту, превращая простой Запрос в многоразовый компонент, похожий на функцию. Однако это определяет лишь отправную точку процесса. Чтобы создавать сложные рабочие процессы, эти статичные входные данные нужно соединить с инструментами, которые будут их обрабатывать.
Следующий документ, 007: Агент/Переменные, описывает систему, которая создаёт эти динамические связи, позволяя данным декларативно перетекать от Сообщения Ввода к Инструментам.