Sessions löschen

Löschen Sie proaktiv eine Sitzung, um mehr Datenschutz und Skalierbarkeit zu gewährleisten.

Der ADK verwendet eine Session, um den Kontext einer Ausführung zu verfolgen, einschließlich der Unterstützung von Multiturn-Unterhaltungen und lokaler Funktions-Toolaufrufe.

Wenn Sie eine Session nicht explizit löschen, wird sie automatisch gelöscht, nachdem ihre Gültigkeitsdauer (Time-to-Live, TTL) abgelaufen ist. Die Standard-TTL beträgt 24 Stunden. Dieses Verhalten passt jedoch möglicherweise nicht zu Ihrem Anwendungsfall. Beispiel: Aus Datenschutzgründen können Sie eine Session sofort nach Ende der Unterhaltung löschen.

Oder Ihr Agent unterstützt eine große Anzahl gleichzeitiger Benutzer. In diesem Fall können Sie Sessions proaktiv löschen, um Ressourcen freizugeben. Ein Agent kann maximal 800 Sessions pro Standard-Quota haben. Um dieses Limit zu vermeiden, können Sie Sessions proaktiv löschen, wenn Ihre Anwendung entscheiden kann, wann eine Session nicht mehr benötigt wird.

Python

def main():

    agent = Agent(
        client=client,
        agent_endpoint_id="ocid1.genaiagentendpoint...",
        instructions="You are a helpful assistant that can perform calculations.",
        tools=[CalculatorToolkit()]
    )

    agent.setup()

    input = "What is the square root of 81?"
    response = agent.run(input)

    # You explicitly delete the session used by the last run
    agent.delete_session(response.session_id)

if __name__ == "__main__":
    main()

Java

public static void main(String[] args) throws Exception {
    Agent agent = Agent.builder()
        .client(agentClient)
        .agentEndpointId(AGENT_ENDPOINT_ID)
        .instructions("You perform calculations using tools provided.")
        .tools(Arrays.asList(new SimpleCalculatorToolkit()))
        .build();

    agent.setup()

    final String input = "What is the square root of 475695037565?";
    RunResponse response = agent.run(input);

    agent.deleteSession(response.getSessionId());
}

Alternativ können Sie die Session nach Abschluss der Ausführung löschen, indem Sie delete_session=True in der Methode run festlegen.

Python

def main():

    # Ask ADK to auto delete the session after the run completes
    response = agent.run(input, delete_session=True)

if __name__ == "__main__":
    main()

Java

public static void main(String[] args) throws Exception {
    final RunOptions runOptions = RunOptions.builder().deleteSession(true).build();
    RunResponse response = agent.run(input, runOptions);
}