Skip to Content

Агентская система

Описание

Взаимодействие с компонентом Агентская система строится по следующей схеме:

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

Ключ маршрутизации

Для успешной обработки запроса сервером необходимо соблюдение следующих условий:

  1. Указание ключа маршрутизации: Используйте актуальный ключ в параметре routingKey при отправке запроса: POST /inference/agentSystem/{routingKey}/async

    ℹ️

    Ключ создается и копируется в Портале при настройке проекта Агентских систем.

  2. Настройка ключа на сервере: Убедитесь, что используемый ключ маршрутизации настроен на сервере. В противном случае сервер вернет ошибку.

  3. Активность Исполнителя: На целевой машине должен быть запущен и активен Исполнитель агентских систем, связанный с данным проектом.

Авторизация

Каждый запрос в данном разделе требует указания заголовка 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/json
  • multipart/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 в некоторых компонентах. Поле необязательное.

ℹ️

Необходимо указать хотя бы одно из полей:

  • prompt
  • files

Если оба поля отсутствуют, сервер вернёт ошибку 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 — во время обработки произошла ошибка.