Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
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)
Это важно
Сеансы относятся к конкретному агенту или службе. Повторное использование сеанса с другой конфигурацией агента или поставщиком может привести к недопустимому контексту.