关于 Monet
Monet 是面向编码 Agent 的本地优先记忆系统,在设备上保存原则、规则和纠正记录。其 MCP 服务与命令行工具会按项目组织记忆,并在 Agent 工作时提供相关内容。
主要功能
- 01本地 SQLite 记忆存储
- 02设备端嵌入向量
- 03按项目划分记忆圈
- 04记忆 MCP 服务
- 05记忆关系图仪表板
- 06存储诊断与修复
适用场景
- 01让编码 Agent 获取项目规则
- 02记录纠正内容以避免重复提醒
- 03查看记忆概念及其关系
- 04诊断或修复嵌入向量存储
MCP 相关
Monet 支持 MCP,并通过服务向编码 Agent 提供本地存储的记忆。命令行工具还可用于检查和维护存储。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
monet
记忆应该改变你的 Agent 的行为。
🌐 team-monet.com · 已收录于 MCP Registry
Monet 是面向编码 Agent 的本地优先记忆工具,旨在实现你期望的结果。它会保留你和团队真正看重的内容——原则、规则和纠正建议——并在 Agent 工作时将其提供给 Agent:原则始终生效,规则在适用时读取,纠正建议会被记录下来,避免重复提出。它 100% 在本地运行(SQLite + 设备端嵌入),并使用 MCP。
开始使用 — 让你的 Agent 为你完成设置
使用 Monet 最简单的方式,是让你的 Agent 为你安装并完成配置。在 Claude Code 中粘贴下面这行内容(即将支持更多 Agent):
为我的所有项目设置 Monet:阅读 https://raw.githubusercontent.com/team-monet/monet/main/harness/bootstrap/install.md 并按其中说明操作,每一步都先与我确认。
你的 Agent 会安装 Monet、配置 MCP 服务,并引入一支具备记忆能力的 Agent 团队——无需手动配置,也无需设置环境变量。 这就是 with-monet 框架,位于 Monet repo 的 harness/ 目录中,也是推荐的使用方式。
⭐ 如果 Monet 对你有帮助,请在 GitHub 上为 Monet 点亮星标——这是支持该项目的最佳方式。
零配置
Monet 会在 ~/.monet 中保留一个本地存储,并自动将每个项目整理到各自的 circle 中——无需进行任何设置。所有内容都保留在你的设备上。
查看你的记忆 — monet dashboard
运行一条命令,即可打开 Monet 记忆的本地网页视图,以可交互的力导向图形式呈现:
monet dashboard
它会自动在浏览器中打开——如果没有打开(某些 Windows 或无头环境可能会遇到这种情况),终端会显示 URL(http://localhost:7373)和存储路径;只需访问该 URL 即可。Graph 标签页是主视图:节点代表概念(按类型着色,并根据重要性调整大小),边表示它们之间的关系,详情面板可让你查看任意概念的完整内容和依据。Concepts、Entities、Timeline 和 Health 标签页是可排序的表格;Health 会显示矛盾、重复内容和低置信度概念。如果图表看起来是空的,请检查终端中的 Store: 行:图表为空通常意味着它指向了错误的存储(使用 -d),或者存储尚未积累内容。
100% 本地运行。完全离线。严格只读。 每次收到请求时,服务端都会将存储复制到临时快照中——不会写入或锁定实时数据库。不会建立任何网络连接;关闭 Wi-Fi 后运行,图表仍会正常显示。
monet dashboard # opens at http://localhost:7373
monet dashboard -p 8080 # -p, --port <n> custom port
monet dashboard -d ./path # -d, --dir <path> point at a specific store
诊断并修复 embedder 存储 — monet doctor / monet repair
如果 Monet 报告 embedder 固定值不匹配、嵌入迁移中断、向量格式错误,或本地模型不可用,请先运行只读诊断命令:
monet doctor
monet doctor --check-provider # also load and probe the exact pinned provider
monet doctor --dir ~/.monet --json # machine-readable result; diagnostics stay on stderr
doctor 会打印数据库的绝对路径、SQLite 完整性和架构、持久化模型固定值、全部四种实时嵌入数据(包括维度和格式错误的行示例)、任何迁移标记,以及可直接复制粘贴的后续命令。它不会构建 MonetCore,也不会修改数据库。诊断正常时退出码为 0;诊断完成但需要恢复或对提供方采取操作时退出码为 2;检查失败时退出码为 1。提供方不可用会与存储安全状态分开报告,例如,不支持的哈希 tokenizer 或缺失的 ONNX 缓存本身并不意味着数据库已损坏。对于无法仅凭固定值确认形状的 ONNX 或自定义模型 ID,只有在确切的提供方成功加载,且每种格式正常的实时数据都具有相同且匹配的向量宽度时,--check-provider 才能将原本的 unknown 评估结果调整为已确认。
当服务完全无法启动时
无法启动服务的主机只会报告连接已关闭——只有所有可能失败的启动步骤都成功后,传输层才会建立,因此没有可用于解释故障的协议通道。故障原因会写入存储旁边的 monet.db.startup-failure.json:失败步骤、错误及其代码、时间和 pid。该记录是单个数据库的旁置文件,以数据库命名,因此包含多个存储的目录不会混淆各自的诊断结果。doctor 会首先在 stderr 上打印该记录,即使存储本身损坏严重,无法检查也是如此。
该记录只保留最近一次故障,之后成功启动也不会清除它——主机可能重试,因此“失败 → 失败 → 成功”很常见;若成功时清除记录,就会抹去失败尝试的证据。采取操作前请先查看时间戳。
除非同时提供两个确认标记,否则修复操作只会预览。请选择且仅选择一种模式:
# Preview a complete rewrite to a built-in provider alias.
monet repair --target hashing
monet repair --target onnx
# Exact persisted model IDs are also accepted (quote them in scripts).
monet repair --target 'hashing:dim=256:tok=2' --json
# Apply only after reviewing the preview; this command never prompts.
monet repair --target hashing --apply --yes
# An interrupted migration must use the sentinel's exact target.
monet repair --resume
monet repair --resume --apply --yes
# Abandon is available only when core proves no vectors were rewritten and can restore the prior pin.
monet repair --abandon
monet repair --abandon --apply --yes
预览会先对持久化状态进行分类,再提供应用命令。未固定模型的空存储,或干净且与提供方兼容的同目标存储,会报告 action: none;无需备份或重写,且 --apply --yes 会拒绝执行。除非存在标记且核心诊断将其判定为可安全放弃,否则放弃预览也会拒绝执行。有效目标或恢复预览会加载并探测确切的提供方,但不会以修改模式打开数据库。应用操作会再次预检提供方,独占 SQLite 访问权,并在核心迁移架构或嵌入数据之前创建经过验证的备份。备份会自动创建,不能禁用或更改保存位置:
<storage-directory>/backups/monet-before-repair-<UTC>-<uuid>.db
备份路径会立即打印,即使后续操作失败也会保留。如果无法获取独占访问权,请停止其他 Monet 进程,然后重新运行相同命令。不要删除活动迁移标记,也不要手动编辑固定值:请使用 --resume;只有在预览显示核心将放弃操作判定为安全时,才使用 --abandon。预览和应用成功时退出码为 0;标志无效、提供方失败、锁冲突、尝试不安全的放弃操作、备份失败和迁移失败时退出码为 1。
许可证
Monet 根据 GNU Affero 通用公共许可证 v3.0(AGPL-3.0-only)授权。完整条款见此软件包随附的 LICENSE 文件。with-monet 测试框架根据 Apache License 2.0 单独授权。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。