| 组件 | 状态 | 访问地址 | 说明 |
|---|---|---|---|
| Neo4j | ✅ 运行中 | http://localhost:7474 | 图数据库 (时序知识图) |
| Qdrant | ✅ 运行中 | http://localhost:6333 | 向量存储 |
| Redis | ✅ 运行中 | localhost:6379 | 会话缓存 |
| 项目代码 | ✅ 已创建 | memory-app/ |
完整实现 |
| 组件 | 状态 | 说明 |
|---|---|---|
| Ollama | ✅ 已完成 (8.96GB) | 本地 LLM 和嵌入模型 |
cd memory-system-deploy/memory-app
# 方式一:使用 requirements.txt (推荐)
pip install -r requirements.txt
# 方式二:逐个安装核心依赖
pip install python-dotenv
pip install neo4j
pip install qdrant-client
pip install redis
pip install sentence-transformers注意: 如果网络较慢,可以使用国内镜像:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simplecd memory-app
cp .env.example .env.env 文件已包含所有默认配置,无需修改即可使用。
cd memory-system-deploy
docker-compose up -d检查服务状态:
docker ps预期输出应包含:
memory-neo4jmemory-qdrantmemory-redismemory-ollama(下载完成后)
Neo4j 需要 30-60 秒启动时间。
- 用户名:
neo4j - 密码:
memoryPassword123
如果显示 unhealthy,等待后重试:
docker logs memory-neo4j
docker pscd memory-app
python example_usage.py┌─────────────────────────────────────────────┐
│ 你的 Agent 应用 │
└─────────────────┬───────────────────────────┘
│
┌─────────────────▼───────────────────────────┐
│ IntegratedMemorySystem │
│ (memory_systems skill 实现) │
├─────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Session │ │ Vector Store │ │
│ │ Memory │ │ (Qdrant) │ │
│ │ (Redis) │ │ │ │
│ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────────────────────────┐ │
│ │ Temporal Knowledge Graph │ │
│ │ (Neo4j) │ │
│ └──────────────────────────────────┘ │
└─────────────────────────────────────────────┘
import asyncio
from memory_system import get_memory_system
async def main():
# 初始化
memory = await get_memory_system()
# 开始会话
memory.start_session("user_session_123")
# 存储事实
await memory.store_fact(
fact="用户喜欢使用 Python 开发",
entity="user_123"
)
# 语义检索
results = await memory.retrieve_memories(
query="编程语言偏好",
limit=5
)
for result in results:
print(f"[{result['score']:.2f}] {result['text']}")
asyncio.run(main())await memory.store_fact(
fact="Alice 在 TechCorp 工作",
entity="alice",
relationships=[
{"type": "WORKS_AT", "target": "techcorp"}
]
)
# 查询实体上下文
context = await memory.get_entity_history("alice")
print(context)from datetime import datetime, timedelta
# 查询某个时间点的状态
past_time = datetime.now() - timedelta(days=30)
results = await memory.graph.query_at_time(
query="MATCH (e:Entity)-[r:WORKS_AT]->(c:Company) RETURN e, r, c",
query_time=past_time
)| 架构 | 准确率 | 延迟 | 适用场景 |
|---|---|---|---|
| 时序知识图 | 94.8% | 2.58s | 复杂关系推理 |
| GraphRAG | 75-85% | 可变 | 知识密集型任务 |
| Vector RAG | 60-70% | 快速 | 文档检索 |
症状: memory-neo4j 显示 unhealthy
解决方案:
# 查看日志
docker logs memory-neo4j
# 等待 30-60 秒后检查
docker ps
# 如果持续失败,重启容器
docker restart memory-neo4j症状: Error: port is already allocated
解决方案: 编辑 docker-compose.yml 修改端口映射
症状: 网络超时
解决方案:
# 使用国内镜像
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 或手动安装
pip install python-dotenv neo4j qdrant-client redis sentence-transformersOllama 下载完成后,启动服务:
docker-compose up -d ollama下载嵌入模型:
docker exec memory-ollama ollama pull nomic-embed-text
docker exec memory-ollama ollama pull llama3.2编辑 .env 文件:
# 调整会话时长
MEMORY_MAX_SESSION_DURATION=7200
# 启用内存整合
MEMORY_CONSOLIDATION_INTERVAL=43200- Neo4j Browser: http://localhost:7474 - 查看图谱数据
- Qdrant Console: http://localhost:6333/dashboard - 查看向量集合
- Redis CLI:
docker exec -it memory-redis redis-cli
- memory-systems Skill:
~/.factory/skills/memory-systems/SKILL.md - Neo4j 文档: https://neo4j.com/docs/
- Qdrant 文档: https://qdrant.tech/documentation/
- Graphiti 项目: https://github.com/getzep/graphiti
完成以下步骤确认系统就绪:
- 所有 Docker 容器运行中 (
docker ps) - Neo4j 可以访问 (http://localhost:7474)
- Python 依赖已安装
-
.env文件已创建 -
example_usage.py可以运行 - 无错误日志输出
完成以上步骤后,你的 memory system 就可以集成到 agent 应用了!