Organisation des AgentCore Gedächtnisses im Gedächtnis
Sie können festlegen, wie Kurzzeit- und Langzeitgedächtnisse in einem AgentCore Speicher organisiert werden. Auf diese Weise können Sie Erinnerungen nach Sitzung und nach Akteur isolieren. Für das Langzeitgedächtnis können Sie auch einen Namespace einrichten, um die extrahierten Erinnerungen für eine Speicherstrategie zu organisieren.
-
Akteur — Bezieht sich auf Entitäten wie Endbenutzer oder agent/user Kombinationen. In einem Chatbot zur Programmierunterstützung ist der Akteur beispielsweise in der Regel der Entwickler, der Fragen stellt. Mithilfe der Akteur-ID weiß das System, welchem Benutzer der Speicher gehört, sodass die Daten der einzelnen Benutzer getrennt und organisiert bleiben.
-
Sitzung — Eine einzelne Konversations- oder Interaktionsperiode zwischen dem Benutzer und dem KI-Agenten. Es gruppiert alle verwandten Nachrichten und Ereignisse, die während dieser Konversation auftreten.
-
Strategie (nur Long-term Speicher) — Zeigt an, welche Langzeitgedächtnisstrategie verwendet wird. Diese Strategie-ID wird automatisch generiert, wenn Sie einen AgentCore Speicher erstellen.
Short-term Organisation des Speichers
Wenn Sie ein Kurzzeitgedächtnisereignis mit erstellen CreateEvent, geben Sie eine Sitzungs-ID (sessionId) und eine Akteur-ID (actorId) an, die die Sitzung und den Akteur für das Ereignis eindeutig identifizieren. Später können Sie Ereignisse für einen Benutzer oder eine Sitzung mithilfe von Kurzzeitgedächtnisoperationen abrufen.
Beispielcode finden Sie unter Schritt 3: Erfassen des Konversationsverlaufs.
Long-term Organisation des Speichers
Wenn Sie einen AgentCore Speicher erstellen oder aktualisieren, können Sie optional eine oder mehrere Speicherstrategien erstellen. Verwenden Sie innerhalb einer Strategie einen Namespace, um anzugeben, dass Speicher AgentCore Langzeitgedächtnisse organisiert.
Jedes Mal, wenn AgentCore Memory mit einer Speicherstrategie einen neuen Langzeitspeicher extrahiert, wird der Langzeitspeicher unter dem von Ihnen festgelegten Namespace gespeichert. Das bedeutet, dass alle Langzeitspeicher ihrem spezifischen Namespace zugeordnet sind, wodurch sie organisiert bleiben und Konflikte mit anderen Benutzern oder Sitzungen vermieden werden. Sie sollten ein hierarchisches Format verwenden, das durch Schrägstriche getrennt ist und mit einem abschließenden / Schrägstrich endet. Der abschließende Schrägstrich verhindert Präfixkollisionen in Mehrmandantenanwendungen — verwenden Sie beispielsweise anstelle von. /actors/Alice/ /actors/Alice Je nach Bedarf können Sie je nach den organisatorischen Anforderungen Ihrer Anwendung die folgenden vordefinierten Variablen in geschweiften Klammern im Namespace verwenden:
-
ActorID — Identifiziert, wem das Langzeitgedächtnis gehört.
-
StrategyID — Zeigt an, welche Speicherstrategie verwendet wird.
-
sessionId — Identifiziert, aus welcher Sitzung oder Konversation der Speicher stammt.
Wenn Sie beispielsweise beim Erstellen eines Speichers den folgenden Namespace als Eingabe für Ihre Strategie definieren: AgentCore
/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/
Nach der Erstellung des Speichers könnte dieser Namespace wie folgt aussehen:
/strategy/summarization-93483043/actor/actor-9830m2w3/session/session-9330sds8/
Ein Namespace kann unterschiedliche Granularitätsebenen haben:
Granularste Organisationsebene
/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/
Granular auf Akteurebene für alle Sitzungen
/strategy/{memoryStrategyId}/actor/{actorId}/
Granular auf Strategieebene für alle Akteure
/strategy/{memoryStrategyId}/
Global über alle Strategien hinweg
/
Beispielcode finden Sie unter Langzeitgedächtnis aktivieren.
Beschränken Sie den Zugriff mit IAM
Sie können IAM-Richtlinien erstellen, um den Speicherzugriff anhand der von Ihnen definierten Bereiche wie Akteur, Sitzung und Namespace einzuschränken. Verwenden Sie die Bereiche als Kontextschlüssel in Ihren IAM-Richtlinien.
Die folgende Richtlinie beschränkt den Zugriff auf das Abrufen von Speichern auf einen bestimmten Namespace oder Datensätze unter einer bestimmten NamespacePath-Hierarchie. In diesem Beispiel erlaubt die Richtlinie nur den Zugriff auf Speicher mit exakten Namespaces wie OR mit Namespaces unter der folgenden Namespace-Path-Hierarchie mit, wie zum Beispiel summaries/agent1/ oder. summaries/agent1/ summaries/agent1/session1/ summaries/agent1/session2/
{ "Version":"2012-10-17", "Statement": [ { "Sid": "SpecificNamespaceAccess", "Effect": "Allow", "Action": [ "bedrock-agentcore:RetrieveMemoryRecords" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:123456789012:memory/memory_id", "Condition": { "StringEquals": { "bedrock-agentcore:namespace": "summaries/agent1/" } } }, { "Sid": "SpecificNamespacePathAccess", "Effect": "Allow", "Action": [ "bedrock-agentcore:RetrieveMemoryRecords" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:123456789012:memory/memory_id", "Condition": { "StringLike": { "bedrock-agentcore:namespacePath": "summaries/agent1/*" } } } ] }