3.3 KiB
SDK для взаимодействия с агентом
Этот пакет представляет собой SDK для клиентской библиотеки, предназначенной для упрощения взаимодействия с сервером агента через WebSocket-соединение. Ниже приведены ключевые аспекты, которые следует учитывать при разработке клиентской библиотеки.
Архитектура взаимодействия
WebSocket-соединение
Все взаимодействие происходит через WebSocket-соединение. Клиент должен:
- Установить соединение с сервером
- Дождаться получения сообщения
STATUS, подтверждающего готовность сервера - Начать отправку сообщений
Асинхронная природа
Сервер отправляет ответы в виде потока событий (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"
}
