内容
<div align="center">
<img src="assets/memotrust-icon.png" alt="memotrust" width="120" />
# memotrust
### 人工智能代理的验证记忆。您的代理只记住**真实**的信息。
[](https://www.npmjs.com/package/memotrust)
[](LICENSE)
[](https://modelcontextprotocol.io)
[](https://github.com/Idanref/memotrust)
代理提出记忆。**证据** 验证它们。`recall()` 只返回获得信任的信息,因此虚构、过时或**污染** 的“事实”永远不会到达其他代理。
<br/>
<img src="assets/demo/demo.gif" alt="一个代理提出记忆;一个污染的记忆在入口处被捕获,而验证的记忆流向每个代理。" width="780" />
</div>
---
## 为什么选择 memotrust
给你的代理一个共享的记忆,这是一种超能力,直到一个代理虚构一个事实,复制一个过时的数字,或读取一个污染的笔记。在其他所有记忆层中,那个错误成为**所有代理的“真相”**,默默地,永远地。(记忆污染是 OWASP 代理风险 **ASI06**。)
memotrust 颠覆了默认值:**到达时不信任任何信息。** 记忆在 **与真实来源验证** 或 **获得人类批准** 之前不会到达 `recall()`。信任会衰减。争议会保留。每个判决都有收据。
## 产品特点
| | |
|---|---|
| <img src="assets/icons/feat/recall.png" width="20"> **可信的回忆** | `recall()` 只返回经过验证的、新鲜的、处于范围内的记忆,并排名。没有猜测,没有过时的信息。 |
| <img src="assets/icons/feat/shared.png" width="20"> **共享记忆** | 每个代理,Claude Code,Cursor,任何 MCP 客户端,都读取和写入相同的存储库。Git 支持,因此代理所知道的是版本化的、可差异的和可移植的。 |
| <img src="assets/icons/feat/shield.png" width="20"> **防止污染传播** | 每个新的记忆都被隔离,直到被证明是安全的。一个代理的错误笔记不会成为另一个代理的事实。 |
| <img src="assets/icons/feat/verify.png" width="20"> **MCP 验证器** | 只读检查,将声明转换为可信的知识:内置或连接到真实来源。 |
| <img src="assets/icons/feat/connect.png" width="20"> **只读连接器** | 与实时数据确认领域声明。**Mixpanel** 内置;连接任何只读 MCP 源。 |
| <img src="assets/icons/feat/dashboard.png" width="20"> **仪表盘** | 本地 UI,用于审查、批准、争议和管理每个记忆和每个验证器连接。 |
| <img src="assets/icons/feat/receipt.png" width="20"> **收据,而不是凭直觉** | 每个判决记录查询、读取和判断。审计 *为什么* 任何信息都是可信的。 |
| <img src="assets/icons/feat/files.png" width="20"> **只是文件** | Markdown 声明加上只追加日志,Git 支持。人类可读,可差异,无需数据库。 |
## 一个记忆,每个代理
memotrust 是您整个代理舰队的 **共享真实来源**。Claude Code、Cursor 和每个 MCP 客户端都读取和写入 *相同的* 存储库,因此一个代理证明的事实,所有代理都可以信任。
并且因为它是 **Git 支持的**,所以该记忆是版本化的、可差异的和可移植的:分支它、审查它、回滚它、同步它,就像同步代码一样。它是您的代理所知道的一切的家园,每一行都赢得了它的位置。
## 快速开始
```bash
npx memotrust install # 创建存储库,初始化 Git,注册 MCP 与您的代理
```
将 **Claude Code**、**Cursor** 或任何 MCP 客户端指向它,您的代理可以 `提出` 和 `回忆`。仪表盘出现在 **http://localhost:8765**。
## 仪表盘
您的代理所知道的一切,以及有多少信息是经过验证的。审查收件箱,一目了然地批准或争议,观察信任覆盖率,并审计任何声明的完整证据链。
<div align="center">
<img src="assets/dashboard.png" alt="memotrust 仪表盘:记忆按信任(已验证、已提出、已驳斥、已批准)分组,带有收件箱和实时信任覆盖率。" width="840" />
</div>
## MCP 验证器,只读
验证器根据 **真实来源** 确认或驳斥声明。它 **始终只读**:可以查询,但不能写入、更新或删除。
- **内置,无需凭证。** 根据文件、URL 或命令检查声明:
```yaml
check: {"kind": "file", "path": "package.json", "contains": "pnpm"}
check: {"kind": "url", "url": "https://api.example.com/health", "status": 200}
```
- **连接真实来源。** **Mixpanel** 内置(具有只读服务帐户,确认增长和指标声明)。连接任何其他只读 MCP 数据源,或让您的代理提交只读观察,**memotrust 作出判决,代理永远不能。**
- **人工审批。** 您宁愿自己确认的任何事情,一键即可。
<div align="center">
<img src="assets/dashboard-verifiers.png" alt="验证器页面:只读连接器(Mixpanel、Amplitude、PostHog、GitHub、人工审批),将提出的记忆转化为可信的知识。" width="840" />
</div>
> `command` 检查**默认禁用**:污染的声明永远不能成为代码执行。选择加入 `MEMOTRUST_ALLOW_COMMAND_CHECKS=1`。
## 工作原理
<div align="center">
<img src="assets/how-it-works.png" alt="流程:代理提出记忆,它被隔离,memotrust 判断证据并记录收据,只有可信的记忆被回忆。60 天的衰减或人工争议将其送回保留。" width="900" />
</div>
存储中 **没有 LLM**:您的代理提取持久的事实,并通过 MCP 提出它们;memotrust 只会 *判断* 证据并记录收据。
## 代理获得的工具
| 工具 | 它做什么 |
|---|---|
| `recall` | 只有可信的 + 新鲜的 + 处于范围内的记忆;被驳斥的接近会返回 **警告** |
| `propose` | 提交新的记忆;它被隔离,永远不会在到达时被信任 |
| `search` | 任何信任级别的任何信息,每个结果都标有其状态 |
| `vocabulary` | 现有空间 + 标签,以便代理重用名称而不是发明同义词 |
| `pending_verifications` | 带有机器可检查断言的声明,等待读取 |
| `submit_evidence` | 提交只读观察;memotrust 判断,而不是代理 |
## memotrust 与普通记忆层
| | 普通记忆 | **memotrust** |
|---|---|---|
| 新记忆是… | 立即信任 | **隔离直到验证** |
| 虚构 / 污染的笔记 | 提供给每个代理 | **保留,从不回忆** |
| 过时的事实 | 徘徊并获胜 | **60 天后衰减,重新验证** |
| “我们已经尝试过” | 被遗忘 | **作为警告返回** |
| 为什么值得信赖? | ¯\\\_(ツ)\_/¯ | **可审计的收据** |
## 贡献
欢迎提出问题和 PR。`npm test` 运行存储库 + 验证器套件;`npm run test:e2e` 运行端到端 MCP 验收测试。房屋风格:[docs/code-style.md](docs/code-style.md)。
<div align="center">
**如果您的代理需要验证的记忆,请 [⭐ 加星标](https://github.com/Idanref/memotrust)。这很有帮助。**
[MIT](LICENSE) · 为 [模型上下文协议](https://modelcontextprotocol.io) 构建
</div>