内容
外存
PI](https://img.shields.io/pypi/v/exomem.svg)](https://pypi.org/project/exomem/)
[](https://pypi.org/project/exomem/)
[](https://github.com/Artexis10/exomem/actions/workflows/ci.yml)
[](LICENSE)
适用于MCP的外部内存。
exomem 将您已拥有的Markdown/Obsidian知识库转变为本地知识基础,供Codex、Claude Code、Cursor、聊天机器人、CLI代理和任何可以调用MCP工具的。您的文件保持纯净、本地、可移植,并在服务器外部可编辑。
```text
代理 -> MCP工具 -> exomem -> 您的Markdown/Obsidian知识库
```
## 功能
- **搜索您已拥有的知识库。** Markdown文件保持原位;exomem不会将副本导入专有笔记存储。
- **跨文本和媒体检索。** Markdown、PDF、Office文档、图像、截图、音频和视频可以通过本地提取变得可搜索。
- **保持来源与结论分离。** 原始捕获、编译笔记、实体、证据和过时的结论存放在分类文件夹中。
- **呈现审查工作。** 审计和关注队列可以显示未处理的来源、过时的笔记、损坏的链接和值得审查的接近声明。
- **衡量,但不评判。** 服务器执行确定性工作:搜索、提取、排名、嵌入、文件写入和图检查。推理留在客户端模型中。
## 为什么使用它
大多数AI笔记工具要求您移入他们的应用程序或将文件导入他们的存储。exomem则相反:代理程序来到您的知识库。
| 与...比较 | 差异 |
| --- | --- |
| 文档聊天/RAG应用程序 | exomem在实时文件上工作,而不是导入副本。 |
| 基本MCP笔记服务器 | exomem添加了类型化知识操作、多模态提取、审计队列和CLI/REST一致性。 |
| 隐藏在单个助手中的内存 | exomem是客户端无关的:从Claude Code、Codex、Cursor、脚本或自定义聊天机器人使用相同的知识库。 |
有关更深入的比较,请参见 [docs/comparison-engraph.md](docs/comparison-engraph.md)。
## 安装
从PyPI:
```bash
pip install exomem
exomem --help
```
用于开发或运行捆绑的示例知识库:
```bash
git clone https://github.com/Artexis10/exomem.git
cd exomem
uv sync
uv run python scripts/smoke-sample-vault.py
```
## 五分钟验证
在连接您自己的笔记之前,请在捆绑的示例知识库上运行exomem:
```bash
uv run python scripts/demo-sample-vault.py
```
预期结果:
```text
exomem sample-vault demo
知识库:examples/sample-vault
1. 医生:PASS(精简配置文件)
2. 查找“retrieval”:
- 知识库/来源/会话/2026-30-sample-session.md
- 知识库/笔记/见解/retrieval-needs-owned-files.md
3. 获取检索见解:
- 标题:检索需要拥有文件
- 类型:见解
- 摘录:本地优先的知识工具应从用户已拥检索。
4. 审计:PASS(broken_wikilink,unprocessed_source)
演示 PASS
```
地快速入门
将exomem指向包含或知识库/`的vault文件夹:
```bash
exomem init --vault "/path/to/your/Obsidian"
exomem doctor --vault "/path/to/your/Obsidian" --profile lean
```
适用于Claude Code via stdio:
```bash
claude add exomem \
--env KB_VAULT_PATH="/path/to/your/Obsidian" \
--_MCP_DISABLE_EMINGS=1 \
-- exomem --io
```
对于Claude Code,安装捆omem知识库技能,以便代理知道何、捕获和编译笔记bash
exomem install-skill
```
可选但更适合日常使用:
```bash
exomem install-hook
```
技能安装在稳定的Claude Code名称`knowledge-base`下;Exomem是其背后的服务器和工具层。建议为Claude Code使用此技能。钩Claude Code独有的可靠性提示,适用于长时间会话之前和自然停止点提供读取端提醒和写入端提醒。其他MCP客户端仍然可以使用服务器;如果它们不支持技能,请在项目说明中添加相同的知识学科说明。
完整的本地 [SETUP-LOCAL.md](SETUP-LOCAL.md) 中。远程/移动设置在 [docs/remote-check](remote-checklist.md) 和 [docs/deployment.md](docs/deployment.md) 中。
## 核心工具
exom暴露了用于常见知识库工作的类型化MCP 工具 | 用途 |
| --- | --- |
| `find` | 使用类型/项目/标签筛选器搜索笔记、实体和证据。 |
| `get` | 读取整个页面或前置信息。 |
| `add` | 捕获原始来源页面。 |
| `note` | 创建编译笔记:研究笔记、见解、失败、模式、实验或生产日志。 |
| `edit` | 修补现有编译页面。 |
| `replace` | 用新的结论取代结论,并保留它们。 |
| `preserve` | 仅二进制或文本证据。 |
| `audit` | 检查图和语料库健康状况。 `attention` | 显示审查队列,如过时的笔记、接近的声明和未处理的来源。 |
二级文件系统工具存在于逃生舱中,例如列出目录、创建文件、移动页面、删除文件和从回收站恢复。设置 `KB_MCP_DISABLE_TIER2=1` 如果您想要一个较小的工具集。
每次写入都在 `知识库/log.md` 中记录持久历史。服务调用也会转logs/exomem.log## 一个操作,三个入口操作都声明一次,并通过以下方式公开:
- **MCP适用于代理。
- **CLI** 适用于终端和脚本。
- **REST** 适用于个人HTTP设置 `KB_MCP_REST` 时。
示例:
```bash
kb find "项目交接" --mode keyword
kb过时的决定" --json
kb get "笔记/见解/retrieval-needs-owned-files"
kb note --note-type insight --title "持久上下文" \
--content "# 代理上下文"
```
```bash
curl -s -X POST127.0.0:8765/api -H "Authorization: Bearer $KB_MCP_REST_API_KEY" \
-H "Content-Type: application/json -d '{"query": "项目交接", "mode": "keyword"}'
```
REST共享相同的JSON信封:
```{"success": true, "data": []## 可选的多模态栈
精简安装关键词/BM。可选的额外功能添加了本地嵌入搜索和媒体提取:
uv sync --
uv sync --extra media
```
- `embeddings`:本地文本嵌入和CLIP图像搜索。
- `media`:图像OCR、PDF提取、Office文档提取和音频/视频的快速低语音识别。
系统工具:Tesseract对于图像OCR是必需的。在Windows上```powershell
install --id UB.TesseractOCR -e
```
GPU加速是有用的,但不是必需的。有关CUDA、Blackwell、识别和远程服务详细信息,请参见 [docs/deployment.md](docs/deployment.md)。
## 配置
服务器读取环境变量或`.env`文件。主要变量如下:
| 变量 | 用途 |
| --- | --- |
| `KB_MCP_VAULT_PATH` | 包含`知识库/`的vault。 |
| `KB_MCP_DISABLE_EMBED` | `1`强制仅限关键词/BM25搜索。 |
|_MCP_DISABLE_T` | `1`隐藏二级文件系统 |
| `KB_MCP_REST_API_KEY`启用身份验证的REST路由。 |
| `KB_MCP_DISABLE_MEDIA_EXTRACTION` | `1`跳过服务器端OCR/ASR/PDF/Office提取。 |
| `KB_MCP_DISABLE_CLIP` | `1`禁用CLIP图像搜索| `KB_MISPER_MODEL`ASR的Whisper模型大小,例如`base`或`small`。 |
| `KB_MCP_TESSERACT_CMD` | 如果发现,则为`tesseract`二进制文件的路径。 |
变量和完整部署说明docs/deployment.md](docs) 中。
##
exomem 在PyPI上打包,使用Release Please控制,并遵循 [.md](docs/release.md) 中的轻量级SemVer公共CLI入口点exomem`;`kb` 是知识库操作的程序别名。
## 许可证
AGPL-3.0-or-later。参见 [LICENSE](LICENSE)。