View a markdown version of this page

Isolierte Sitzungen für Agenten verwenden - Amazon Grundgestein AgentCore

Isolierte Sitzungen für Agenten verwenden

Mit Amazon Bedrock AgentCore Runtime können Sie jede Benutzersitzung isolieren und den Kontext sicher für mehrere Aufrufe in einer Benutzersitzung wiederverwenden. Die Sitzungsisolierung ist für die Workloads von KI-Agenten aufgrund ihrer einzigartigen betrieblichen Eigenschaften von entscheidender Bedeutung:

  • Vollständige Trennung der Ausführungsumgebung: Jede Benutzersitzung in AgentCore Runtime erhält eine eigene dedizierte MicroVM mit isolierten Rechen-, Speicher- und Dateisystemressourcen. Dadurch wird verhindert, dass der Agent eines Benutzers auf die Daten eines anderen Benutzers zugreift. Nach Abschluss der Sitzung wird die gesamte MicroVM beendet und der Speicher bereinigt, um alle Sitzungsdaten zu entfernen, wodurch sitzungsübergreifende Kontaminationsrisiken vermieden werden.

  • Zustandsorientierte Argumentationsprozesse: Im Gegensatz zu zustandslosen Funktionen behalten KI-Agenten während ihres gesamten Ausführungszyklus einen komplexen kontextuellen Status bei, der über den einfachen Nachrichtenverlauf für Konversationen mit mehreren Turns hinausgeht. AgentCore Runtime behält diesen Status innerhalb einer Sitzung sicher bei und sorgt gleichzeitig für eine vollständige Isolierung zwischen verschiedenen Benutzern, sodass personalisierte Agentenerlebnisse ohne Beeinträchtigung der Datengrenzen ermöglicht werden.

  • Operationen mit privilegierten Tools: KI-Agenten führen privilegierte Operationen im Namen der Benutzer durch, indem sie integrierte Tools verwenden, die auf verschiedene Ressourcen zugreifen. AgentCore Das Isolationsmodell von Runtime stellt sicher, dass bei diesen Tooloperationen die richtigen Sicherheitskontexte eingehalten werden, und verhindert die gemeinsame Nutzung von Anmeldeinformationen oder die Eskalation von Berechtigungen zwischen verschiedenen Benutzersitzungen.

  • Deterministische Sicherheit für nicht deterministische Prozesse: Das Verhalten von KI-Agenten kann aufgrund des probabilistischen Charakters von Basismodellen nicht deterministisch sein. AgentCore Runtime bietet unabhängig von den Ausführungsmustern der Agenten konsistente, deterministische Isolationsgrenzen und bietet so die vorhersehbaren Sicherheitseigenschaften, die für Unternehmensbereitstellungen erforderlich sind.

Anmerkung

AgentCore erzwingt keine Zuordnungen von Sitzungen zu Benutzern — Ihr Client-Backend sollte die Beziehung zwischen Benutzern und ihren Sitzungs-IDs beibehalten. Darüber hinaus sollte Ihr Client-Backend eine Logik für die Verwaltung des Lebenszyklus zwischen Benutzern und Sitzungen implementieren, z. B. die maximale Anzahl von Sitzungen pro Benutzer. Eine vollständige Anleitung zur Sitzungsisolierung finden Sie unter Bewährte Sicherheitsmethoden für AgentCore Runtime.

Verstehen des kurzlebigen Kontextes

Standardmäßig ist die Rechenleistung (MicroVM), die einer Sitzung zugeordnet ist, kurzlebig. Alle Daten, die im Arbeitsspeicher gespeichert oder auf die Festplatte geschrieben werden, bleiben nur für den gesamten Rechenlebenszyklus bestehen. Dazu gehören der Konversationsverlauf, Benutzereinstellungen, Zwischenergebnisse der Berechnung und alle anderen Statusinformationen, die Ihr Agent verwaltet.

Um Dateisystemdaten über stop/resume Sitzungszyklen hinweg beizubehalten, konfigurieren Sie den Sitzungsspeicher — ein persistentes Verzeichnis, das die Beendigung der Rechenleistung übersteht. Siehe Dateisystemkonfigurationen für Runtime. AgentCore

Verwenden Sie AgentCore Memory für strukturierte Daten, die über die Dauer der Sitzung hinaus aufbewahrt werden müssen (z. B. Konversationsverlauf von Benutzern, erlernte Einstellungen oder wichtige Erkenntnisse). Dieser Service bietet speziell für die Workloads von Agenten entwickelten persistenten Speicher, der sowohl Kurzzeit- als auch Langzeitspeicherfunktionen bietet.

Erweiterte Konversationen und mehrstufige Workflows

Im Gegensatz zu herkömmlichen serverlosen Funktionen, die nach jeder Anfrage beendet werden, werden isolierte Sitzungen AgentCore unterstützt, die auf kurzlebigen Rechenoperationen basieren und bis zu 8 Stunden pro Lebenszyklus dauern. Dies vereinfacht die Erstellung mehrstufiger agentischer Workflows, da Sie mehrere Aufrufe an dieselbe Umgebung tätigen können, wobei jeder Aufruf auf dem Kontext aufbaut, der durch vorherige Interaktionen festgelegt wurde. Sie können sowohl InvokeAgentRuntime für die Argumentation der Agenten als auch für die deterministische Ausführung InvokeAgentRuntimeCommand von Shell-Befehlen innerhalb derselben Sitzung verwenden.

AgentCore Lebenszyklus einer Runtime-Sitzung

