关于 SmartMemory
SmartMemory 是实验性的 MCP 服务,将 LLM 抽取与可审计的 RDF 知识图谱及显式规则结合。它面向探索可追溯记忆和推理的研究与学习场景,不适用于生产环境。
主要功能
- 01在 RDF 图谱中保存带来源的事实
- 02通过 SPARQL 和 OWL 规则推导结论
- 03将含糊事实交由人工验证
- 04从自然语言和 PDF 抽取事实
- 05提供图谱检查仪表板
适用场景
- 01为 MCP 助手提供可追溯的长期事实记忆
- 02审核并批准从政策 PDF 抽取的规则
- 03在原型中探索神经符号推理
MCP 相关
对话模式下,它作为配置在 MCP 客户端中的 MCP 服务运行,为助手提供记忆与逻辑推理。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🧠 SmartMemory
为你的大模型提供结构化、可验证的记忆 — 将对话转化为 AI 能够推理的知识图谱。
一个 MCP 服务,通过自然对话向 AI 助手传授业务规则。
注意
概念验证。 SmartMemory 是神经符号架构的一种实验性实现,旨在探索大模型如何与知识图谱交互以学习和应用规则。它不适用于生产环境 — 请将其作为研究和学习的试验场。
为什么选择 SmartMemory?
大模型擅长交流,却没有真正的记忆。在对话过程中,它们会遗忘,无法解释自己得出结论的原因,还会轻易地陈述未经验证的内容。
SmartMemory 补上了缺失的部分:一个符号大脑。
- 你陈述的事实会存储在可审计的知识图谱(RDF)中,每条事实都附有来源信息。
- 逻辑会被记录为明确、可检查的规则(SPARQL/OWL) — 而不是隐藏在权重中。
- 新结论可推导、可追溯、可撤销 — 有歧义的结论则会发回给你进行验证。
最终得到的助手不只是听起来正确 — 它还能展示推理过程。
它能做什么
SmartMemory 将你的 AI 助手变成领域专家,支持:
- 异步推理 — 在后台运行推导(
InferenceManager),不会拖慢对话。 - 不确定性处理 — 有歧义的事实会触发人工参与的验证工作流。
- 智能 NLP 抽取 — 能处理复杂句子、指代关系和直接 Turtle 表示法。
- 来源追踪与审计 — 每条存储的事实都会保留其来源(UUID、来源、时间戳)。
- 动态规则引擎 — 可即时学习并应用新的 SPARQL 规则。
工作原理
flowchart LR
A["Natural-language<br/>conversation"] -->|LLM extraction| B["Facts"]
B --> C[("Knowledge Graph<br/>RDF / Turtle")]
C -->|SPARQL / OWL rules| D["Inference engine"]
D -->|new deductions| C
D -->|ambiguous?| E["Human-in-the-loop<br/>validation"]
E -->|approve rule / fact| C
C -->|provenance + audit| F["Verifiable answers"]
大模型是语言皮层(负责理解和抽取);知识图谱和规则引擎则是符号记忆(负责存储、逻辑和证明)。两者单独使用都不够 — 结合起来才构成神经符号系统。
两种使用方式
| 💬 对话模式 — “大脑” | 🏗️ 监督模式 — “工厂” | |
|---|---|---|
| 适用对象 | 使用大模型客户端的个人(Claude Desktop 等) | 团队、开发者、重度用户 |
| 目标 | 让助手在聊天时记住事实并学习逻辑 | 从文档(PDF)中提取数千条规则并可视化图谱 |
| 方式 | 将其配置为 MCP 服务 | 通过 Docker 部署完整仪表板 |
| 设置 | 跳转至设置 ↓ | 跳转至设置 ↓ |
快速开始
| 我想…… | 前往 |
|---|---|
| 在 5 分钟内运行起来 | 快速入门指南 |
| 试用高级演示 | 演示流程 |
| 了解内部原理 | 架构 · 神经符号原理 |
| 配置提供商 | 配置参考 |
| 解决问题 | 故障排除 |
| 浏览所有文档 | 文档索引 |
模式 1 — 对话模式设置(MCP)
为你的大模型提供长期记忆和逻辑推导能力。
选项 A — Docker(推荐)🐳
无需 Python。镜像已发布到 GitHub Container Registry。
Claude Desktop — 编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"smart-memory": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/mauriceisrael/smart-memory:latest"]
}
}
}
同一配置块适用于任何 MCP 客户端(例如 Cline)——只需将路径指向客户端的 mcp_settings.json。重启客户端即可。✅
选项 B — 本地服务(从源代码运行)🔒
适合开发者和注重隐私的用户。
git clone https://github.com/MauriceIsrael/SmartMemory
cd SmartMemory
python3 -m venv venv
source venv/bin/activate
pip install -e .
然后让 Claude Desktop 使用本地安装:
{
"mcpServers": {
"smartmemory": {
"command": "/absolute/path/to/SmartMemory/venv/bin/python",
"args": ["-m", "smart_memory.server"]
}
}
}
重启 Claude 并试试:“我认识 Bob。他开车去上班。他能投票吗?”——请参阅下方的演示。
模式 2 — 监督设置(Docker)
运行Web 控制面板和API 服务——非常适合可视化知识图谱、从 PDF 中提取规则,以及为团队托管共享记忆。
# Dashboard mode — example with Mistral
docker run -p 8080:8080 \
-e LLM_PROVIDER=mistral \
-e LLM_MODEL=mistral-large-latest \
-e LLM_API_KEY=your-api-key \
-v $(pwd)/brain:/app/data \
ghcr.io/mauriceisrael/smart-memory:latest dashboard
# Dashboard mode — example with a local model (Ollama)
docker run -p 8080:8080 \
-e LLM_PROVIDER=ollama \
-e LLM_MODEL=llama3 \
-e LLM_BASE_URL=http://172.17.0.1:11434 \
-v $(pwd)/brain:/app/data \
ghcr.io/mauriceisrael/smart-memory:latest dashboard
添加
dashboard以启动 Web 服务;否则容器会以 MCP 模式启动。-v卷会持久保存你的知识图谱和规则。在http://localhost:8080打开控制面板。
大模型配置
SmartMemory 使用大模型从自然语言和文档中提取事实和规则。可通过控制面板的管理页面或环境变量(-e LLM_PROVIDER=…)进行配置。
| 提供商 | 模型示例 | 说明 |
|---|---|---|
| Mistral | mistral-large-latest、mistral-small-latest | 欧洲,提供 La Plateforme API |
| Ollama(本地,免费) | llama3、qwen2.5-coder、mistral | 可离线运行 |
| OpenAI | gpt-4、gpt-3.5-turbo | |
| Anthropic | claude-3-5-sonnet | |
gemini-1.5-pro |
→ 完整配置指南
从文档中提取规则
- 上传 PDF(例如
Company_Policy.pdf)。 - 选择提供商——服务需要 API 密钥(或本地 Ollama)才能读取文档。
- 审核并批准——系统会提出规则;你可以在控制面板中批量接受。
交互式演示——从事实到规则
对话模式中的流程:
> I know Bob
LLM: ✦ I've recorded the fact: I know Bob.
> He goes to work by car
LLM: ✦ Noted: Bob goes to work by car.
> Can Bob vote?
LLM: ✦ I can't conclude yet — but since he drives, he is likely an adult.
May I add the rule "Drivers are adults"?
> yes
LLM: ✨ Rule 'drivers_are_adults' added.
May I also add "Adults can vote"?
> yes
LLM: ✨ Rule 'adults_can_vote' added.
✦ Therefore, yes — Bob can vote. (derived from 2 rules)
每个步骤都会被存储、注明来源,并可重放——这正是其意义所在。
技术栈
- 后端: Python 3.11+、RDFLib、FastAPI
- 前端: SvelteKit、TypeScript、TailwindCSS
- 推理: 神经符号(大模型 + SPARQL / OWL)
- 协议: Model Context Protocol(MCP)
- 打包与部署: Docker、GitHub Container Registry、Google Cloud Run
路线图
- 扩展文档导入范围(DOCX、HTML、网页)
- 增强图谱可视化和规则冲突检测
- 发布首个带标签的版本(
v0.1.0)
欢迎提出想法并贡献代码——请参阅 CONTRIBUTING.md。
许可证
MIT——请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。