Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Neo4j memóriaszolgáltató az Agent Framework-ügynököknek egy tudásgráf által támogatott állandó memóriát biztosít. A statikus tudásbázisokból lekérhető RAG-szolgáltatókkal ellentétben a memóriaszolgáltató tárolja és visszahívja az ügynökök interakcióit, automatikusan kinyeri az entitásokat, és idővel létrehoz egy tudásgráfot.
A szolgáltató három memóriatípust kezel:
- Rövid távú memória: Beszélgetési előzmények és legutóbbi környezet
- Hosszú távú memória: Interakciókból kinyert entitások, preferenciák és tények
- Érvelési memória: Korábbi érvelési nyomkövetések és eszközhasználati minták
Miért érdemes a Neo4j-t használni az ügynök memóriájához?
- Tudásgráfok megőrzése: Az emlékek csatlakoztatott entitásokként vannak tárolva, nem pedig egybesimított rekordokként, így az ügynök meg tudja indokolni az emlékező dolgok közötti kapcsolatokat.
- Automatikus entitáskinyerés: A beszélgetések strukturált entitásokba és kapcsolatokba vannak elemezve manuális sématervezés nélkül.
- Munkamenetek közötti visszahívás: A beállítások, a tények és az érvelési nyomkövetések a munkamenetek során is megmaradnak, és a környezetszolgáltatókon keresztül automatikusan felszínre lépnek.
Megjegyzés:
A Neo4j két különálló integrációt kínál az Agent Frameworkhez. Ez a szolgáltató (neo4j-agent-memory) az állandó memória tárolására és visszahívására, az entitások kinyerésére és egy tudásgráf létrehozására használható. Ha egy meglévő tudásgráfból származó GraphRAG-t vektoros, teljes szöveges vagy hibrid kereséssel használ, tekintse meg a Neo4j GraphRAG környezetszolgáltatót.
Ez a szolgáltató még nem érhető el a C#-hoz. Használati példákért tekintse meg a Python lapot.
Előfeltételek
- Neo4j-példány (saját üzemeltetésű vagy Neo4j AuraDB)
- Azure AI Foundry-projekt üzembe helyezett csevegőmodellel
- OpenAI API-kulcs vagy Azure OpenAI-telepítés (beágyazáshoz és entitáskinyeréshez)
- Környezeti változók készlete:
NEO4J_URI,NEO4J_PASSWORD,FOUNDRY_PROJECT_ENDPOINT,FOUNDRY_MODELOPENAI_API_KEY - Konfigurált Azure CLI-hitelesítő adatok (
az login) - Python 3.10 vagy újabb verzió
Installation
pip install neo4j-agent-memory[microsoft-agent]
Usage
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)
Legfontosabb funkciók
- Kétirányú kommunikáció: Automatikusan lekéri a releváns környezetet a meghívás előtt, és a válaszok után menti az új adatokat
- Entitáskinyerés: Többfázisú kinyerési folyamattal készít tudásgráfot beszélgetésekből
- Preferencia-tanulás: Felhasználói beállításokat következtet és tárol a munkamenetek között
- Memóriaeszközök: Az ügynökök explicit módon kereshetnek a memóriában, megjegyezhetik a beállításokat, és entitáskapcsolatokat kereshetnek