Erstellung einer Sitzung

Beim ersten Aufruf wird eine neue Sitzung mit einer eindeutigen Laufzeit erstellt, die von Ihrer Anwendung SessionId bereitgestellt wird. AgentCore Runtime stellt für jede Sitzung eine dedizierte Ausführungsumgebung (MicroVM) bereit. Der Kontext wird zwischen Aufrufen derselben Sitzung beibehalten. Beide InvokeAgentRuntime InvokeAgentRuntimeCommand arbeiten in derselben Sitzung — ein Befehl sieht denselben Container, dasselbe Dateisystem und dieselbe Umgebung wie der Agent.

Sitzungsstatus

Der Sitzungsstatus wird durch den Rechenlebenszyklus bestimmt und kann einer der folgenden sein:

  • Aktiv: Entweder wird eine Synchronisierungsanforderung verarbeitet, ein Befehl ausgeführt oder Hintergrundaufgaben ausgeführt. Der Synchronisierungsaufruf und die Befehlsausführung werden automatisch anhand der Aufrufe einer Runtime-Sitzung verfolgt. Hintergrundaufgaben werden vom Agentencode übermittelt, indem er mit dem Status "HealthyBusy" in Form von Pings antwortet.

  • Inaktiv: Wenn keine Anfragen oder Hintergrundaufgaben bearbeitet werden. Die Bearbeitung der Sitzung wurde abgeschlossen, ist aber für future Aufrufe weiterhin verfügbar.

  • Beendet: Die für die Sitzung bereitgestellte Rechenleistung (MicroVM) wurde beendet und die Sitzung wurde beendet. Dies kann auf Inaktivität (standardmäßig 15 Minuten), das Erreichen der maximalen Rechenlebensdauer (Standard 8 Stunden), einen ausdrücklichen Stopp durch Aufrufen der StopRuntimeSessionAPI oder darauf zurückzuführen sein, dass die Rechenleistung aufgrund von Zustandsprüfungen als fehlerhaft eingestuft wird. Die Sitzung wechselt beim nächsten Aufruf wieder in den Status Aktiv und es wird eine neue Rechenleistung mit derselben Lebenszykluskonfiguration bereitgestellt (d. h. Idle RuntimeSessionTimeout und MaxLifetime, die bis zu weitere 8 Stunden dauern können). Die Sitzung selbst bleibt gültig, bis der AgentCore Runtime-ARN gelöscht wird. Wenn die Laufzeit mit Sitzungsspeicher konfiguriert ist, bleiben die Dateisystemdaten im konfigurierten Mount-Pfad über Zyklen hinweg stop/resume bestehen. Siehe Dateisystemkonfigurationen für AgentCore Runtime.

Wie benutzt man Sessions

Um Sitzungen effektiv zu nutzen:

  • Generieren Sie für jeden Benutzer oder jede Konversation eine eindeutige Sitzungs-ID mit mindestens 33 Zeichen

  • Übergeben Sie dieselbe Sitzungs-ID für alle zugehörigen Aufrufe

  • Verwenden Sie unterschiedliche Sitzungs-IDs für verschiedene Benutzer oder Konversationen

Beispiel für die Verwendung von Sitzungen für eine Konversation

# First message in a conversation response1 = agent_core_client.InvokeAgentRuntime( agentRuntimeArn=agent_arn, runtimeSessionId="user-123456-conversation-12345678", # or uuid.uuid4() payload=json.dumps({"prompt": "Tell me about AWS"}).encode() ) # Follow-up message in the same conversation reuses the runtimeSessionId. response2 = agent_core_client.InvokeAgentRuntime( agentRuntimeArn=agent_arn, runtimeSessionId="user-123456-conversation-12345678", # or uuid.uuid4() payload=json.dumps({"prompt": "How does it compare to other cloud providers"}).encode() )

Indem Sie dieselbe Laufzeit SessionId für verwandte Aufrufe verwenden, stellen Sie sicher, dass der Kontext während der gesamten Konversation erhalten bleibt, sodass Ihr Agent kohärente Antworten geben kann, die auf früheren Interaktionen aufbauen.

Sitzungskopfzeilen nach Protokoll

Geben Sie beim Aufrufen von Agenten den entsprechenden Sitzungsheader an, um sicherzustellen, dass Anfragen an dieselbe MicroVM weitergeleitet werden. Der Header hängt vom konfigurierten Protokoll Ihres Agenten ab:

Protocol (Protokoll) Sitzungsheader

MCP

Mcp-Session-Id

HTTP

X-Amzn-Bedrock-AgentCore-Runtime-Session-Id

A2A

X-Amzn-Bedrock-AgentCore-Runtime-Session-Id

AG-UI

X-Amzn-Bedrock-AgentCore-Runtime-Session-Id

MicroVM-Sperrfähigkeit: Amazon Bedrock AgentCore verwendet den Sitzungsheader, um Anfragen an dieselbe MicroVM-Instanz weiterzuleiten. Kunden müssen die in der Antwort zurückgegebene Sitzungs-ID erfassen und sie in alle nachfolgenden Anfragen aufnehmen, um die Sitzungsaffinität sicherzustellen. Ohne eine konsistente Sitzungs-ID kann jede Anfrage an eine neue MicroVM weitergeleitet werden, was zu zusätzlicher Latenz aufgrund von Kaltstarts führen kann.

Einzelheiten zum MCP-Protokoll, einschließlich statusloser und statusbehafteter Modi, finden Sie unter MCP-Sitzungsverwaltung und microVM-Stickiness.