Compartilhar via


Session

AgentSession é o contêiner de estado de conversa usado em rodadas de execução do agente.

O que AgentSession contém

Campo Propósito
StateBag Contêiner de estado arbitrário para esta sessão

O C# AgentSession é uma classe base abstrata. Implementações concretas (criadas via CreateSessionAsync()) podem adicionar um estado adicional, por exemplo, uma ID para armazenamento de histórico de chat remoto, quando o histórico gerenciado pelo serviço é usado.

Campo Propósito
session_id Identificador exclusivo local para esta sessão
service_session_id Identificador de conversa de serviço remoto (quando é usado o histórico gerenciado pelo serviço)
state Dicionário mutável compartilhado com provedores de contexto/histórico

Padrão de uso interno

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)

Criando uma sessão a partir de uma ID de conversa de serviço existente

Criar uma nova sessão de uma ID de conversa existente varia de acordo com o tipo de agente. Aqui estão alguns exemplos.

Ao usar ChatClientAgent

AgentSession session = await chatClientAgent.CreateSessionAsync(conversationId);

Ao usar um A2AAgent

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

Use isso quando o serviço de backup já tiver estado de conversa.

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

Serialização e restauração

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 para o agente/serviço. Reutilização de uma sessão com uma configuração ou provedor de agente diferente pode levar a um contexto inválido.

Próximas etapas