Бөлісу құралы:


Session

AgentSession — это контейнер состояния беседы, используемый в разных запусках агента.

Что AgentSession содержит

Поле Цель
StateBag Произвольный контейнер состояния для этого сеанса

C# AgentSession является абстрактным базовым классом. Конкретные реализации (созданные с помощью CreateSessionAsync()) могут добавлять дополнительное состояние, например идентификатор для удаленного хранилища журнала чата, когда используется управляемый службой журнал.

Поле Цель
session_id Локальный уникальный идентификатор для этого сеанса
service_session_id Идентификатор диалога удаленной службы (при использовании журнала, управляемого службой)
state Изменяемый словарь, общий с поставщиками контекста и истории

Встроенный шаблон использования

AgentSession session = await agent.CreateSessionAsync();

var first = await agent.RunAsync("My name is Alice.", session);
var second = await agent.RunAsync("What is my name?", session);
session = agent.create_session()

first = await agent.run("My name is Alice.", session=session)
second = await agent.run("What is my name?", session=session)

Создание сеанса по существующему идентификатору сессии службы

Создание нового сеанса из существующего идентификатора беседы зависит от типа агента. Ниже приведены некоторые примеры.

При использовании ChatClientAgent

AgentSession session = await chatClientAgent.CreateSessionAsync(conversationId);

При использовании A2AAgent

AgentSession session = await a2aAgent.CreateSessionAsync(contextId, taskId);

Используйте это, если у поддерживающей службы уже имеется состояние диалога.

session = agent.get_session(service_session_id="<service-conversation-id>")
response = await agent.run("Continue this conversation.", session=session)

Сериализация и восстановление

var serialized = agent.SerializeSession(session);
AgentSession resumed = await agent.DeserializeSessionAsync(serialized);
serialized = session.to_dict()
resumed = AgentSession.from_dict(serialized)

Это важно

Сеансы относятся к конкретному агенту или службе. Повторное использование сеанса с другой конфигурацией агента или поставщиком может привести к недопустимому контексту.

Дальнейшие шаги