Bagikan melalui


Penyedia Memori Neo4j

Penyedia Memori Neo4j memberikan agen Agent Framework memori persisten yang didukung oleh grafik pengetahuan. Tidak seperti penyedia RAG yang mengambil dari pangkalan pengetahuan statis, penyedia memori menyimpan dan memanggil kembali interaksi agen, secara otomatis mengekstrak entitas dan membangun grafik pengetahuan dari waktu ke waktu.

Penyedia mengelola tiga jenis memori:

  • Memori jangka pendek: Riwayat percakapan dan konteks terbaru
  • Memori jangka panjang: Entitas, preferensi, dan fakta yang diekstrak dari interaksi
  • Memori penalaran: Jejak penalaran sebelumnya dan pola penggunaan alat

Mengapa menggunakan Neo4j untuk memori agen?

  • Persistensi grafik pengetahuan: Memori disimpan sebagai entitas yang terhubung, bukan rekaman datar, sehingga agen dapat beralasan tentang hubungan antara hal-hal yang diingatnya.
  • Ekstraksi entitas otomatis: Percakapan diurai ke dalam entitas dan hubungan terstruktur tanpa desain skema manual.
  • Pengingat lintas sesi: Preferensi, fakta, dan jejak penalaran tetap ada di seluruh sesi dan muncul secara otomatis melalui penyedia konteks.

Nota

Neo4j menawarkan dua integrasi terpisah untuk Agent Framework. Penyedia ini (neo4j-agent-memory) adalah untuk memori persisten - menyimpan dan menarik kembali interaksi agen, mengekstrak entitas, dan membangun grafik pengetahuan dari waktu ke waktu. Untuk GraphRAG dari graf pengetahuan yang sudah ada menggunakan pencarian vektor, teks penuh, atau hibrid, lihat Penyedia Konteks Neo4j GraphRAG.

Penyedia ini belum tersedia untuk C#. Lihat tab Python untuk contoh penggunaan.

Prasyarat

  • Instans Neo4j (dihost sendiri atau Neo4j AuraDB)
  • Proyek Azure AI Foundry dengan model percakapan yang telah diterapkan
  • Kunci API OpenAI atau penyebaran Azure OpenAI (untuk penyematan dan ekstraksi entitas)
  • Variabel lingkungan diatur: NEO4J_URI, , NEO4J_PASSWORDFOUNDRY_PROJECT_ENDPOINT, , FOUNDRY_MODELOPENAI_API_KEY
  • Kredensial Azure CLI dikonfigurasi (az login)
  • Python 3.10 atau yang lebih baru

Penginstalan

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

Penggunaan

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)

Fitur utama

  • Dua arah: Secara otomatis mengambil konteks yang relevan sebelum pemanggilan dan menyimpan memori baru setelah respons
  • Ekstraksi entitas: Membangun grafik pengetahuan dari percakapan menggunakan alur ekstraksi multi-tahap
  • Pembelajaran preferensi: Menyimpulkan dan menyimpan preferensi pengguna di seluruh sesi
  • Alat memori: Agen dapat secara eksplisit mencari memori, mengingat preferensi, dan menemukan koneksi entitas

Sumber Daya

Langkah berikutnya