Агентская система
Описание
Взаимодействие с компонентом Агентская система строится по следующей схеме:
- Проверка готовности конвейера на прием запросов с указанным ключом маршрутизации.
- Отправка запроса и получение его идентификатора.
- Отслеживать статус в списке обработанных запросов, пока в нем не появится ваш идентификатор.
- Получение данных по идентификатору после завершения обработки.
Ключ маршрутизации
Для успешной обработки запроса сервером необходимо соблюдение следующих условий:
-
Указание ключа маршрутизации: Используйте актуальный ключ в параметре
routingKeyпри отправке запроса:POST /inference/agentSystem/{routingKey}/asyncℹ️Ключ создается и копируется в Портале при настройке проекта Агентских систем.
-
Настройка ключа на сервере: Убедитесь, что используемый ключ маршрутизации настроен на сервере. В противном случае сервер вернет ошибку.
-
Активность Исполнителя: На целевой машине должен быть запущен и активен Исполнитель агентских систем, связанный с данным проектом.
Авторизация
Каждый запрос в данном разделе требует указания заголовка Authorization. Подробнее об авторизации см. Авторизация.
Проверка готовости навыка
Чтобы проверить готовность навыка, выполните запрос:
GET /inference/agentSystem/{routingKey}/status
В параметре routingKey укажите ключ маршрутизации, например: agsys-xxxx, где xxxx — произвольная комбинация цифр и латинских букв.
Пример запроса:
GET /inference/agentSystem/{routingKey}/status HTTP/1.1
Host: ai-server-endpoint:44392
Accept: text/plain
Authorization: ••••••Если навык полностью готов к обработке запросов, сервер вернёт следующий JSON:
{
"isServerLicensed": true,
"isModelTypeRunning": true,
"isAgentLicensed": true
}Описание полей ответа
isServerLicensed— показывает, активирована ли лицензия сервера.true— сервер лицензирован.false— сервер работает без лицензии.
isModelTypeRunning— показывает, настроен ли указанный routingKey в Портале.true— ключ маршрутизации найден и доступен.false— указанный routingKey не настроен.isAgentLicensed— показывает состояние лицензии Агентов на Целевых машинах.true— все Агенты лицензированы.false— один или несколько Агентов работают без лицензии.
Если routingKey не настроен в Портале, поле isAgentLicensed не возвращается в ответе.
Создать запрос
Для создания запроса выполните метод:
POST /inference/agentSystem/{routingKey}/async
В параметре routingKey укажите ключ маршрутизации навыка, например: agsys-xxxx.
Запрос поддерживает следующие типы содержимого:
application/jsonmultipart/form-data
Пример запроса:
POST /inference/agentSystem/agsys-xxxx/async HTTP/1.1
Host: ai-server-endpoint:44392
Accept: text/plain
Authorization: ••••••
Content-Length: 238
Content-Type: application/json; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
{
"Prompt": "привет"
}После успешного создания сервер вернёт информацию о запросе, включая его идентификатор в поле key.
Пример ответа:
{
"key": "5499d9d6-9ce6-465f-8016-72bad24dc1ce",
"createdAt": "2026-03-11T11:32:43.034415+03:00",
"expiresAt": "2026-03-11T12:32:43.034415+03:00",
"routingKey": "agsys-xxxx",
"result": {
"isReady": false
},
"files": []
}Поля запроса.
-
files— коллекция изображений или документов. Поддерживаются форматы: jpg, jpeg, png, pdf, tiff. Поле необязательное. -
prompt— текстовый запрос к модели. Поле необязательное. -
dataKey— ключ данных для доступа к изолированным данным, например через OwnerId в некоторых компонентах. Поле необязательное.
Необходимо указать хотя бы одно из полей:
promptfiles
Если оба поля отсутствуют, сервер вернёт ошибку 400 Bad Request.
Поля prompt и files можно использовать одновременно.
Проверка готовых запросов
Чтобы получить список готовых запросов, выполните метод:
GET /inference/nlp/ready
Пример запроса:
GET /inference/agentSystem/ready HTTP/1.1
Host: ai-server-endpoint:44392
Accept: text/plain
Authorization: ••••••В ответ сервер вернёт JSON-массив с идентификаторами запросов, готовых к получению результата.
Пример ответа:
["5499d9d6-9ce6-465f-8016-72bad24dc1ce"]Запрос попадает в список готовых, когда в поле result значение isReady
становится true.
Получить запрос
Чтобы получить информацию о запросе и результат его обработки, выполните метод:
GET /inference/agentSystem/{requestKey}
В параметре requestKey укажите идентификатор запроса, полученный при его создании.
Пример запроса:
GET /inference/agentSystem/5499d9d6-9ce6-465f-8016-72bad24dc1ce HTTP/1.1
Host: ai-server-endpoint:44392
Accept: text/plain
Authorization: ••••••В ответ сервер вернёт JSON с информацией о запросе и результатом обработки.
Пример ответа:
{
"key": "5499d9d6-9ce6-465f-8016-72bad24dc1ce",
"createdAt": "2026-03-11T11:39:55.7324243+03:00",
"expiresAt": "2026-03-11T12:39:55.7324243+03:00",
"routingKey": "agsys-xxxx",
"result": {
"streamingStartedAt": "2026-03-11T11:39:56.1340994+03:00",
"updatedAt": "2026-03-11T11:39:56.1797964+03:00",
"streamingCompletedAt": "2026-03-11T11:39:56.1797964+03:00",
"isReady": true,
"isFailed": false,
"answer": "Привет! Как дела?"
},
"files": []
}Обратите внимание на следующие поля:
-
expiresAt— дата и время удаления запроса с сервера. По умолчанию запрос хранится 1 час. Значение можно изменить в параметреClearRequestsService > DefaultExpirationSecondsфайла конфигурации Api.Inference.Даже если запрос не успел обработаться за отведённое время, он всё равно будет удалён с сервера.
-
result.isReady— статус готовности результата.true— результат полностью готов.false— обработка ещё продолжается.
-
result.isFailed— статус обработки запроса.false— запрос обработан успешно.true— во время обработки произошла ошибка.