Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Neo4j-Speicheranbieter bietet Agent Framework-Agents beständigen Speicher, der von einem Wissensdiagramm unterstützt wird. Im Gegensatz zu RAG-Anbietern, die aus statischen Wissensdatenbanken Informationen abrufen, speichert der Memory-Anbieter Interaktionen mit Agenten und ruft diese ab, indem er automatisch Entitäten extrahiert und im Laufe der Zeit einen Wissensgraph erstellt.
Der Anbieter verwaltet drei Speichertypen:
- Kurzfristiger Speicher: Aufgezeichnete Unterhaltungen und aktueller Kontext
- Langzeitspeicher: Entitäten, Präferenzen und Fakten, die aus Interaktionen extrahiert werden
- Reasoning memory: Vergangene Argumentationsspuren und Werkzeugnutzungsmuster
Gründe für die Verwendung von Neo4j für den Agent-Speicher?
- de-DE: Wissensgraphpersistenz: Erinnerungen werden als verbundene Entitäten gespeichert, nicht als flache Datensätze, sodass der Agent über Beziehungen zwischen Dingen nachdenken kann, die er sich erinnert.
- Automatische Entitätsextraktion: Unterhaltungen werden ohne manuelles Schemadesign in strukturierte Entitäten und Beziehungen analysiert.
- Sitzungsübergreifende Erinnerung: Einstellungen, Fakten und Ablaufspuren bleiben sitzungsübergreifend verfügbar und werden automatisch über Kontextanbieter bereitgestellt.
Hinweis
Neo4j bietet zwei separate Integrationen für Agent Framework. Dieser Anbieter (neo4j-agent-memory) dient für beständigen Speicher – Speichern und Zurückrufen von Agentinteraktionen, Extrahieren von Entitäten und Erstellen eines Wissensdiagramms im Laufe der Zeit.
Informationen zu GraphRAG aus einem vorhandenen Wissensdiagramm mit Vektor-, Volltext- oder Hybridsuche finden Sie im Neo4j GraphRAG-Kontextanbieter.
Dieser Anbieter ist noch nicht für C# verfügbar. Beispiele für die Verwendung finden Sie auf der Registerkarte Python.
Voraussetzungen
- Eine Neo4j-Instanz (selbst gehostet oder Neo4j AuraDB)
- Ein Azure AI Foundry-Projekt mit einem bereitgestellten Chatmodell
- Ein OpenAI-API-Schlüssel oder eine Azure OpenAI-Bereitstellung (für Einbettungen und Entitätsextraktion)
- Umgebungsvariablen gesetzt:
NEO4J_URI,NEO4J_PASSWORD,FOUNDRY_PROJECT_ENDPOINT,FOUNDRY_MODEL,OPENAI_API_KEY - Konfigurierte Azure CLI-Anmeldeinformationen (
az login) - Python 3.10 oder höher
Installation
pip install neo4j-agent-memory[microsoft-agent]
Verwendung
import os
from pydantic import SecretStr
from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient
from azure.identity.aio import AzureCliCredential
from neo4j_agent_memory import MemoryClient, MemorySettings
from neo4j_agent_memory.integrations.microsoft_agent import (
Neo4jMicrosoftMemory,
create_memory_tools,
)
# Pass Neo4j and embedding configuration directly via constructor arguments.
# MemorySettings also supports loading from environment variables or .env files
# using the NAM_ prefix (e.g. NAM_NEO4J__URI, NAM_EMBEDDING__MODEL).
settings = MemorySettings(
neo4j={
"uri": os.environ["NEO4J_URI"],
"username": os.environ.get("NEO4J_USERNAME", "neo4j"),
"password": SecretStr(os.environ["NEO4J_PASSWORD"]),
},
embedding={
"provider": "openai",
"model": "text-embedding-3-small",
},
)
memory_client = MemoryClient(settings)
async with memory_client:
memory = Neo4jMicrosoftMemory.from_memory_client(
memory_client=memory_client,
session_id="user-123",
)
tools = create_memory_tools(memory)
async with AzureCliCredential() as credential, Agent(
client=FoundryChatClient(
credential=credential,
project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
model=os.environ["FOUNDRY_MODEL"],
),
instructions="You are a helpful assistant with persistent memory.",
tools=tools,
context_providers=[memory.context_provider],
) as agent:
session = agent.create_session()
response = await agent.run("Remember that I prefer window seats on flights.", session=session)
Wichtigste Funktionen
- Bidirektional: Ruft automatisch relevanten Kontext vor dem Aufruf ab und speichert neue Erinnerungen nach Antworten.
- Entitätsextraktion: Erstellt ein Wissensdiagramm aus Unterhaltungen mithilfe einer mehrstufigen Extraktionspipeline
- Einstellungslernen: Leitet Benutzereinstellungen über Sitzungen hinweg ab und speichert sie.
- Speichertools: Agents können Arbeitsspeicher explizit durchsuchen, Einstellungen speichern und Entitätsverbindungen suchen