Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Använd AgentSession för att behålla konversationskontexten mellan anrop.
När en session använder tjänsthanterad lagring kan den innehålla ett ogenomskinlig sessions-ID på tjänstsidan. OpenAI-svar och konversations-ID:n är begränsade till api-nyckeln eller projektet som standard. Om en värdbaserad agent använder samma nyckel eller projekt för flera slutanvändare lagrar du dessa ID:er på serversidan och kontrollerar den autentiserade användaren eller klientorganisationen innan du återupptar den. Mer information finns i Session.
Kärnanvändningsmönster
De flesta program följer samma flöde:
- Skapa en session (
CreateSessionAsync()) - Skicka sessionen till var och en
RunAsync(...) - Extrahera från serialiserat tillstånd (
DeserializeSessionAsync(...)) - Fortsätt med ett tjänstkonversations-ID (varierar beroende på agent, t.ex.
myChatClientAgent.CreateSessionAsync("existing-id"))
- Skapa en session (
create_session()) - Skicka sessionen till var och en
run(...) - Återställ genom tjänstekonversationens-ID (
get_session(...)) eller från serialiserat tillstånd.
- Skapa en session (
CreateSession(...)) - Skicka vidare sessionen till varje
RunText(...)medagent.WithSession(session) - Extrahera från serialiserat tillstånd med
json.Unmarshal(...)tillagent.Session
Go-paketet agent innehåller kärntyperna för konversationstillstånd: agent.Session för nyckel/värde-tillstånd som är kopplat till en konversation och agent.ContextProvider för kontextinmatning och beständighet.
// 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)
}
Använd en session för fleromgångskonversationer
resp, _ := a.RunText(ctx, "My name is Alice.", agent.WithSession(session)).Collect()
resp, _ = a.RunText(ctx, "What is my name?", agent.WithSession(session)).Collect()
Spara sessioner
Sessioner kan serialiseras till JSON för lagring och återupptas senare:
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()
Guidekarta
| Sida | Fokus |
|---|---|
| Session |
AgentSession struktur och serialisering |
| Kontextprovidrar | Inbyggda och anpassade mönster för kontext/historikprovider |
| Kontextkomprimering | Hantera konversationstillväxt effektivt |
| Förvaring | Inbyggda lagringslägen och strategier för extern beständighet |