Sicherheitsbetrachtungen

Geltungsbereich: Dieser Artikel behandelt Sicherheitsaspekte im Zusammenhang mit dem Agent-Speicher-Python-SDK. Sie gilt nur für Anwendungen, die entweder die Active-Memory-Features des SDK oder die Speicherebene verwenden.

Warum dies wichtig ist: Agent Memory kann Threadinhalte und Speicherdatensätze in Oracle AI Database persistieren und, wenn LLM-gestützte Features aktiviert sind, Inhalte an konfigurierte Modellendpunkte zur Zusammenfassung, Speicherextraktion oder Einbettung senden. Ein sicheres Deployment hängt daher von der sorgfältigen Verarbeitung von Anwendungsdaten, dem Abrufumfang, dem Datenbankzugriff, externen Modellendpunkten und Aufbewahrungs-Policys ab.

Überlegungen zur Verarbeitung von LLM-gesichertem Speicher

Agent Memory unterstützt Active-Memory-Features wie Threadzusammenfassung und automatische Speicherextraktion. Wenn diese Features aktiviert sind, kann das SDK aktuelle Nachrichten, Threadzusammenfassungen, abgerufene Speicher oder Suchtext an den konfigurierten LLM- oder Einbettungsendpunkt senden.

Hinweis: Senden Sie nur Inhalte an den Agent-Speicher, die für den konfigurierten Modellendpunkt und Ihre Deployment-Policys geeignet sind. Wenn active-memory für Daten aktiviert ist, die anscheinend Secrets, Zugangsdaten oder unnötige sensible Daten enthalten, minimieren oder verdecken Sie diesen Inhalt, bevor Nachrichten in die Speicherpipeline gelangen. Behandeln Sie extrahierte Speicher, Zusammenfassungen, Kontextkarten und anderen vom Modell abgeleiteten Text als nicht vertrauenswürdige Ausgabe, die von der integrierenden Anwendung sicher geprüft und verarbeitet werden muss.

Warnung: Der vom Modell abgeleitete Text kann zu einem persistenten Speicherstatus werden. Wenn automatische Extraktions-, Zusammenfassungs- oder Kontextkartenfunktionen aktiviert sind, kann eine Zusammenfassung, ein extrahierter Speicher oder ein abgerufener Datensatz vom SDK in spätere Prompts wie Speicherextraktion, Zusammenfassung, Kontextkarte oder Agent-Prompts eingefügt werden, bevor die Anwendung diesen bestimmten Zwischenwert prüfen kann. Behandeln Sie dies als normalen, nicht vertrauenswürdigen LLM-Datenfluss: Prüfen und validieren Sie die Ausgaben, die Ihre Anwendung verbraucht, und lassen Sie nicht zu, dass vom Speicher abgeleiteter Inhalt privilegierte Aktionen autorisiert oder die Policy umgeht.

Befolgen Sie diese Empfehlungen, wenn Sie Active-Memory-Features verwenden:

Überlegungen zu Persistenz und Datenminimierung

Agent Memory ist so konzipiert, dass Nachrichten, Speicher, Metadaten und Einbettungen in Oracle AI Database persistiert werden, wenn der DB-backed Store verwendet wird. Dies ermöglicht einen dauerhaften Abruf und Speicher für mehrere Sitzungen, bedeutet aber auch, dass die Anwendung planen sollte, welche Daten für die Aufbewahrung geeignet sind.

Die folgende Anleitung hilft dabei, Deployments auf sichere Datenbehandlungspraktiken abzustimmen:

Überlegungen zum Abrufumfang und zur Zugriffskontrolle

Der Agent-Speicher verwendet die vom Aufrufer bereitgestellten Werte user_id, agent_id und thread_id, um den Geltungsbereich für den Abruf festzulegen. Dies ist ein leistungsstarkes Filtermodell, aber es sollte nicht das einzige Steuerelement sein, auf das Ihre Anwendung angewiesen ist, wenn sie entscheidet, wie abgerufener Inhalt verwendet oder angezeigt wird.

