🧠 Wolf Logic MCP-内存上下文协议服务器
用于AI代理的完整内存管理系统,具有分布式架构、AMD ROCM支持和多存储同步。
🏗️ 建筑
核心服务
| 服务 | 端口 | 用途 |
|---|---|---|
| Flask仪表板 | 3000 | 用于内存浏览的Web UI |
| REST API | 8888 | FastAPI内存CRUD操作 |
| MCP服务器 | 8765 | 模型上下文协议 |
| 时间同步 | 8900 | 时间戳同步 |
| PostgreSQL+PgVector | 8432 | 矢量嵌入存储 |
| Neo4j | 7474/7687 | 图形关系 |
| Qdrant | 6333 | 矢量相似性搜索 |
数据流
User/AI Agent
↓
Flask UI (3000) ──→ REST API (8888)
↓ ↓
MCP Server (8765) ────────┤
↓ ↓
Time Sync (8900) ←────────┤
↓ ↓
┌───────────────────────────────┐
│ PostgreSQL Neo4j Qdrant │
│ (8432) (7687) (6333) │
└───────────────────────────────┘🚀 快速开始
先决条件
- Docker&Docker编写
- AMD ROCM驱动程序(可选,用于GPU加速)
- 推荐16GB+内存
启动一切
cd /mnt/s/wolf-logic-mcp
docker compose -f docker-compose.yml up -d访问服务
- 仪表盘: http://localhost:3000
- API文件: http://localhost:8888/docs
- Neo4j浏览器: http://localhost:7474
- 时间同步状态: http://localhost:8900/sync/status
📋 API终点
REST API(端口8888)
内存操作:
POST /memories-创建内存GET /memories-列出内存(需要user_id/agent_id/run_id)GET /memories/{id}-获取特定内存PUT /memories/{id}-更新内存DELETE /memories/{id}-删除内存POST /search-语义搜索GET /memories/{id}/history-记忆历史
系统:
GET /health-健康检查GET /stats-系统统计POST /configure-更新配置
时间同步API(端口8900)
同步:
POST /sync-更新服务时间戳GET /sync/status/{service}-检查服务状态GET /sync/status-所有服务状态POST /sync/compare-比较时间戳GET /sync/latest-最新更新时间戳
🔧 配置
环境变量
后端(.env):
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DB=memories
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
NEO4J_URI=bolt://neo4j:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=mem0graph
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_LLM_MODEL=llama3.2:3b
OLLAMA_EMBEDDER_MODEL=nomic-embed-textFlask用户界面(.env):
MEMORY_API_URL=http://localhost:8888
PGVECTOR_URL=postgresql://postgres:postgres@localhost:8432/memories
USER_ID=cadillacthewolf🐳 Docker服务
数据存储
- PostgreSQL+PgVector -带有向量嵌入的主存存储
- Neo4j -绘制记忆之间的关系图
- Qdrant -快速向量相似度搜索
应用服务
- FastAPI REST API -内存CRUD操作
- FastAPI MCP服务器 -模型上下文协议
- Flask仪表板 -Web用户界面
- 时间同步服务器 -时间戳同步
后台服务
- 奥拉玛 (可选)-用于嵌入的本地LLM
📊 记忆存储
PostgreSQL架构
CREATE TABLE memories (
id UUID PRIMARY KEY,
user_id VARCHAR,
content TEXT,
embedding VECTOR(384),
created_at TIMESTAMP,
metadata JSONB
);Neo4j图形
(User)-[:CREATED]->(Memory)
(Memory)-[:MENTIONS]->(Entity)
(Entity)-[:RELATES_TO]->(Entity)🔴 AMD ROCM支持
使用ROCM的作业代理
位于 server/Job Agent/:
ollama_job_rocm.py-支持ROCM的Ollama客户端ollama_job_async.py-异步作业处理ollama_job_batch.py-批量推理
使用ROCM启动
docker compose -f docker-compose.job-agent.yml up -d要求:
- 带ROCM驱动程序的AMD GPU
/dev/kfd和/dev/dri设备访问
🧪 发展
再进行
后端:
cd server
pip install -r requirements.txt前端:
cd wolf-logic/ui-flask
pip install -r requirements.txtTypeScript MCP服务器:
cd servers
npm install
npm run build运行测试
# Python tests
cd tests
pytest
# TypeScript tests
cd servers
npm test📝 项目结构
wolf-logic-mcp/
├── server/ # FastAPI backend
│ ├── main.py # REST API
│ ├── timesync_app.py # Time sync server
│ ├── redis_manager.py # Redis cache (optional)
│ ├── celery_*.py # Background tasks
│ └── Job Agent/ # AMD ROCM jobs
├── servers/ # TypeScript MCP servers
│ └── src/
│ ├── memory/ # Memory MCP server
│ ├── timesync/ # Time sync MCP
│ └── everything/ # Demo server
├── wolf-logic/ # Wolf-Logic library
│ └── ui-flask/ # Flask dashboard
├── tests/ # Test suite
├── docker-compose.yml # Main services
└── docker-compose.job-agent.yml # ROCM job agent🔐 安全说明
- 更改生产中的默认密码
- 使用环境变量作为机密
- 为Neo4j/Qdrant启用身份验证
- 在生产环境中运行反向代理(nginx)
📚 文档
- AMD ROCM设置:参见
AMD_ROCM_SETUP.md - API文档: http://localhost:8888/docs
- 建筑细部:请参阅内联注释
🤝 贡献
这是一个复杂的简单媒体项目。欢迎捐款。
📄 许可证
MIT许可证-请参阅许可证文件
🏷️ 版本
当前版本:1.0.0\ 协议:MCP 0.6.2\ Python SDK:兼容wolf逻辑>=0.1.48
______________________________________________________________________
内置❤️ 通过复杂简单媒体\ 没有Nvidia-纯AMD ROCM 🔴
