Bagikan melalui


Session

AgentSession adalah kontainer status percakapan yang digunakan di seluruh proses eksekusi agen.

Apa yang AgentSession berisi

Bidang Tujuan
StateBag Kontainer status arbitrer untuk sesi ini

C# AgentSession adalah kelas dasar abstrak. Implementasi konkret (dibuat melalui CreateSessionAsync()) dapat menambahkan status tambahan misalnya id untuk penyimpanan riwayat obrolan jarak jauh, ketika riwayat yang dikelola layanan digunakan.

Bidang Tujuan
session_id Pengidentifikasi unik lokal untuk sesi ini
service_session_id Pengidentifikasi percakapan layanan jarak jauh (saat riwayat yang dikelola layanan digunakan)
state Kamus yang dapat diubah dibagikan dengan penyedia konteks/riwayat

Pola penggunaan bawaan

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)

Membuat sesi dari ID percakapan layanan yang sudah ada

Buat sesi baru dari id percakapan yang sudah ada bervariasi menurut jenis agen. Berikut adalah beberapa contoh.

Saat menggunakan ChatClientAgent

AgentSession session = await chatClientAgent.CreateSessionAsync(conversationId);

Saat menggunakan A2AAgent

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

Gunakan ini ketika layanan pendukung sudah memiliki status percakapan.

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

Serialisasi dan pemulihan

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

Penting

Sesi bersifat spesifik untuk agen/layanan. Menggunakan kembali sesi dengan konfigurasi agen atau penyedia yang berbeda dapat menyebabkan konteks yang tidak valid.

Langkah selanjutnya