内容
="center">
="https://.com/GRU-953/memorised-them-all/main/docs/social-preview.png" alt="Memorised — give your AI a private, local memory of your files" width="100%">
<h1>Memorised</h1>
<h3>为你的AI助手提供私有的、本地的文件记忆 - 无需支付代币。</h3>
<p>指向一个包含PDF、Word/Excel整个存档的文件夹。它在<strong>你自己的电脑上</strong>读取并记住它们 - 无需下载AI模型,无需复制粘贴,无需上传,无需API密钥,无需意外代币账单。然后只需<strong>询问</strong> - 在Claude、Gemini、Cursor、VS Code、Windsurf、ChatGPT的Codexrok等。</p>
[](https://pypi.org/project/memorised-them-all/)
[
[](https://github.com/GRU-953/memorised-them-all/actions/workflows/ci.yml)
[](https://pypi.org/project/memorised-them-all/)
[](LICENSE)
[](#-is-my-data-private)
[](#-why-no-ai-model)
](https://img.shields.io/badge/context%20tokens-~0-10b981)](#-why-is-it-token-free)
<sub><b>v3.2</b> · 适用于Claude · Gemini · Cursor · VS Code · Windsurf · Codex · Grok · 100% 本地 · 确定性 · 无模型 · 无代币 · 增量 · 便携 · 英语 + 孟加拉语 · <a href="CHANGELOG.md">更新日志 →</a></sub>
<p>
<a href="#-what-is-this"><b>这是什么?</b></a> ·
<a href="#-why-its-different">为什么与众不同</a> ·
<a href="#-get-started"><b>开始使用</b></a> ·
<a href="#-your-first-memory">第一个记忆</a<a href="#-iving-portable-memory">记忆</a>="#-english">孟语</a> ·
="#-questions--">常见问题</a> ·
<a href="#-for-power-users">高级</a>
</p>
</div>
---
## 🧠 这是什么?
想象一下,给你的AI一个<strong></strong>,里面装满了你的文档,然后说<strong>记住这一切。</strong> 稍后你可以直接提问,AI会根据它记住的内容回答 - 每个事实来自哪个文档。
这就是 <strong>Memorised them All</strong>。 它是一个小型插件(MCP服务器),可与Claude、Gemini、Cursor、VS Code、ChatGPT的Codex、Windsurf、Grok等配合使用(一个命令即可设置所有这些) 。 它:
1. <strong>读取你的文件</strong> - PDF、Word/Excel/PowerPoint(包括旧的`.doc`/`.ppt`/`.xls`)、网页、CSV、EPUB,甚至zip/rar存档(安全解压)- 并在<strong>你的电脑上</strong>将它们转换为干净的文本。
2. <strong记忆</strong> - 一个可搜索的人物和事实的地图(“知识图”),以及一个整洁的摘要和的笔记。
3. <strong>让你提问</strong> - 你的助手提问时回忆起相关的<strong>引用</strong>片段,而不是你将整个文件粘贴到聊天中。
4. <strong>保持当前和便携</strong> - 重新运行只重新读取更改过的文件,你可以导出一个记忆,将其移动到另一台机器,或将多个记忆合并为一个。
> <strong>一行代码的想法:</strong>代币需要付费的努力是。所以所有繁重的任务都在本地进行,助手只接收一个很小的答案。记忆一个500页的文件夹<strong>零</个聊天代币。
### 💬 看看它
安装完成后,你你的助手对话:
```
你: 记忆~/Documents/contracts文件夹中的所有内容。
AI: ✅ 已消化38个文件 → 421个事实,涵盖7个主题。(耗时约30秒,全部本地进行)
你: 提到了自动续,什么时候续约: 有三个ex MSA(1日续约通知期),... [引用每个来源]
你: 我添加了两个合同并删除了一个 - 刷新记忆。
AI: ✅ 已更新:2个添加,1个删除,36个未更改(仅重新读取了2个新文件)。
你: 2023年和2024年的进度报告之间有什么变化?
三个主要变化 - ... [引用文档]
```
没有文件离开你的机器。助手看到过38个 只看到了小的、答案。在后台,回忆使用快速的本地关键词BM25)来选择最相关的片段,并在你的没有被涵盖时<strong>拒绝</strong---
## 🌟 为什么与众不同
<table>
<tr>
<td width="25%"><b>🔒 100% 本地和私有</b><br><sub>你的文件在你自己的被读取、转换和记忆。没有遥测数据,没有上传,没有账户,没有API密钥。 <a href="#-is-my-data-private →</a></td>
<td width%"><b> 确定性和无b><br><没有LLM,没有ama,没有GPU,没有。纯规则 - 所以摘要<strong>总是</strong>完成,相同的目录总是给出字节。 <a href="#-why-no-ai-model">更多 →</a></sub></td>
<td width="25%"><b>🪙 无代币</b><br><sub>你的文档内容从未发送到AI。构建和回忆的成本约为 0 个上下文 <a href="#-why-is-it-token-free">更多 →</a></sub></td>
<td width="25%"><b>🔄 活跃和便携</b><br><sub>增量更新仅重新读取更改过的文件;导出、导入、合并和在不同机器上对比记忆。 <a href="#-a-living-portable-memory">更多 →</a></sub></td>
</tr>
</table>
并且它<strong>与所有主流</strong> - 一个`mta setup`命令将其配置到Claude、Gemini、Cursor、VS Code、Windsurf、Codex和Grok(<a href="#-works-with-every-major-ai">查看下方</a>)。
---
## 🚀 开始使用
你需要<strong>Python 3.10版本</strong>(大多数Mac和Linux电脑已经安装;Windows用户可以从[python.org](https://www.python.org/downloads/)获取 - 勾选<strong>添加到PATH</strong>)。无需下载AI模型。选择适合你的方式:
| 你如何工作 | 执行操作适合 |
| --- | --- | --- |
| **pip** (推荐,适用于任何AI) | `pip install memorised-them-all` 然后 `mta | 自动配置你机器上的<strongAI客户端</strong>(Claude,Gemini,Cursor,VS Code,Windsurf,Codex)。 |
| **Claude Desktop** (无需终端) | 从[最新版本](https://github.com/-953/memorised-them/latest)下载 **`ised-them-all.mcpb`** 并<strong>双击</strong> → **安装**。 | 无终端路径。 |
| **Claude Code**plugin marketplace add GRU-953/memorised-them-all` 然后 `/plugin install memorhem-all` | 在终端中编码。 |
| **Home | `brew install GRU-953/memorised-them-all/mta` 然后 `mta setup` | macOS / Linux CLI 用户。 |
| **Docker / GHCR** | `docker run … ghcr.io/gru-953/memorised-them-all:latest` ([详情-it-in-docker)) | 服务器和容器。 |
| **MCP注册表** | 发布为 `io.github.gru-953/m-them-all`server.json`](server.json)) | 支持MCP的客户端。 |
在 `mta setup` 之后,<strong>重启你的AI应用程序</strong>,然后直接与它对话。 要检查引擎,请运行 `mta doctor`。
> **我需要安装AI模型吗?** <strong>不。</strong> 引擎是确定性的(纯 数学运算它一经安装 - 在每台电脑上相同,完全离线。
---
## 🤝 与所有主流AI合作
它是一个[MCP](https://modelcontextprotocol.io)服务器,因此相同的本地、无代币的记忆可插入任何支持MCP的AI客户端。 <strong>一个命令</strong>查找并配置你机器上安装的每个客户端 - 幂等地备份它所触及的每个文件:
```bash
mta setup # 自动配置所有检测到的客户端
mta setup --dry-run # 仅显示将更改的内容
```
| AI 客户端 | 如何连接 | 是否由 `mta setup` 自动配置? |
| --- | --- | --- |
| **Claude** 桌面和代码 | 本地(stdio) | ✅ |
| **Gemini** CLI | 本地(stdio)→ `~/.gemini/settings.json` | ✅ |
| **Cursor** | 本地(stdio)→ `~/.cursor/mcp.json` | ✅ |
| **VS Code** (Copilot代理) | 本地(stdio)→ 用户 `mcp.json` | ✅ |
| **Windsurf** | 本地(stdio)→ `~/.codeium/windsurf/mcp_config.json` | ✅ |
| **ChatGPT** - OpenAI **Codex** CLI | 本地(stdio)→ `~/.codex/config.toml` | ✅ |
| **Grok** (Build CLI) | 自动发现Claude / `.mcp.json` 配置 | ✅ (通过Cl |
| **ChatGPT** 应用 · **xAI** API | 仅远程MCP(HTTPS) | 运行 `mta serve --http`;查看 `mta recipes` |
**ChatGPT 应用** 和 **xAI API** 只接受<strong>远程</strong>MCP端点,因此它们无法启动本地进程 - 启动内置的安全HTTP服务器(`mta serve --http`)并将URL粘贴到它们的UI中。 每个助手特定的设置说明位于 [`docs/assistants/`](docs/assistants/) 中; `mta打印每个界面(stdio、HTTP-MCP、REST、OpenAI/Gemini函数模式)的现成设置。
要手动添加,每个客户端只需运行 `mta serve`:
```json
{
"mcpServers": {
"memorised-them-all": { "command": "mta", "args": ["serve"] }
}
}
```
---
## 📁 你的第一个记忆
1. **告诉你的助手要记住什么** - 指向一个文件夹、模式:
>~/Documents/research所有内容。"*
(在后台,它调用 `digest` 工具。第一次运行可能需要更长时间,因为它设置了所有内容。)
2. **直接提问** - 用自然语言:
> *"你的文档中关于Q3预算的内容是什么?"*
> *"总结一下关于阿波罗项目的所有内容。*
> *"谁被最多,哪些文件中提到了他们?"*
3. **保持 - 添加、编辑或删除文件,然后直接提问:
> *"刷新研究记忆。"* (仅重新读取<strong>更改过的文件</strong> - 参见 [下方](#-a-living-portable-memory. **查看随身携带**:
> *"给我一个关于这个记忆的概述。"* (`memory_over 工具 - 概要 + 主要主题)
> *"将记忆导出到 ~/notes。"* (`export_memory` 工具 - 便携式笔记 + 知识图,您可以保留、共享或 [移动到另一台机器](#-a-living-portable-memory))
5. **保持整洁** - 使用<strong>项目</strong>按主题分离记忆:
> *"将 ~/work/clientA 文件夹记忆到一个名为 clientA 的项目中。*
> *"使用 clientA 项目,约定了哪些交付成果?*
> *"忘记 clientA 项目。"* (仅删除该记忆)
你的记忆存储在电脑上的一个文件夹中(默认为 `~/.memorised-them-all`),并在对话之间持续存在记忆被<strong>所有你设置的助手</strong>共享 - 只需构建一次,即可在任何地方使用。
---
## 🔄 活跃的、的记忆
记忆快照 - 它<strong>随着你成长>,并且可以<strong>移动</strong- **增量更新。** 重新运行一个摘要只会重新读取<strong>更改过strong>,并删除已删除的文件 - 因此保持一个2GB的库更新只需几秒钟,而不是完全重建。 结果在字节级别与从头开始的摘要相同,并且会告诉你确切发生了什么(添加/更新/未更改/删除)。 *(默认开启;`MTA_INCREMENTAL=off` 强制完全重新转换。)*
- **导出 - 任何地方。** `export_memory` 编写一个便携式捆绑包:`memory.md` + 每个文档的笔记、`graph.json` 知识图(带有可移植的文档内容哈希),以及 **GraphML + CSV**,可以直接在 Gephi / yEd / Cytoscape 或电子表格中打开。
- **导入 - 另一台机器。** `import_memory` 将导出的捆绑包恢复到一个项目中,准备好回忆,因此在你的笔记本电脑上建立的记忆可以在你的服务器上使用。
- **合并 - 组合项目。** `merge_memory` 将几个项目的语料库合并成一个连贯的记忆(确定性,去重)。
- **对比 - 比较两个记忆。** `diff_memory` 显示两个项目之间不同的文档、人物和主题(按内容哈希匹配,因此重命名但相同的文档不会被标记)。
- **聚焦回忆。** 在一个源文档(`--doc`)、一种实体类型(`--type person/org/place`)或<strong>一次多个项目</strong>(`--projects a,b,c`)中提问 - 每个命中仍然被引用,代币很小。
- **安全删除。** `forget --secure` 在删除记忆其字节。
只需与你的助手交谈i>"合并 和 clientB记忆中"</i>,<i>" 和 2024 记忆之间有什么不同?"</i>),或使用 [`mta` 命令行界面](#-for-power-users)。
---
## 🎯 我可以用它做什么?
- **📚 研究和学习** - 消化一堆论文或教科书,然后提问、比较和比较。
- **📑 合同和政策** - 加载所有协议并提问<i>"哪些自动续约?"</i> 或 <i>"终止条款是什么?"</i>
- **🗂️ 个人知识库** - 将多年的笔记、收据或手册指向其中,实际上可以<strong>找到</strong>东西;随着增长刷新它。
- **🖼️ 扫描文档和图像** - 打开OCR,它从照片和扫描件中读取文本,使它们变得可搜索。
- **🇧🇩 旧孟加拉语档案** - 数字化旧的Bijoy/Sutonny,这些文档在其他地方显示为乱码,并且实际上可以搜索它们(参见 [英语和孟加拉语](#-english--bengali))。
- **🔒 敏感材料** - 法律、医疗、财务或机密文件,这些文件必须<strong>永远不要离开你的机器</strong>。
---
## 🪙 为什么它是无代币的?
当你通常与AI分享文档时,整个文档被发送到对话中 - 你为每个字每次对话都付费(以代币计)。几个大PDF文件可能会耗尽你的整个上下文窗口。
Memorised them All 将其颠倒过来:
- **在你的电脑上转换、阅读和总结**你的文件。
- 助手只接收一个<strong>微小的结果</strong> - 一个计数、一个简短的总结或几个相关的片段(小到不能再小)。
- 因此,记忆一个巨大的文件夹并反复询问,仍然是<strong>接近零个上下文代币</strong>。
这就像给某人一整个图书馆与询问图书管理员一个问题之间的区别。
---
## 🔒 我的数据是否私密?
**是的 - 这是主要目的。** 默认情况下:
- ✅ **100% 本地。** 你的文件在你自己的机器上被读取、转换和记忆。它们的内容<strong>从未</strong>发送到任何AI的服务器、我们或任何人。
- ✅ **没有遥测,没有跟踪API密钥。**
- ✅ **完全离线工作。** 断开互联网连接,它仍然会记忆并回答。(在CI中验证:测试套件在禁用网络的情况下通过。)
- ✅ **PII感知。** 个人数据(如电话号码和调查/花名册行)在摘要和回忆中被确定性地删除或编辑,因此敏感细节不会浮现 - 即使本地也是如此。
- ✅ **安全删除。** `forget --secure` 在删除记忆之前覆盖其字节。
- ✅ **签名和可审计。** 开源(MIT);每个版本都附带CycloneDX SBOM和Sigstore/cosign签名,每个工件都有。
仅在您明确选择的情况下,可能会与网络交互的情况有:安装/更新软件,偶尔检查新版本(通过关闭 `MTA_AUTO_UPDATE=off` 来关闭),或 **如果您明确选择** 远程HTTP服务器。默认情况下,**您的文档保留在您身边**。请参阅 [SECURITY.md](SECURITY.md) 获取完整的安全威胁模型。
---
## 🇧🇩 英语和孟加拉语
许多孟加拉语文档多年前使用 **Bijoy** 键盘以 **SutonnyMJ**(以及其他110多种ANSI字体)输入。 作为纯文本打开时,它们会变成乱码 - 实际上无法搜索。 **Memorised them All 升级它们为标准Unicode孟加拉语**,因此摘要和回忆基于实际单词而不是乱码。 (现代Unicode孟加拉语 - 以及所有其他语言 - 已经开箱即用。)
四种机制,全是确定性和本地的:
- **基于字体的Office转换**(`.docx`/`.pptx`/`.xlsx`)- 仅当运行的字体是Bijoy系列字体时才运行,因此<strong>混合英语 + 孟加拉语</strong>文档保持干净(英语部分保持原样)。
- **逐行PDF文本恢复** - PDF中的孟加拉语页面,其文本层编码为Bijoy,在逐行基础上恢复,而英语/已正确行保持不变。
- **经过验证的重新排序伪影修复** - 一些PDF字体错误地编码了元音符号,导致常见单词存储为拼写错误(因此正确的孟加拉语搜索永远不会匹配它们)。由孟加拉语专家小组验证的修复程序针对整个语料库恢复了约5,700种词形(গ্রুপ, শুরূ, পুরুষ, গুরত্ব …),同时可证明地保留了正确的单词,如নিম্ন不变。 它在提取过程中运行,因此现有的记忆通过简单的重建得到修复 - 无需重新转换。
- **自动重OCR** - 带有损坏嵌入字体的孟加拉语PDF被重读为OCR(Tesseract `eng+ben`)。
回忆也是孟加拉语感知的(搜索标记器保留孟加拉语单词,实体解析保留不同的孟加拉语名称)。 建立在忠实的纯Python端口上 [`Mukti`](https://github.com/anindash15-arch/Mukti) 转换器 - 无需额外依赖,默认开启(`MTA_BANGLA_LEGACY=off` 关闭)。
## 🛡️ 打造可靠性
通过重复、刻意的压力测试和多次对抗性审计,它在现实、凌乱的文件夹中依然保持冷静:
- **它总是能完成。** 破损、巨大或卡住的文件不会冻结作业 — 每个文件都有时间限制,如果卡住则跳过,因此其他文件仍能继续处理。
- **一个坏文件不会拖累整个批次。** 无法读取的文件、循环快捷方式以及奇怪或过长的 filenames 都会被跳过,绝不会致命。
- **你的内存是崩溃安全的。** 如果计算机在写入过程中被中断,你的内存不会被损坏或丢失 — 写入是原子的,如果看起来损坏了,任何数据都会在被触碰之前备份。
- **每次都一样。** 引擎是确定性的 — 记忆相同的目录两次会在任何机器和操作系统上产生相同的内存,字节对字节。
- **它能读取不规则的文件。** Windows "Unicode"(UTF-16)文本、存档(原生 zip/tar/gz,rar/7z 需要安装解压工具 — 安全解压,检测重复)、旧孟加拉字体都能处理;媒体、字体和垃圾文件能干净地跳过。
- **它不会被诱导读取其他地方。** 放入文件夹中的快捷方式指向外部时会被忽略,存档会在 Zip-Slip、解压炸弹和深度防护后面解压。
- **它在大规模时速度快。** Recall 在大型内存上也能在毫秒内返回(在摘要时构建预标记索引),而微不足道的文本文件无需每个文件进程开销就能转换。
- **重新摘要是增量的。** 指向同一个目录,它会重新读取字节改变的文件,并删除已删除的文件 — 因此保持大型图书馆的更新速度很快,而重建的内存与字节对字节的完整重新摘要相同。
---
## ❓ 问题和故障排除
<details>
<summary><b>它是真的免费吗?</b></summary>
是的 — 该软件是免费和开源的(MIT),并且在您自己的计算机上运行,因此没有每次使用的费用或令牌费用。唯一的“成本”是一点计算机时间和磁盘空间。
</details>
<details>
<summary><b>我的 AI 说它没有该工具 / 它没有显示出来。</b></summary>
运行 `mta setup`(它配置每个检测到的客户端),然后完全 **重启** AI 应用程序(Claude Desktop,Cursor,VS Code,…)或您的 CLI 会话。要确认引擎本身工作正常,请在终端中运行 `mta status`。仍然卡住?运行 `mta doctor` — 它提供了一个简单的英语诊断(包括“已安装但不在您的 PATH 中”,并带有修复的单行命令)。
</details>
<details>
<summary><b>第一次“记忆”很慢。</b></summary>
第一次运行设置并读取每个文件一次。 **后续运行是增量的** — 它们只重新读取更改的文件,因此刷新大型图书馆需要几秒钟。没有 AI 模型需要下载或加载;引擎是确定性的,立即启动。
</details>
<details>
<summary><b>它能读取什么文件?</b></summary>
PDF、Word/Excel/PowerPoint(包括旧版二进制 `.doc`/`.ppt`/`.xls`,需要安装 LibreOffice)、纯文本/Markdown、HTML、CSV/JSON/XML、RTF、EPUB — 加上 **存档**(`.zip`/`.tar`/`.gz` 原生;`.rar`/`.7z` 需要安装解压工具),安全解压。 除此之外,**任何其他基于文本的文件也会被摘要**(源代码、`.log`、`.tex` 等)。 默认情况下,照片、视频、音频、字体和垃圾文件会被跳过(扫描图像可以通过设置 `MTA_SKIP_MEDIA=off` 使用 Tesseract 进行 OCR)。 询问您的助手 *“列出此文件夹中可摘要的内容”* 以查看。
</details>
<details>
<summary><b>它能理解哪些语言?</b></summary>
任何语言的文本都有效(整个过程都是 Unicode),而孟加拉语有特殊的旧字体处理(参见 [English & Bengali](#-english--bengali))。对于 **扫描文档和图像**,OCR 默认运行 **English + Bangla**(`eng+ben`);将 `MTA_OCR_LANG` 设置为其他 [Tesseract 代码](https://tesseract-ocr.github.io/tessdoc/Data-Files-in-different-versions.html)(例如 `eng+hin+ara`)。如果您没有安装任何语言包,它会自动被丢弃,因此永远不会出错。
</details>
<details>
<summary><b>它如何选择要显示的片段?为什么答案会被引用?</b></summary>
Recall 使用 **BM25** 对存储的事实和主题与您的问题进行排名,这是一种快速的经典关键词相关性方法,完全在您的机器上运行(无需 AI 模型)。它只返回少数几个,每个都标记有其源文档 — 因此答案是扎实的,可以引用。您可以将 Recall 限制在一个文档、一种实体类型或多个项目中。如果没有相关的匹配,Recall 会标记 **低置信度**,以便您的助手可以说 *“我没有这个”* 而不是猜测。
</details>
<details>
<summary><b>我可以将一个记忆转移到另一台计算机,或合并记忆吗?</b></summary>
是的。 **导出** 一个记忆(`export_memory`)到一个便携式包,复制到另一台机器,并 **导入**(`import_memory`)— Recall 立即生效,无需重新摘要。您还可以 **合并** 几个项目到一个(`merge_memory`)或 **差异** 两个项目以查看有什么不同。参见 [A living, portable memory](#-a-living-portable-memory)。
</details>
<details>
<summary><b>如何删除一个记忆?</b></summary>
告诉您的助手 *“忘记 clientA 项目”*(它故意要求您命名项目)。它会从您的磁盘中删除该项目的记忆 — 不可逆转。添加 `--secure`(CLI)以先覆盖字节。
</details>
<details>
<summary><b>它需要互联网连接吗?</b></summary>
不需要。它的设计是为了完全离线工作。互联网仅用于可选的、选择加入的操作,如安装更新。
</details>
<details>
<summary><b>它使用 AI 吗?为什么摘要这么简单?</b></summary>
不 — 而且这是故意的。引擎 **完全确定**:它使用精心调整的规则(纯 Python + 数学)提取人物、地点、组织和事实,而不是 AI 模型。这意味着它 **总是有效**(无需安装,无需破坏,无需内存不足),**速度快**,并且记忆相同的目录两次会得到 **相同** 的结果。权衡是摘要读起来更像结构化笔记而不是流畅的文章 — 但每个事实都基于您的文档,您的助手(即 AI)在问题时使用召回的事实进行智能推理。
</details>
---
## 🧰 您的 AI 获得的 11 种工具
安装后,您的助手可以代表您使用这 11 种工具(您只需正常对话 — 它会选择正确的工具):
| 工具 | 它为您做什么 |
| --- | --- |
| **digest** | 读取文件/文件夹并构建(或更新)内存。 **增量:** 重新运行时只重新读取更改的文件,并删除已删除的文件。 |
| **convert** | 只是将文件转换为干净的 Markdown(无需内存)— 方便导出或修复旧孟加拉语。 |
| **recall** | 用几个相关的、引用的片段回答问题。可以按 **文档** 或 **实体类型** 过滤,并搜索 **多个项目**。 |
| **memory_overview** | 给出大局 — 概要和主要主题。 |
| **list_digestible** | 显示文件夹中可以读取哪些文件。 |
| **export_memory** | 将内存保存为便携式 Markdown + `graph.json` 知识图谱,以及 **GraphML + CSV** 用于 Gephi/Excel([导出规范](docs/export-format/v1/))。 |
| **import_memory** | 将导出的包恢复到项目中 — 在机器之间移动内存。 |
| **merge_memory** | 将多个项目的内存合并为一个。 |
| **diff_memory** | 比较两个内存 — 哪些文档、人物和主题不同。 |
| **memory_status** | 报告您的本地设置 — 确定性引擎、OCR/MarkItDown 可用性、平台和现有项目。 |
| **forget** | 删除一个项目的内存(您明确命名;`secure` 先覆盖字节)。 |
每个工具只返回小结果 — **永远不会是您的文档内容**。
---
## 🛠️ 适用于高级用户
您不需要这些即可使用应用程序 — 但如果您需要,可以使用它们。
<details>
<summary><b>命令行(无需 AI)</b></summary>
相同的引擎作为 `mta` 命令提供:
```bash
mta digest ~/Documents/research # 构建/更新内存(增量 — 仅重新读取更改的文件)
mta recall "关于 Q3 预算呢?" # 查询它(BM25 回忆,引用片段)
mta recall "续期条款" --doc globex.pdf --type org # 按源文档/实体类型过滤
mta recall "资产转移" --projects clientA,clientB # 同时搜索多个内存
mta overview # 概要 + 主题
mta convert ~/docs --out ~/md_out # 转换为 Markdown(包括旧孟加拉语)
mta export ./notes # 便携式 Markdown + graph.json + GraphML + CSV
mta import ./notes # 将导出的包恢复到此项目
mta merge --into combined projA projB # 合并多个项目的内存为一个
mta diff other-project # 比较两个内存(文档/实体/主题)
mta forget --secure # 删除项目的内存(先覆盖字节)
mta status # 本地堆栈健康 · mta doctor (修复依赖)
mta setup # 自动配置每个检测到的 AI 客户端(--dry-run 预览)
mta setup-claude # 仅限 Claude 的变体(桌面 + 代码)
```
</details>
<details>
<summary><b>从其他 AI 应用程序(Gemini、Cursor、VS Code、Codex、OpenAI、纯 HTTP)使用它</b></summary>
`mta setup` 自动将本地服务器注册到它找到的每个 MCP 客户端。对于仅限远程 MCP 的客户端(ChatGPT 应用程序,xAI API)— 或任何其他集成 — 相同的 11 种工具通过 stdio 之外提供:
```bash
mta setup # 自动配置每个检测到的 stdio MCP 客户端(--dry-run 预览)
mta serve --http # 通过 HTTP 进行 MCP(环回 + 自动生成的 bearer token)
mta serve --rest # 纯 JSON:POST http://127.0.0.1:8765/tools/<name>
mta export-schema # 工具模式作为 OpenAI / Gemini / OpenAPI 3.1(无漂移)
mta recipes # 每个客户端的连接代码片段
```
两种 HTTP 模式默认情况下都仅限于环回,并且需要 bearer token(带有 DNS 重新绑定保护)。对于 ChatGPT 应用程序或 xAI API,请启动 `mta serve --http` 并将 URL 粘贴到其连接器 UI 中。参见 [`docs/assistants/`](docs/assistants/) 和 `mta recipes`。
</details>
<details>
<summary><b>将您的记忆带到任何 AI(导出格式)</b></summary>
`mta export ./bundle`(或 `export_memory` 工具)写入一个 **中立的、版本化的** 包,任何助手都可以消费:
- `memory.md` + 每文档笔记 — UTF-8 Markdown。
- `graph.json` — 一个 JSON 知识图谱伴侣(实体、关系、主题,带有 **稳定 ID**,一个可移植的每文档内容哈希和有向/类型关系,当检测到时),针对发布的 [JSON 模式](docs/export-format/v1/graph.schema.json) 在 CI 中验证。
- `graph.graphml` + `entities.csv` / `relations.csv` — 您可以在 Gephi / yEd / Cytoscape 或电子表格中直接打开的确定性导出。
先喂 `graph.json`(它是一个紧凑的索引),然后在助手上下文小于包时按需提供 Markdown。当助手较小时,将包带回 **`mta import`**(或 `import_memory` 工具)。完整的规范 + 每助手导入说明:[`docs/export-format/v1`](docs/export-format/v1/)。
</details>
<details>
<summary><b>在 Docker 中运行它</b><a id="run-it-in-docker"></a></summary>
一个多架构镜像(`amd64` + `arm64`)发布到 GHCR:
```bash
docker run -d --name mta -p 127.0.0.1:8765:8765 -v mta-data:/data \
ghcr.io/gru-953/memorised-them-all:latest
docker logs mta # 复制打印的 bearer token + `claude mcp add …` 行
```
它通过 MCP HTTP 提供工具并在 `/data` 卷中保留内存。 以只读方式挂载文档 (`-v /path/to/docs:/docs:ro`) 并摘要容器内的路径。
</details>
<details>
<summary><b>配置</b></summary>
一切都有合理的默认值。常见的旋钮(设置为环境变量):
| 变量 | 默认值 | 含义 |
| --- | --- | --- |
| `MTA_HOME` | `~/.memorised-them-all` | 内存存储位置 |
| `MTA_INCREMENTAL` | `on` | 仅重新转换更改的文件并删除已删除的文件(`off` 强制完全重新转换;`reset` 始终执行) |
| `MTA_SKIP_MEDIA` | `on` | 跳过照片/视频/音频(设置为 `off` 使用 Tesseract 进行 OCR) |
| `MTA_SKIP_FONTS` / `MTA_SKIP_GDRIVE` / `MTA_SKIP_JUNK` | `on` | 跳过字体文件 / Google-Drive 指针存根 / `.tmp`、`.DS_Store` 垃圾 |
| `MTA_ARCHIVE_RECURSIVE` | `on` | 递归解压 zip/tar/gz(+ rar/7z 通过 `unar`/`7z`),带有炸弹 + 路径遍历保护 |
| `MTA_ARCHIVE_DEPTH` / `MTA_ARCHIVE_ENTRIES` | `8` / `100000` | 存档的嵌套深度 / 成员数量限制 |
| `MTA_OCR_LANG` | `eng+ben` | OCR 语言(Tesseract 代码;缺少的包会自动丢弃) |
| `MTA_BANGLA_LEGACY` | `on` | 自动转换旧孟加拉语(Bijoy/SutonnyMJ)为 Unicode |
| `MTA_CONVERT_TIMEOUT` | `120` | 每文件转换超时(秒);挂起解析器的文件将被跳过,永远不会阻塞批次。`0` 禁用 |
| `MTA_MAX_FILE_MB` | `200` | 每文件大小限制(也驱动存档预算) |
| `MTA_MAX_CHUNKS` | `1500` | 每个内存的段落限制(为非常大的语料库提高) |
| `MTA_RESOLVE_MAX_NAMES` | `5000` | 进入模糊/嵌入式解析传递的唯一实体名称限制(`0` = 无边界)。在此之上,精确名称 + 缩写合并仍然运行;仅跳过相似性合并 |
| `MTA_OCR` | `auto` | PDF/图像的 OCR 模式:`auto`、`off`、`force`、`hybrid` |
| `MTA_RECALL_K` | `8` | 默认返回的召回命中次数 |
| `MTA_RECALL_MIN_SCORE` | `0`(关闭) | 召回命中的绝对 BM25 评分下限(无界 ≥0,**非** 0-1 余弦) |
| `MTA_MEMORY_GB` | 自动 | 覆盖检测到的 RAM(适用于误报的容器/VM) |
| `MTA_WORKERS` / `MTA_EXTRACT_WORKERS` | 自动 | 转换/提取工作线程(RAM/CPU 大小;小机器上为 1) |
| `MTA_AUTO_UPDATE` | `on` | 每天 MarkItDown 更新检查(`off` 禁用;`upstream` 跟踪最新的上游 MarkItDown 提交) |
| `MTA_SKIP_SETUP` | 关闭 | 跳过 `install.sh` 运行的自动配置步骤(别名:`MTA_SKIP_CLAUDE_SETUP`) |
| `MTA_HTTP_*` | 关闭 | 选择加入的 HTTP/REST 服务器的选项 |
</details>
<details>
<summary><b>为什么没有 AI 模型?(设计)</b><a id="-why-no-ai-model"></a></summary>
早期版本可选地使用本地 AI 模型(通过 Ollama)进行提取和搜索,加上 HTML 思维导图和音频转录。**版本 2 故意删除了它们。** 确定性引擎:
- **总是有效** — 无需下载、安装、崩溃或内存不足;相同的文件在 4 GB 内存的笔记本电脑和 64 GB 内存的工作站上表现相同;
- **可复制** — 相同的目录始终产生相同的内存(适用于审计);
- **速度快** — 无需加载模型,无需 GPU,立即启动;
- **保持私密和无令牌** — 机器上的内容从未离开,助手仍然只接收小片段。
权衡:提取和搜索基于规则和关键词,而不是语义。实际上,您的助手在问题时进行补偿 — 它根据召回的事实进行推理。从 v1.x 迁移而来并使用模型?您的旧内存仍然加载;重新记忆一次(`reset: true`)以使用确定性引擎重建它们。
</details>
<details>
<summary><b>它在底层如何工作</b></summary>
`convert`(文件 → Markdown,当地;存档安全解压;重复项去重;**重新运行时跳过未更改的文件**)→ `extract`(实体、有向关系、事实 — 基于规则,确定性)→ `graph`(构建 + 检测社区/主题)→ `summarise`(分层:每个主题 + 全局概要,事实连接)→ `materialise`(memory.md + 每文档笔记 + 缓存的召回索引)。在问题时,`recall` 使用 **BM25 词汇搜索**(无模型,孟加拉语感知)对存储的事实/主题进行排名,并返回最接近的、带引用的片段 — 并带有针对非主题问题的低置信度保护。无模型,无网络 — 摘要 **始终** 成功,并且字节对字节可复制。参见 [`CHANGELOG.md`](CHANGELOG.md) 和 [`SECURITY.md`](SECURITY.md) 获取详细信息。
</details>
---
## 💻 平台和供应链
macOS、Linux 和 Windows · Python 3.10–3.12 · 在每次更改的 CI 上,在所有三个平台上进行测试(禁用网络)。每个版本都构建一次,并发布到 **PyPI**(OIDC 受信任发布),一个 **GitHub Release**(带有 **CycloneDX SBOM** 和一个 **Sigstore/cosign** 单文件签名,每个工件),`.mcpb` **Claude Desktop 包**,一个 **Homebrew** Tap,和 **GHCR**(多架构)。每个 GitHub Action 都被 SHA 固定。
## 🙏 致谢和许可
建立在 [MarkItDown](https://github.com/microsoft/markitdown)、[NetworkX](https://networkx.org)、[RapidFuzz](https://github.com/rapidfuzz/RapidFuzz) 和 [Model Context Protocol](https://modelcontextprotocol.io) 的基础上;旧孟加拉语转换是从 [Mukti](https://github.com/anindash15-arch/Mukti) 的纯 Python 端口。 可选的社区检测额外功能(`python-igraph`、`leidenalg`)是 GPL 许可的,**不** 由 MIT 核心安装。参见 [ACKNOWLEDGEMENTS.md](ACKNOWLEDGEMENTS.md)。
**MIT 许可** · 由 [GRU-953](https://github.com/GRU-953) 制作。欢迎提出问题和贡献 — 从 [`SECURITY.md`](SECURITY.md) 开始了解安全模型。
<div align="center">
<sub>100% 本地 · 确定性 · 无令牌 · 增量 · 可移植 · 免费开源 · 您的文件从未离开您的机器。</sub>
</div>
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器