007: Агент/Ввод
- Требуется: 001: Агент/Запрос
- Открывает возможности для: 002: Агент/Инструмент
Это специальное сообщение, которое содержит схему
(правила) и входные данные
(информацию). Оно объясняет, какая информация нужна для выполнения Запроса, и превращает его в многоразовый инструмент, похожий на функцию в программировании.
Этот документ описывает Входное сообщение — особый вид сообщения, который даёт Запросу чётко структурированную инструкцию. Официально определяя данные, которые Запрос использует для создания своего решения
, Входное сообщение превращает одноразовую команду в многоразовый компонент, похожий на функцию. Этот подход — ключ к превращению простого Запроса в исполняемый Инструмент, который могут использовать агенты.
Тип сообщения Input
Входное сообщение — это специальный тип контекстного сообщения, предназначенный для формального объявления данных, которые принимает Запрос. Это механизм, который фиксирует структурированный ввод, использовавшийся для получения определённого решения
, обеспечивая полную, воспроизводимую запись всего процесса вычислений.
Входное сообщение содержит два ключевых свойства:
schema
: Объект JSON Schema, который определяет структуру, типы и ограничения для данных, которые ожидаетЗапрос
.input
: Конкретный объект с данными, который соответствуетсхеме
и представляет собой фактические значения, использованные для конкретного выполнения.
Определяя свои входные данные таким структурированным образом, любой Запрос может стать самоописывающимся не только в том, что он выводит (решение
и его схема
), но и в том, что ему требуется для генерации. Это основной механизм для создания воспроизводимого запроса.
Пример: Использование Ввода для структурированной инструкции
Как выглядит код
Agent.Request(
config,
schema, // Схема для вывода
[
// Контекст
{
type: 'input',
input: {
userName: 'Jane',
topic: 'the weather',
},
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": "Jane",
"topic": "the weather"
}`
}
}
Путь к удобству: готовый интерфейс по умолчанию
Сообщение Input
— это не просто техническая деталь; это ключ, который открывает полноценный интерактивный опыт для любого Запроса. Поскольку Запрос определяется структурированными схемами как для ввода, так и для вывода, для него можно автоматически сгенерировать пользовательский интерфейс.
Этот интерфейс состоит из двух частей:
- Форма:
схема
во Входном сообщении служит чертежом для формы ввода. Система может прочитать её и мгновенно создать интерактивные поля для ввода, с подписями и проверкой правильности. - Результат: Основная
схема
Запроса служит чертежом для вывода. После того как Запрос завершён, егорешение
можно отобразить в красивом, структурированном виде, а не просто как сырые данные.
Это превращает любой Запрос в интерактивную песочницу. Пользователь может экспериментировать с различными входными данными в форме и сразу видеть, как они влияют на структурированный результат. Это делает создание и использование мощных инструментов доступным для всех, превращая абстрактные вычислительные процессы в осязаемые, интерактивные приложения, которые может изучить каждый.
Взаимодействие с другими протоколами
Протокол Ввода — это особая разновидность шаблона Данные, но он также сочетается с несколькими другими протоколами, позволяя создавать сложные, динамичные рабочие процессы.
-
Инструмент: Входное сообщение — это ключ к превращению Запроса в многоразовый Инструмент.
схема
из Входного сообщения определяет параметры Инструмента (что ему нужно для работы), а основнаясхема
Запроса определяет_output
Инструмента (что он произведёт). -
План: Сообщение План содержит граф из Вызовов Инструментов. Входное сообщение предоставляет начальные параметры, которые передаются в первый Вызов Инструмента в графе, запуская весь процесс.
-
Экземплирование: При использовании с протоколом Экземплирование Входные сообщения могут предоставлять данные для запросов с несколькими экземплярами, либо как глобальную конфигурацию для всех экземпляров, либо как целевой ввод для конкретного экземпляра.
-
Переменные: Входное сообщение предоставляет начальные, статичные данные, которые запускают процесс. Однако Переменные — это механизм, который позволяет использовать эти данные динамически. Вызовы Инструментов используют Ссылки на Переменные, чтобы считывать значения из Ввода, связывая начальные параметры с исполняемыми шагами Плана.
От статичных данных к динамическим связям
Протокол Ввода предоставляет формальный механизм для передачи структурированных данных агенту, превращая простой Запрос в многоразовый компонент, подобный функции. Однако это определяет лишь начальную точку процесса. Для создания сложных рабочих процессов эти статичные входные данные необходимо связать с инструментами, которые будут с ними работать.
Следующий документ, 008: Агент/Переменные, описывает протокол, который создаёт эти динамические связи, позволяя данным декларативно перетекать от Ввода к Инструментам.