Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zprostředkovatel paměti Neo4j poskytuje agentům Agent Framework trvalou paměť podporovanou grafem znalostí. Na rozdíl od poskytovatelů RAG, kteří načítají ze statických znalostních bází, poskytovatel paměti ukládá a odvolává interakce agentů, automaticky extrahuje entity a vytváří graf znalostí v průběhu času.
Poskytovatel spravuje tři typy paměti:
- Krátkodobá paměť: Historie konverzací a nedávný kontext
- Dlouhodobá paměť: Entity, předvolby a fakta extrahované z interakcí
- Paměť uvažování: Stopy uvažování a vzory použití nástrojů z minulosti
Proč používat Neo4j pro paměť agenta?
- Trvalost znalostních grafů: Vzpomínky se ukládají jako propojené entity, ne ploché záznamy, takže agent může mít důvod k vztahům mezi věcmi, které si pamatuje.
- Automatická extrakce entit: Konverzace se analyzují do strukturovaných entit a relací bez ručního návrhu schématu.
- Připomenutí napříč relacemi: Předvolby, fakta a stopy uvažování se uchovávají napříč relacemi a automaticky se zobrazí prostřednictvím zprostředkovatelů kontextu.
Poznámka:
Neo4j nabízí dvě samostatné integrace pro Agent Framework. Tento poskytovatel (neo4j-agent-memory) je určený pro trvalou paměť – ukládání a odvolávání interakcí agentů, extrahování entit a vytváření znalostního grafu v průběhu času. Pro použití GrafRAG z existujícího znalostního grafu pomocí vektorového, fulltextového nebo hybridního vyhledávání viz Neo4j GraphRAG Context Provider.
Tento poskytovatel ještě není pro jazyk C# k dispozici. Podívejte se na kartu Python pro příklady použití.
Předpoklady
- Instance Neo4j (v místním prostředí nebo Neo4j AuraDB)
- Projekt Azure AI Foundry s nasazeným modelem chatu
- Klíč rozhraní API OpenAI nebo nasazení Azure OpenAI (pro vkládání a extrakci entit)
- Proměnné prostředí nastavena:
NEO4J_URI,NEO4J_PASSWORD,FOUNDRY_PROJECT_ENDPOINT,FOUNDRY_MODEL,OPENAI_API_KEY - Nakonfigurované přihlašovací údaje Azure CLI (
az login) - Python 3.10 nebo novější
Instalace
pip install neo4j-agent-memory[microsoft-agent]
Využití
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)
Klíčové funkce
- Obousměrný: Automaticky načte relevantní kontext před vyvoláním a uloží nové vzpomínky po odpovědích.
- Extrakce entit: Vytvoří graf znalostí z konverzací pomocí kanálu extrakce s více fázemi.
- Učení předvoleb: Odvozování a ukládání uživatelských předvoleb napříč relacemi
- Nástroje pro paměť: Agenti můžou explicitně prohledávat paměť, pamatovat si předvolby a vyhledávat připojení entit.