View a markdown version of this page

Geben Sie die Langzeitspeicherorganisation mit Namespaces an - Amazon Grundgestein AgentCore

Geben Sie die Langzeitspeicherorganisation mit Namespaces an

Wenn Sie einen AgentCore Speicher erstellen, verwenden Sie einen Namespace, um anzugeben, wo die Langzeitspeicher für eine Speicherstrategie logisch gruppiert werden. Jedes Mal, wenn ein neuer Langzeitspeicher mithilfe der Speicherstrategie extrahiert wird, wird er unter dem von Ihnen festgelegten Namespace gespeichert. Das bedeutet, dass alle Langzeitspeicher ihrem spezifischen Namespace zugeordnet sind, wodurch sie organisiert bleiben und Verwechslungen mit anderen Benutzern oder Sitzungen vermieden werden. Sie sollten ein hierarchisches Format verwenden, das durch Schrägstriche getrennt ist. / Dies hilft dabei, Erinnerungen übersichtlich zu organisieren. 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.

    Ein Akteur bezieht sich auf Entitäten wie Endbenutzer oder agent/user Kombinationen. In einem Chatbot zur Programmierunterstützung ist der Akteur beispielsweise normalerweise 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.

  • StrategyID — Zeigt an, welche Speicherstrategie verwendet wird. Diese Strategie-ID wird automatisch generiert, wenn Sie einen AgentCore Speicher erstellen.

  • sessionId — Identifiziert, aus welcher Sitzung oder Konversation der Speicher stammt.

    Eine Sitzung ist normalerweise 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.

Wenn Sie beispielsweise bei der Erstellung eines AgentCore Speichers den folgenden Namespace als Eingabe für Ihre Strategie definieren:

/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/*" } } } ] }