agent_api/api/README.md

3.3 KiB
Raw Blame History

SDK для взаимодействия с агентом

Этот пакет представляет собой SDK для клиентской библиотеки, предназначенной для упрощения взаимодействия с сервером агента через WebSocket-соединение. Ниже приведены ключевые аспекты, которые следует учитывать при разработке клиентской библиотеки.

Архитектура взаимодействия

WebSocket-соединение

Все взаимодействие происходит через WebSocket-соединение. Клиент должен:

  1. Установить соединение с сервером
  2. Дождаться получения сообщения STATUS, подтверждающего готовность сервера
  3. Начать отправку сообщений

Асинхронная природа

Сервер отправляет ответы в виде потока событий (streaming). Это означает, что ответ на сообщение пользователя приходит не единым блоком, а по частям (чанкам) по мере генерации.

Сообщения

Пример десериализации

message = OutgoingMessage.model_validate_json(json_data)

Pydantic самостоятельно приведет в нужному типу в зависимости от type.

Входящие сообщения (от клиента к серверу)

USER_MESSAGE

Текстовое сообщение от пользователя.

{
  "type": "USER_MESSAGE",
  "text": "Текст сообщения"
}

Поля:

  • type (string) - тип сообщения, всегда "USER_MESSAGE"
  • text (string) - текст сообщения от пользователя

Исходящие сообщения (от сервера к клиенту)

STATUS

Отправляется при установке соединения с клиентом. Сигнализирует о готовности агента принимать сообщения.

{
  "type": "STATUS"
}

AGENT_EVENT

Событие в процессе генерации ответа. Конкретный тип события определяется по полю subtype.

TEXT_CHUNK

Чанк текста ответа агента.

{
  "type": "AGENT_EVENT",
  "subtype": "TEXT_CHUNK",
  "text": "Фрагмент текста"
}
END

Сигнализирует о завершении генерации ответа.

{
  "type": "AGENT_EVENT",
  "subtype": "END",
  "tokens_used": 42
}

ERROR

Сигнализирует об ошибке в работе агента.

{
  "type": "ERROR",
  "code": "error_code",
  "details": "Подробное описание ошибки"
}

GRACEFUL_DISCONNECT

Осознанное завершение соединения агентом. Например, при долгом бездействии.

{
  "type": "GRACEFUL_DISCONNECT"
}

Схема взаимодействия