Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
AgentSession é o contentor de estado de conversa usado entre execuções de agentes.
O que AgentSession contém
| Campo | Propósito |
|---|---|
StateBag |
Contentor de estado arbitrário para esta sessão |
O C# AgentSession é uma classe base abstrata. Implementações concretas (criadas via CreateSessionAsync()) podem adicionar estado adicional, por exemplo, um id para armazenamento remoto do histórico de chat, quando é usado histórico gerido por serviços.
| Campo | Propósito |
|---|---|
session_id |
Identificador local único para esta sessão |
service_session_id |
Identificador de conversa de serviço remoto (quando se usa histórico gerido pelo serviço) |
state |
Dicionário mutável partilhado com fornecedores de contexto/história |
Padrão de uso incorporado
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)
Criar uma sessão a partir de um ID de conversa de serviço existente
Criar uma nova sessão a partir de um ID de conversa existente varia consoante o tipo de agente. Eis alguns exemplos.
Ao usar ChatClientAgent
AgentSession session = await chatClientAgent.CreateSessionAsync(conversationId);
Ao usar um A2AAgent
AgentSession session = await a2aAgent.CreateSessionAsync(contextId, taskId);
Use isto quando o serviço de suporte já tiver estado de conversação.
session = agent.get_session(service_session_id="<service-conversation-id>")
response = await agent.run("Continue this conversation.", session=session)
Serialização e restauro
var serialized = agent.SerializeSession(session);
AgentSession resumed = await agent.DeserializeSessionAsync(serialized);
serialized = session.to_dict()
resumed = AgentSession.from_dict(serialized)
Importante
As sessões são específicas de cada agente/serviço. Usar novamente uma sessão com uma configuração de agente ou fornecedor diferente pode levar a um contexto inválido.