关于 neo4j-agent-memory-skill
neo4j-agent-memory-skill 是介绍 neo4j-agent-memory 的参考技能,面向需要为 AI Agent 构建持久图记忆的开发者。该项目以单一 Neo4j 图存储短期、长期和推理记忆,并提供库、MCP 服务及托管服务等使用方式。
主要功能
- 01短期、长期与推理记忆
- 02基于 POLE+O 构建实体图
- 03对话与推理轨迹存储
- 04提供本地及托管使用方式
- 05支持多种 Agent 框架集成
- 06多阶段实体抽取与去重
适用场景
- 01为 Agent 保存跨会话对话记忆
- 02从对话构建实体和关系图
- 03记录工具调用与决策过程
- 04为不同 Agent 框架接入图记忆
MCP 相关
该项目提供本地 MCP 服务,将记忆操作作为工具暴露给兼容客户端;另有托管 MCP 端点,使用 Streamable HTTP 和 bearer token。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ neo4j-contrib/ neo4j-skills --skill neo4j-agent-memory-skill安装后在 Claude Code 中输入/neo4j-agent-memory-skill确认已加载。
附带文件README.md
详细介绍
neo4j-agent-memory
neo4j-agent-memory Python 包的权威参考——这是 Neo4j Labs 项目,可在单个知识图谱中为 AI Agent 提供三个不同的记忆层(短期、长期和推理)。
⚠️ 撰写前请核实权威信息。 版本号、额外依赖项、工具数量和 API 范围会随版本变化。本技能中的数值反映的是特定时间点的信息。发布任何与版本有关的内容前,请对照 PyPI(
https://pypi.org/project/neo4j-agent-memory/)和 GitHub README(https://github.com/neo4j-labs/agent-memory)进行确认。PyPI 是版本号的权威来源,切勿自行推断。
适用场景
- 构建需要由 Neo4j 支持持久化记忆(短期记忆、长期记忆、推理轨迹)的 AI Agent
- 使用
neo4j-agent-memoryPython 包或托管的 NAMS 服务 memory.neo4jlabs.com - 将 Agent 记忆集成到 LangChain、PydanticAI、CrewAI、AWS Strands、Google ADK、OpenAI Agents、LlamaIndex 或 Microsoft Agent Framework
- 编写有关图原生 Agent 记忆的文档、教程或定位内容
- 比较图原生记忆与纯向量方案
不适用场景
- 普通 Neo4j 驱动连接(不需要记忆层)→ 使用
neo4j-driver-python-skill - 编写或优化 Cypher 查询 → 使用
neo4j-cypher-skill - GraphRAG 检索流水线 → 使用
neo4j-graphrag-skill
项目概览
| 字段 | 值 |
|---|---|
| 包 | neo4j-agent-memory |
| PyPI | https://pypi.org/project/neo4j-agent-memory/ |
| GitHub | https://github.com/neo4j-labs/agent-memory |
| 官方文档 | https://neo4j.com/labs/agent-memory/ |
| 托管服务 | https://memory.neo4jlabs.com(NAMS——早期访问,尚未在官方项目页面中记录) |
| 托管 MCP 端点 | https://memory.neo4jlabs.com/mcp(Streamable HTTP,Bearer 身份验证) |
| 许可证 | Apache-2.0 |
| Python | 3.10+ |
| Neo4j | 5.20+(向量索引所需) |
| 状态 | 实验性(Neo4j Labs,社区支持) |
| 当前版本(撰写时) | 0.7.0(2026-10-07)——引用前务必核实 PyPI 信息 |
一句话介绍
面向 AI Agent 的图原生记忆系统,可存储对话、构建知识图谱并记录 Agent 推理——所有内容都以互相关联的节点形式存储在单个 Neo4j 数据库中。
使用方式
neo4j-agent-memory 提供两种使用方式。它们属于同一个底层项目,区别在于运行方式、身份验证方式以及由谁负责管理。
| 选项 | 说明 | 适用情况 |
|---|---|---|
| 自托管库 | pip install neo4j-agent-memory + 自有 Neo4j(本地 / Docker / Aura)。完整的 Python API、本地 MCP 服务和框架集成都在你的进程中运行。 | 开发、本地部署的数据、自定义提取流水线、需要完全控制,或自行提供嵌入模型 / 大模型。 |
| 托管服务(NAMS) | 位于 https://memory.neo4jlabs.com 的托管服务。每个工作区使用隔离的 Neo4j Aura 数据库,并提供 REST API、远程 MCP 端点和 Web 控制台。 | 零基础设施试用、在多个 Agent / 机器间共享记忆、演示,或不想运行 Neo4j 的团队。 |
⚠️ NAMS 可以访问,但尚未在 GitHub README 或
neo4j.com/labs/agent-memory/中提及。 请将其视为早期访问 / 软启动服务。在已发布的内容中,不要声称其提供 SLA、定价或已正式发布。详情请参阅下文的**托管服务(NAMS)**章节。
三种记忆类型
这是该架构的标志性特征。描述项目的每一处内容都应首先介绍这三种类型。
| 记忆类型 | 存储内容 | 颜色约定 |
|---|---|---|
| 短期 | 对话消息、会话历史、顺序消息链、按元数据筛选的搜索、大模型驱动的摘要 | 绿色(#B2F2BB / #2F9E44) |
| 长期 | 实体(人物、地点、组织)、偏好、事实及其相互关系——通过 POLE+O 模型从对话中自动构建 | 橙色/黄色(#FFEC99 / #F08C00) |
| 推理 | 决策轨迹、工具调用来源、思考-行动-结果链——让 Agent 能够从自身过去的推理模式中学习 | 紫色(#D0BFFF / #9C36B5) |
推理记忆是主要的竞争差异化优势。 大多数竞品系统都涵盖短期记忆和长期记忆,却将推理记忆视为次要功能,甚至完全省略。进行产品定位时,应重点突出这一点。
POLE+O 模型
长期记忆使用 POLE+O 实体框架——这是本项目的标准实体分类:
- Person(人物)
- Organization(组织)
- Location(地点)
- Event(事件)
- +O Object(对象,任何不属于前四类的事物——产品、概念、项目等)
绘制数据模型图时,实体节点使用椭圆,关系使用带标签的箭头(UPPER_SNAKE_CASE),并遵循 Neo4j Browser 的惯例。
安装
安装核心包并添加扩展。扩展安装方式为 pip install neo4j-agent-memory[<extra>]。
pip install neo4j-agent-memory # Core
pip install neo4j-agent-memory[openai] # + OpenAI embeddings
pip install neo4j-agent-memory[mcp] # + MCP server
pip install neo4j-agent-memory[langchain] # + LangChain
pip install neo4j-agent-memory[all] # Everything
完整扩展列表(可能变更——请在 PyPI 上核实):all、anthropic、aws、bedrock、cli、crewai、extraction、full、fuzzy、gliner、google、google-adk、instructor、langchain、langchain-agents、litellm、llamaindex、mcp、microsoft-agent、nams、observability、openai、openai-agents、opentelemetry、opik、pydantic-ai、sentence-transformers、spacy、strands、vertex-ai。
Python API(快速入门)
标准导入模式和基本用法。教程和示例应采用这种形式。
import asyncio
from neo4j_agent_memory import MemoryClient, MemorySettings
async def main():
settings = MemorySettings(
neo4j={"uri": "bolt://localhost:7687", "password": "your-password"}
)
async with MemoryClient(settings) as memory:
# Short-term: store a conversation message
await memory.short_term.add_message(
session_id="user-123",
role="user",
content="Hi, I'm John and I love Italian food!"
)
# Long-term: build the knowledge graph
await memory.long_term.add_entity("John", "PERSON")
await memory.long_term.add_preference(
category="food",
preference="Loves Italian cuisine"
)
# Get combined context for an LLM prompt
context = await memory.get_context(
"What restaurant should I recommend?",
session_id="user-123"
)
print(context)
asyncio.run(main())
请注意异步上下文管理器模式(async with MemoryClient(settings) as memory:)——这是标准形式。
MCP 服务
将记忆作为工具提供给兼容 MCP 的 AI 助手(Claude Desktop、Claude Code、Cursor、VS Code Copilot)。
调用方式
权威的一行命令(无需安装):
uvx "neo4j-agent-memory[mcp]" mcp serve --password <neo4j-password>
本地安装方式:
neo4j-agent-memory mcp serve --password <pw>
传输方式和配置
# stdio (default — Claude Desktop, Claude Code)
neo4j-agent-memory mcp serve --password <pw>
# Streamable HTTP (network; endpoint /mcp/). `--transport sse` deprecated — serves Streamable HTTP with warning
neo4j-agent-memory mcp serve --transport http --port 8080 --password <pw>
# Core profile — fewer tools, less context overhead
neo4j-agent-memory mcp serve --profile core --password <pw>
# Session continuity across conversations
neo4j-agent-memory mcp serve \
--session-strategy per_day \
--user-id alice \
--password <pw>
工具配置
| 配置 | 工具 | 内容 |
|---|---|---|
| core | 6 | memory_search、memory_get_context、memory_store_message、memory_add_entity、memory_add_preference、memory_add_fact |
| extended(默认) | 16 | Core + 对话历史、实体详情、图谱导出、关系创建、推理轨迹、观察记录、只读 Cypher |
从 v0.1.1 起,memory_add_fact 支持 metadata 参数,其功能与 memory_add_entity 相当。
Claude Code 注册
claude mcp add neo4j-agent-memory -- \
uvx "neo4j-agent-memory[mcp]" mcp serve --password <neo4j-password>
Claude Desktop 配置
{
"mcpServers": {
"neo4j-agent-memory": {
"command": "uvx",
"args": ["neo4j-agent-memory[mcp]", "mcp", "serve", "--password", "your-password"],
"env": {
"OPENAI_API_KEY": "sk-..."
}
}
}
}
关于
memory.neo4jlabs.com/mcp上的托管 MCP 端点,请参阅下方的 **托管服务(NAMS)**部分——它使用 Streamable HTTP 传输和 bearer-token 身份验证,而非本地uvx调用。
托管服务(NAMS)
NAMS——Neo4j Agent Memory Service——是 neo4j-agent-memory 的托管部署,网址为 https://memory.neo4jlabs.com。它集成了 REST API、MCP 服务、Web 控制台和每个工作区各自的 Neo4j Aura 数据库。
⚠️ 引用前请对照在线服务核实。 NAMS 未在 GitHub README 或
neo4j.com/labs/agent-memory/上记录。端点形式、工具数量、身份验证流程和限制可能在没有发布说明的情况下发生变化。发布任何与 NAMS 相关的内容前,请重新检查在线网站和/openapi.json中的 OpenAPI 规范。
服务接口
- 基础 URL:
https://memory.neo4jlabs.com - Web 控制台: 根 URL — 工作区管理、记忆浏览、实体可视化
- REST API:
https://memory.neo4jlabs.com/v1/— OpenAPI 规范位于/openapi.json;涵盖对话、实体、观察结果、推理轨迹和只读 Cypher - MCP 端点:
https://memory.neo4jlabs.com/mcp— Streamable HTTP 传输,提供托管工具集,使用 bearer token 进行身份验证
身份验证
- API 密钥,前缀为
nams_,可在 Web 控制台中创建和轮换 — 用作 REST 和 MCP 的 bearer token - Auth0 OAuth2 (PKCE) + 用于交互式用户流程的作用域 JWT
请勿将这些凭据与可自托管库的 --password Neo4j 凭据混淆——它们用于技术栈的不同部分。
存储模型
每个工作区都由一个隔离的 Neo4j Aura 数据库提供支持,按需配置。也支持自带 Neo4j,并可针对每个工作区单独配置。
速率限制
使用量计数器按 API 密钥/工作区进行跟踪。具体限制尚未公开说明——在向客户承诺具体数字前,请查看控制台或再次向服务核实。
Claude Code 注册(托管 MCP)
claude mcp add --transport http neo4j-agent-memory-hosted \
https://memory.neo4jlabs.com/mcp \
--header "Authorization: Bearer <nams_api_key>"
Claude Desktop 配置(托管 MCP)
{
"mcpServers": {
"neo4j-agent-memory-hosted": {
"url": "https://memory.neo4jlabs.com/mcp",
"type": "http",
"headers": {
"Authorization": "Bearer nams_..."
}
}
}
}
框架集成
所有集成都位于 neo4j_agent_memory.integrations.<framework> 下。请安装对应的额外依赖。
| 框架 | 安装额外依赖 | 导入 |
|---|---|---|
| LangChain | [langchain] | from neo4j_agent_memory.integrations.langchain import Neo4jAgentMemory |
| Pydantic AI | [pydantic-ai] | from neo4j_agent_memory.integrations.pydantic_ai import MemoryDependency |
| Google ADK | [google-adk] | from neo4j_agent_memory.integrations.google_adk import Neo4jMemoryService |
| AWS Strands | [strands] | from neo4j_agent_memory.integrations.strands import context_graph_tools |
| CrewAI | [crewai] | from neo4j_agent_memory.integrations.crewai import Neo4jCrewMemory |
| LlamaIndex | [llamaindex] | from neo4j_agent_memory.integrations.llamaindex import Neo4jLlamaIndexMemory |
| OpenAI Agents | [openai-agents] | from neo4j_agent_memory.integrations.openai_agents import ... |
| Microsoft Agent Framework | [microsoft-agent] | from neo4j_agent_memory.integrations.microsoft_agent import Neo4jMicrosoftMemory |
实体抽取流程
多阶段抽取(按成本/质量权衡,从最快到最准确):
- spaCy — 快速的统计式 NER,成本最低,覆盖面广但不够精准
- GLiNER — 使用类型化模式进行零样本实体抽取;使用
GLiREL抽取关系 - LLM 回退 — 最准确、成本最高;在结构丰富或含糊不清时使用
丰富化是独立的后台阶段:Wikipedia 和 Diffbot 可以为抽取出的实体补充上下文信息。
去重(v0.1.1+)通过匹配主体/谓词并结合嵌入相似度(阈值约为 0.95),自动合并重复事实和偏好,并更新置信度,而不是创建新节点。可通过 DeduplicationConfig 进行调优。
需要了解的配置对象:ExtractionConfig、DeduplicationConfig、MemoryIntegration、SessionStrategy。
定位用语
以下表述至关重要。尽可能原样使用。
核心标语
- “图负责理解;向量负责相似度。”
- “向量存储带来回忆。图带来理解。”
- “三种记忆类型,一个知识图谱。”
类别定位
- 在适合的场合,引用 Foundation Capital 的 “AI's Trillion-Dollar Opportunity: Context Graphs” 理念。
neo4j-agent-memory被定位为上下文图谱类别的完整实现——它涵盖全部三个记忆层,而不仅仅是两个。- 上下文图谱与领域数据共存于同一个 Neo4j 实例中(而非外挂的外部系统)。这是架构图中的一个关键概念/视觉要点。
建议表述
- “图原生记忆”
- “上下文图”
- “三个独立的记忆层”
- “将推理轨迹作为一等图节点”
- “从过往推理中学习”
- “根据对话自动构建知识图谱”
- “Neo4j Labs 项目” / “实验性” / “社区支持”
避免表述
- 不要在已发布的内容中点名具体竞品(Mem0、Zep、Letta、Cognee、Supermemory)。请围绕功能而非产品名称进行比较。
- 不要称其为“已可用于生产环境”(这是一个 Labs 项目——完整的语气指南请参阅
neo4j-labs-brand技能)。 - 不要说“官方支持”,也不要暗示提供 SLA。
需要留意的常见修正
编辑或审核有关此项目的内容时,请检查以下事项:
- 版本号过时——如今仍写“v0.1.0”的人可能参考了过时的笔记;请核实 PyPI。
- 规范文档 URL 错误——正确地址是
neo4j.com/labs/agent-memory,而不是 Vercel 预览 URL。 - 臆测 API 接口——如果代码示例未经运行验证,请标出;优先采用 GitHub README 或官方示例中的模式。
- 缺少 “Labs” 定位——应明确说明它具有实验性并由社区支持。
- 与其他 Neo4j MCP 服务混淆——这类服务有多个(
mcp-neo4j-cypher、mcp-neo4j-memory——旧版知识图谱记忆服务等)。neo4j-agent-memory的 MCP 服务有所不同,并作为软件包的一部分随[mcp]extra 一同发布。 - 将 NAMS 与可自托管库混淆——两者基于同一项目,但使用方式不同。连接字符串、身份验证和工具集均不相同:可自托管版本使用本地
uvx调用和 Neo4j--password;NAMS 使用 Streamable HTTP MCP URL 和以nams_为前缀的 bearer token。请勿混用。 - 过度承诺 NAMS 的可用性——GitHub README 或
neo4j.com/labs/agent-memory/尚未提及托管服务。避免使用“官方支持”、SLA、定价声明或“已可用于生产环境”等表述。应将其视为早期体验服务。
生态系统中的相关项目
经常会提及以下项目;请识别并使用正确名称。
| 项目 | 说明 |
|---|---|
| create-context-graph | CLI 脚手架(uvx create-context-graph),可生成预先接入 neo4j-agent-memory 的全栈上下文图应用。规范文档:create-context-graph.dev。 |
| Lenny's Podcast Memory Explorer | 标志性演示——包含 299 期播客、知识图谱、地理空间地图和 Wikipedia 内容增强。基于 PydanticAI。源代码:https://github.com/neo4j-labs/agent-memory/tree/main/examples/lennys-memory |
| neo4j-agent-integrations | 更广泛的框架集成项目集合,其中许多集成会通过 [<framework>] extras 打包到 neo4j-agent-memory 中。 |
| agent-memory-tck | 技术合规套件——用于多语言、多框架互操作性(多语言生态)的行为规范。 |
| Microsoft Learn integration | Microsoft Agent Framework 官方文档将 neo4j-agent-memory 列为 Neo4j Memory Provider。 |
规范示例(来自 neo4j-labs/agent-memory 仓库)
请引导用户查看上游示例,而不是自行编写示例。以下所有项目都位于 https://github.com/neo4j-labs/agent-memory/tree/main/examples 的 examples/ 目录下:
- lennys-memory — 标杆级 PydanticAI 演示。来源:https://github.com/neo4j-labs/agent-memory/tree/main/examples/lennys-memory
- full-stack-chat-agent — 使用 NVL 图形可视化的 PydanticAI 新闻研究。来源:https://github.com/neo4j-labs/agent-memory/tree/main/examples/full-stack-chat-agent
- financial-services-advisor/aws-financial-services-advisor — AWS Strands 多 Agent KYC/AML,带有推理轨迹审计记录。来源:https://github.com/neo4j-labs/agent-memory/tree/main/examples/financial-services-advisor/aws-financial-services-advisor
- financial-services-advisor/google-cloud-financial-advisor — Google ADK 多 Agent,使用 Vertex AI 嵌入 + SSE 流式传输。来源:https://github.com/neo4j-labs/agent-memory/tree/main/examples/financial-services-advisor/google-cloud-financial-advisor
- microsoft_agent_retail_assistant — Microsoft Agent Framework,使用 GDS 算法和上下文提供程序。来源:https://github.com/neo4j-labs/agent-memory/tree/main/examples/microsoft_agent_retail_assistant
- domain-schemas — 8 个 GLiNER2 提取脚本。来源:https://github.com/neo4j-labs/agent-memory/tree/main/examples/domain-schemas
- google_cloud_integration — 渐进式教程,涵盖 Vertex AI、ADK、MCP 和 MemoryIntegration。来源:https://github.com/neo4j-labs/agent-memory/tree/main/examples/google_cloud_integration
- google_adk_demo — 展示 Neo4jMemoryService 的独立 ADK 演示。来源:https://github.com/neo4j-labs/agent-memory/tree/main/examples/google_adk_demo
图示规范(交叉引用)
为本项目构建图示时,请结合以下技能:
excalidraw技能 — JSON 格式和项目的图示管理脚本neo4j-styleguide技能 — Cypher 代码风格和 Neo4j 品牌颜色neo4j-labs-brand技能 — Labs 紫色(#6366F1)、状态徽章、免责声明措辞
记忆类型颜色(在所有图示中保持一致):
Short-Term: #B2F2BB fill / #2F9E44 stroke (green)
Long-Term: #FFEC99 fill / #F08C00 stroke (orange/yellow)
Reasoning: #D0BFFF fill / #9C36B5 stroke (purple)
Neo4j/Store: #A5D8FF fill / #1971C2 stroke (blue)
Labs accent: #6366F1 (purple, for Labs branding elements)
文档结构(交叉引用)
neo4j.com/labs/agent-memory 上的规范文档遵循 Diataxis 框架(详情请参阅本项目中的 diataxis 技能):
- 教程 — 构建你的第一个启用记忆的 Agent
- 操作指南 — 实体提取、去重、丰富、集成
- 参考 — 配置、CLI、MCP 工具、API
- 说明 — POLE+O 模型、记忆类型、提取管道
添加新内容时,请将其放在正确的类别中。
快速权威事实检查清单
发布有关本项目的任何内容之前,请确认:
- 版本号与 PyPI 当前版本一致(不要根据说明推断)
- 规范文档链接指向
neo4j.com/labs/agent-memory - 三种记忆类型名称正确(短期、长期、推理)
- POLE+O 模型名称保持一致(不是 POLEO,也不是 POLE-O)
- 相关时注明 Python ≥ 3.10 和 Neo4j ≥ 5.20 的要求
- README/落地页内容中包含 Labs 免责声明
- 发布内容中不出现竞争对手名称
- 明确指出推理记忆是差异化优势
- 导入路径使用
neo4j_agent_memory.integrations.<framework>(下划线、snake_case) - 如果提及 NAMS,请明确区分它与可自托管库,并根据在线服务重新核实端点(尚未同步到 README)
资源
- PyPI(版本的权威来源): https://pypi.org/project/neo4j-agent-memory/
- GitHub: https://github.com/neo4j-labs/agent-memory
- 规范文档: https://neo4j.com/labs/agent-memory/
- 变更日志: https://github.com/neo4j-labs/agent-memory/blob/main/CHANGELOG.md
- NAMS(托管服务): https://memory.neo4jlabs.com
- NAMS REST API: https://memory.neo4jlabs.com/v1/(OpenAPI 位于
/openapi.json) - NAMS MCP 端点: https://memory.neo4jlabs.com/mcp(可流式传输的 HTTP)
- create-context-graph(脚手架工具): https://create-context-graph.dev
- 社区论坛: https://community.neo4j.com
- Microsoft Learn 集成页面: https://learn.microsoft.com/en-us/agent-framework/integrations/neo4j-memory
检查清单
- 版本:引用前检查 PyPI
- 使用模式:可自托管还是使用 NAMS
- 已安装正确的额外依赖(
neo4j-agent-memory[<extra>]) -
MemoryClient用作异步上下文管理器 - 明确写出三种类型:短期/长期/推理
- POLE+O 始终一致(不要写成 POLEO 或 POLE-O)
- NAMS:强调早期访问;不提 SLA 或定价
- 不要将凭据硬编码;NAMS bearer token 与 Neo4j
--password分开