Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie AgentSession, um den Unterhaltungskontext zwischen Aufrufen beizubehalten.
Wenn eine Sitzung dienstverwaltete Speicher verwendet, kann sie eine undurchsichtige dienstseitige Sitzungs-ID enthalten. IDs für OpenAI Responses und Conversations sind standardmäßig an den zugrunde liegenden API-Schlüssel bzw. das Projekt gebunden; wenn ein gehosteter Agent denselben Schlüssel bzw. dasselbe Projekt für mehrere Endnutzer verwendet, speichern Sie diese IDs serverseitig und überprüfen Sie den authentifizierten Benutzer oder Mandanten, bevor Sie sie wiederaufnehmen. Ausführliche Informationen finden Sie unter "Session".
Kernnutzungsmuster
Die meisten Anwendungen folgen demselben Fluss:
- Erstellen einer Sitzung (
CreateSessionAsync()) - Übergeben Sie diese Sitzung an jedes
RunAsync(...) - Rehydrierung aus einem serialisierten Zustand (
DeserializeSessionAsync(...)) - Fortfahren mit einer Servicegesprächs-ID (variiert je nach Agent, z. B.
myChatClientAgent.CreateSessionAsync("existing-id"))
- Erstellen einer Sitzung (
create_session()) - Übergeben Sie diese Sitzung an jedes
run(...) - Rehydratieren nach Dienstgesprächs-ID (
get_session(...)) oder aus dem serialisierten Zustand.
- Erstellen einer Sitzung (
CreateSession(...)) - Übergeben Sie diese Sitzung mit
agent.WithSession(session)an jedesRunText(...) - Rehydratieren aus serialisiertem Zustand mit
json.Unmarshal(...)inagent.Session
Das Go-Paket agent stellt die Kerntypen für den Unterhaltungszustand bereit: agent.Session für den Schlüsselwertzustand, der an eine Unterhaltung gebunden ist, und agent.ContextProvider für die Kontexteinfügung und Persistenz.
// Create and reuse a session
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);
// Persist and restore later
var serialized = agent.SerializeSession(session);
AgentSession resumed = await agent.DeserializeSessionAsync(serialized);
# Create and reuse a 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)
# Rehydrate by service conversation ID when needed
service_session = agent.get_session(service_session_id="<service-conversation-id>")
# Persist and restore later
serialized = session.to_dict()
resumed = AgentSession.from_dict(serialized)
session, err := a.CreateSession(ctx)
if err != nil {
panic(err)
}
Verwenden Sie eine Sitzung für mehrzügige Konversationen
resp, _ := a.RunText(ctx, "My name is Alice.", agent.WithSession(session)).Collect()
resp, _ = a.RunText(ctx, "What is my name?", agent.WithSession(session)).Collect()
Sitzungen beibehalten
Sitzungen können für den Speicher in JSON serialisiert und später fortgesetzt werden:
data, err := json.Marshal(session)
if err != nil {
panic(err)
}
// store data...
// later:
var resumed agent.Session
if err := json.Unmarshal(data, &resumed); err != nil {
panic(err)
}
resp, err := a.RunText(ctx, "Continue from where we left off.", agent.WithSession(&resumed)).Collect()
Leitfadenkarte
| Seite | Fokus |
|---|---|
| Sitzung |
AgentSession Struktur und Serialisierung |
| Kontextanbieter | Integrierte und benutzerdefinierte Kontext-/Verlaufsanbietermuster |
| Kontextkomprimierung | Effiziente Steuerung des Gesprächswachstums |
| Lagerung | Integrierte Speichermodi und externe Persistenzstrategien |