Бөлісу құралы:


Поставщик памяти Neo4j

Поставщик памяти Neo4j предоставляет агентам Платформы агентов постоянную память, поддерживаемую графом знаний. В отличие от поставщиков RAG, которые извлекают информацию из статических баз знаний, поставщик памяти сохраняет и восстанавливает взаимодействия агента, автоматически извлекая сущности и со временем создаёт граф знаний.

Поставщик управляет тремя типами памяти:

  • Краткосрочная память: история бесед и недавний контекст
  • Долгосрочная память: сущности, предпочтения и факты, извлеченные из взаимодействий
  • Память о причинах: прошлые трассировки причин и шаблоны использования инструментов

Зачем использовать Neo4j для памяти агента?

  • Сохраняемость графа знаний: воспоминания хранятся в виде подключенных сущностей, а не неструктурированных записей, поэтому агент может подумать о связях между тем, которые он запоминает.
  • Автоматическое извлечение сущностей. Беседы анализируются в структурированные сущности и связи без ручного проектирования схемы.
  • Отзыв между сеансами: параметры, факты и трассировки причин сохраняются между сеансами и автоматически появляются с использованием поставщиков контекста.

Замечание

Neo4j предлагает две отдельные интеграции для Agent Framework. Этот поставщик (neo4j-agent-memory) предназначен для постоянной памяти — хранения и воспроизведения взаимодействий агентов, извлечения сущностей и со временем создания графа знаний. Сведения о GraphRAG из существующего графа знаний с помощью вектора, полнотекстового или гибридного поиска см. в поставщике контекста Neo4j GraphRAG.

Этот поставщик пока недоступен для C#. Примеры использования см. на вкладке Python.

Необходимые условия

  • Экземпляр Neo4j (самостоятельная установка или Neo4j AuraDB)
  • Проект Azure AI Foundry с развернутой моделью чата
  • Ключ API OpenAI или развертывание Azure OpenAI (для встраивания и извлечения сущностей)
  • Набор переменных среды: NEO4J_URI, NEO4J_PASSWORD, FOUNDRY_PROJECT_ENDPOINTFOUNDRY_MODELOPENAI_API_KEY
  • Настроенные учетные данные Azure CLI (az login)
  • Python 3.10 или более поздней версии

Installation

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

Использование

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)

Ключевые особенности

  • Двунаправленный: автоматически извлекает соответствующий контекст перед вызовом и сохраняет новые воспоминания после ответов.
  • Извлечение сущностей: Создание графа знаний из бесед с помощью многоступенчатого конвейера извлечения
  • Обучение предпочтениям: обучение и хранение предпочтений пользователей между сеансами
  • Средства памяти: агенты могут явно исследовать память, запоминать предпочтения и находить связи между сущностями

Ресурсы

Дальнейшие действия