Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik AgentSession dit om de gesprekscontext tussen aanroepen te behouden.
Wanneer een sessie gebruikmaakt van door de service beheerde opslag, kan deze een ondoorzichtige sessie-id aan de servicezijde bevatten. OpenAI-antwoorden en gespreks-id's zijn standaard gericht op de back-up-API-sleutel of het project; als een gehoste agent dezelfde sleutel of hetzelfde project gebruikt voor meerdere eindgebruikers, slaat u deze id's op de server op en controleert u de geverifieerde gebruiker of tenant voordat u verdergaat. Zie Sessie voor meer informatie.
Kerngebruikspatroon
De meeste toepassingen volgen dezelfde stroom:
- Een sessie maken (
CreateSessionAsync()) - Geef die sessie door aan elk
RunAsync(...) - Rehydrateer van geserialiseerde toestand (
DeserializeSessionAsync(...)) - Ga verder met een servicegespreks-id (verschilt per agent, bijvoorbeeld
myChatClientAgent.CreateSessionAsync("existing-id"))
- Een sessie maken (
create_session()) - Geef die sessie door aan elk
run(...) - Rehydrate door servicegesprek-ID (
get_session(...)) of vanuit geserialiseerde toestand
- Een sessie maken (
CreateSession(...)) - Geef die sessie door aan elk
RunText(...)metagent.WithSession(session) - Hydrateer vanuit een geserialiseerde status met
json.Unmarshal(...)naaragent.Session
Het Go-pakket agent biedt de kerntypen voor de gespreksstatus: agent.Session voor sleutelwaardestatus die is gekoppeld aan een gesprek en agent.ContextProvider voor contextinjectie en persistentie.
// 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)
}
Gebruik een sessie voor gesprekken met meerdere interacties
resp, _ := a.RunText(ctx, "My name is Alice.", agent.WithSession(session)).Collect()
resp, _ = a.RunText(ctx, "What is my name?", agent.WithSession(session)).Collect()
Sessies behouden
Sessies kunnen worden geserialiseerd naar JSON voor opslag en later hervat:
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()
Gidskaart
| Page | Focus |
|---|---|
| Session |
AgentSession structuur en serialisatie |
| Contextproviders | Ingebouwde en aangepaste context- en geschiedenisproviderpatronen |
| Contextcompressie | Efficiënt gespreksgroei beheren |
| Storage | Ingebouwde opslagmodi en strategieën voor externe persistentie |