Neo4j Bellek Sağlayıcısı

Neo4j Bellek Sağlayıcısı, Agent Framework aracılarının bilgi grafı tarafından yedeklenen kalıcı bellek sağlar. Statik bilgi bankalarından alan RAG sağlayıcılarının aksine, bellek sağlayıcısı aracı etkileşimlerini depolar ve geri çağırarak varlıkları otomatik olarak ayıklar ve zaman içinde bir bilgi grafiği oluşturur.

Sağlayıcı üç tür belleği yönetir:

  • Kısa süreli bellek: Konuşma geçmişi ve yakın zaman bağlamı
  • Uzun süreli bellek: Etkileşimlerden ayıklanan varlıklar, tercihler ve olgular
  • Akıl yürütme belleği: Geçmiş muhakeme izlemeleri ve araç kullanım desenleri

Neden Neo4j'i ajan hafızası için kullanmalısınız?

  • Bilgi grafı kalıcılığı: Bellekler düz kayıtlar şeklinde değil, birbirine bağlı varlıklar olarak depolanır, böylece aracı, hatırlanan şeyler arasındaki ilişkiler hakkında muhakeme yürütebilir.
  • Otomatik varlık ayıklama: Konuşmalar, el ile şema tasarımı olmadan yapılandırılmış varlıklara ve ilişkilere ayrıştırılır.
  • Oturumlar arası geri çağırma: Tercihler, olgular ve muhakeme izlemeleri oturumlarda kalıcıdır ve bağlam sağlayıcıları aracılığıyla otomatik olarak ortaya çıkar.

Uyarı

Neo4j, Agent Framework için iki ayrı tümleştirme sunar. Bu sağlayıcı (neo4j-agent-memory), aracı etkileşimlerini depolamak ve geri çağırmak, varlıkları ayıklamak ve zaman içinde bir bilgi grafiği oluşturmak için kullanılan kalıcı bellek içindir. Vektör, tam metin veya karma arama kullanan mevcut bir bilgi grafiğinden GraphRAG için bkz. Neo4j GraphRAG Bağlam Sağlayıcısı.

Bu sağlayıcı henüz C# için kullanılamıyor. Kullanım örnekleri için Python sekmesine bakın.

Önkoşullar

  • Bir Neo4j örneği (kendi kendine barındırılan veya Neo4j AuraDB)
  • Dağıtılan sohbet modeline sahip bir Azure AI Foundry projesi
  • OpenAI API anahtarı veya Azure OpenAI dağıtımı (eklemeler ve varlık ayıklama için)
  • Ortam değişkenleri kümesi: NEO4J_URI, NEO4J_PASSWORD, FOUNDRY_PROJECT_ENDPOINT, FOUNDRY_MODEL, OPENAI_API_KEY
  • Yapılandırılan Azure CLI kimlik bilgileri (az login)
  • Python 3.10 veya üzeri

Installation

pip install neo4j-agent-memory[microsoft-agent]

Kullanım

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)

Temel özellikler

  • Çift yönlü: Çağrıdan önce ilgili bağlamı otomatik olarak alır ve yanıtlardan sonra yeni bellekleri kaydeder
  • Varlık ayıklama: Çok aşamalı ayıklama işlem hattı kullanarak konuşmalardan bilgi grafı oluşturur
  • Tercih öğrenmesi: Oturumlar arasında kullanıcı tercihlerini çıkarsar ve depolar
  • Bellek araçları: Aracılar açıkça bellekte arama yapabilir, tercihleri anımsayabilir ve varlık bağlantılarını bulabilir

Kaynaklar

Sonraki Adımlar