Standardmäßig verwendet der Thread-Bereichsabruf den exakten Abgleich für user_id und agent_id und eine breitere Übereinstimmung für thread_id, sodass relevante Ergebnisse vergangene Threads für dasselbe Benutzer-Agent-Paar umfassen können. OracleAgentMemory.search()- und search_async()-Aufrufe der obersten Ebene erfordern auch expliziten Benutzergeltungsbereich und exakten Benutzerabgleich. Sie lehnen den ausgelassenen Benutzergeltungsbereich und exact_user_match=False ab, sodass die öffentliche Client-API nicht versehentlich über mehrere Benutzer hinweg sucht. Das Übergeben von user_id=None ist nur mit genauer Benutzerübereinstimmung zulässig, und Ziele sind nur nicht kopierte Datensätze.

Verwenden Sie die folgenden Übungen beim Entwerfen des Abrufs:

Überlegungen zur Anwendungsintegration und zum Caller Trust

Agent Memory soll von der integrierenden Anwendung oder einem anderen vertrauenswürdigen Backend-Code aufgerufen werden, nicht direkt von den Endbenutzern. Raw-Speicher-APIs sind keine Sicherheitsgrenze für Endbenutzer, und sie führen keine Endbenutzerauthentifizierung oder -autorisierung allein aus. Das Package vertraut dem Aufrufer, dass er für jeden Vorgang den korrekten Geltungsbereich user_id, agent_id, thread_id und Retrieval angibt.

Hinweis: Die Integrationsanwendung ist dafür verantwortlich, den Endbenutzer zu authentifizieren, den Zugriff zu autorisieren und den richtigen user_id und Geltungsbereich abzuleiten, bevor sie Agent-Speicher-APIs aufruft. Ein vom Aufrufer bereitgestelltes user_id ist ein Geltungsbereichswert, kein Identitätsnachweis.

Verwenden Sie die folgenden Übungen, wenn Sie das SDK in eine Agent-Anwendung integrieren:

Überlegungen zu Logging und Diagnose

Agent-Speicher verwendet Python-Standardlogging und konfiguriert keine Anwendungslog-Handler oder Logebenen für die integrierende Anwendung. Wenn die Integrationsanwendung das DEBUG-Logging für das SDK aktiviert, können Debuglogs zusätzliche Details zur Fehlerbehebung enthalten. Behalten Sie Produktions-Deployments auf einer Nicht-DEBUG-Ebene bei. Das DEBUG-Logging dient nur zur kontrollierten Entwicklung oder Supportdiagnose und ist nicht für die Erfassung von Produktionslogs geeignet.

Überlegungen zu Datenbankzugriff, Schemaverwaltung und Secrets

Agent-Speicher verwendet eine vom Aufrufer bereitgestellte Oracle AI Database-Verbindung oder einen Pool. Das Package erstellt oder verwaltet keine Datenbankzugangsdaten selbst. Außerdem wird keine Datenbanknetzwerkverschlüsselung im Namen des Aufrufers erstellt, ausgehandelt oder aktualisiert.

Hinweis:

Die folgenden Deployment-Praktiken werden empfohlen:

Überlegungen zur Netzwerkkommunikation und zu externen Endpunkten

Agent Memory kann mit externen Services kommunizieren, wenn das Deployment Remote-LLM oder Einbettungsprovider konfiguriert. Das SDK leitet Prompts und Anforderungsparameter über den konfigurierten Clientpfad weiter, aber die umgebende Anwendung und das Deployment bleiben für die Sicherung dieser Verbindungen verantwortlich.

Folgende Einstellungen werden empfohlen:

Überlegungen zu Ressourcen-Erschöpfungs-Vektoren

Speicherworkflows können die Datenbanknutzung erhöhen, den Datenverkehr einbetten und den LLM-Tokenverbrauch im Laufe der Zeit erhöhen. Dies gilt sowohl für böswillige Übernutzung als auch für unschuldige Implementierungsfehler wie übergroße Nachrichten oder zu breite Abrufmuster.

Verwenden Sie diese Steuerelemente als Teil Ihrer Produktionshärtung: