MemoryGuard 是面向编程智能体的、本地优先的 MCP 记忆治理工具,官方定位为「Governed shared memory for coding agents」。它支持 Codex、Claude Code、Cursor、Grok 与 Trae 等编程宿主,旨在让智能体持续写入的同时,不使共享记忆变成未经审阅的堆积。其核心思路是:持久记忆解决的是存储问题,而非治理问题;当多个编程智能体写入同一上下文时,记录会出现重复、过时、矛盾、范围过宽或不安全复用,MemoryGuard 位于智能体与共享记忆之间以保持上下文可用。
【用途与定位】 MemoryGuard 组织每一次写入,保留变更背后的证据,并使治理决策保持可逆。它没有账号体系、没有远程服务器、没有远程遥测;可选的本地用量遥测仅存储有界的、隐私保护的本地聚合数据。所有受治理数据默认留在本地,除非用户明确授权远程模型或嵌入操作。
【主要能力】
- 记忆治理:对写入进行自动组织、分类、去重、取代(supersede)、隔离(quarantine)与回滚。被隔离的记录不会进入活跃共享记忆。
- 规则与生命周期:具备规则生命周期与 RuleMerge、强制规则替换与恢复;替换时会校验最终强制规则包是否满足受众匹配、规范规则、去重、敏感度检查与发布预算,等价且未锁定前驱在同一事务中退役,校验失败则整体回滚。
- 证据与审计:保留变更证据,支持 Reference Audit、按域 SQLite 健康检查、受控维护、回滚证据与安全的未绑定诊断。
- 冲突解决:冲突视图保留可读的对等信息,解决时保持对等分组完整并原子应用所选变更;模糊冲突保持未解决状态。
- Token 证据与节省视图:区分 measured_cached_input 与 measured_cache_write_input;measured_cache_coverage.cache_read 与 cache_write 报告 complete、partial 或 unavailable;缺失的提供方数据保持 None/unavailable,而基于字符的估算始终明确标注为 estimated mg_deterministic_unit,绝不当作提供方 token。
- 桌面治理控制台(memoryguard-gui):包含八个可见导航入口——七个治理页面加一个独立的 Token 用量与节省视图。七个治理页面包括 Governance Overview、Data Sources & Agents、Conversation History、Risk Signals & Governance Console 等;Agent 列表使用可读的程序/提供方名称,底层 ID 保留在详情视图中,空数据显式显示为空状态。
- 知识库(Knowledge Library):可将选定文件夹或文件集变成一个受治理的本地知识库;源文件保持原位,MemoryGuard 在用户数据主目录存储可搜索索引,而不是向每个源项目复制运行时数据库。远程嵌入或模型索引为可选项,需要明确授权;本地全文检索无需向远程提供方发送源文本。
- CodeGraph:v0.7.15 起,受信任的引导会在后台进程启动项目的首次构建;支持在文件概览与符号之间切换、按文件过滤、查看相邻关系与缩放控制。首次 CodeGraph 构建需显式确认;作用域构建完成后,每次成功的受信任文件写入可触发增量刷新,内容哈希未变则为无操作,已删除文件退役。
【使用方式与安装】 MemoryGuard 作为本地 stdio MCP 服务器运行,暴露于 MCP Registry,标识为 io.github.MerakOsiris/memoryguard,注册元数据保存在 server.json 中。 安装流程(官方文档概述):
- 通过 Python 包管理器安装,并配置桌面治理控制台;
- 授权当前项目;
- 连接或修复编程智能体(支持 Claude Code、Codex、Cursor 等提供方的安装指引)。 全局提供方配置会从规范用户数据主目录中的真实绑定重建,命令具有幂等性,并在成功全局接管后移除被取代的项目级 MemoryGuard 覆盖。安装后需重启宿主并验证集成。 桌面控制台启动:memoryguard-gui;裸命令 memoryguard gui 始终打开规范用户级控制目录(Windows 默认 %LOCALAPPDATA%\MemoryGuard),因此从项目目录或 C:\Windows\System32 运行都不会静默切换数据库。MEMORYGUARD_WORKSPACE 是显式的操作者覆盖;显式的 memoryguard gui <project-path> 或 memoryguard gui --workspace <project-path> 选择特定工作区。Windows 上 memoryguard gui 会将原生窗口与终端分离,关闭 PowerShell 不会关闭 GUI。 升级:通过 Python 包管理器升级,并保留 GUI extra(如已安装);没有包自更新命令,包管理器是权威的包升级路径;memoryguard upgrade 是显式的工作区迁移流程,不是包更新器。 V1 数据主目录升级:先升级包,再运行经过验证的迁移,正常用户级数据主目录无需 workspace、data-home、apply 或确认参数;该命令准备 V2、校验冻结源与活动源证据、迁移 Agent/Group 控制,仅在全部闸门通过后激活,并只删除属于该次成功迁移的备份批次;在 V2_ACTIVE 上重复运行是幂等的,零写入报告可用相应参数获取。 既有 pre-V2 工作区的显式 V2 切换:v0.6.0 从不自动激活既有工作区,需先升级包再使用随包的操作者 CLI;prepare 步骤使用一致的 SQLite 在线备份,保留 V1 与 migration-backups,并在 READY 前重新检查活动源漂移;激活前再做一次漂移检查;升级过程中不要删除旧 V1 数据或迁移备份。
【数据架构与隐私】 V2 使用相互独立的权威 SQLite 域,而非单一共享记忆数据库:Memory、Rules、Evidence、Content、Runtime、Projection、Assets、CodeGraph、Skills、System 各自分离;History、Source、Binding、Group 控制为 V2 原生表面。运行时仅在清单达到 V2_ACTIVE 后才读写 V2,V2_BUILDING 与 V2_READY 从不静默回退或双写。切换流程 V1_ACTIVE → V2_BUILDING → V2_READY → V2_ACTIVE 为失败关闭(fail-closed)。迁移为无损迁移,保留 V1 数据与迁移备份用于回滚;旧 V1 工件在切换后作为本地回滚/审计证据保留,不再处于活跃 V2 运行时写入路径,仅 memoryguard.migration 可读取。 源扫描默认只读;变更类治理路径使用校验、显式作用域、来源与可逆状态;共享组历史访问遵循当前活跃成员身份,不授予删除其他 Agent 源的权限;原始对话历史不会自动注入引导流程。Token 节省为基于 MemoryGuard 确定性单元的估算,不是提供方账单声明;不报告 token 的宿主在实测列中保持 unsupported。
【支持宿主与状态】 提供方状态如实报告为 redirected、observed、operational 或 unsupported。MemoryGuard 不会声称能禁用每个宿主的原生记忆(当宿主没有可靠集成点时)。Codex/Router 将 MemoryGuard 绑定到稳定的本地 Codex 程序与控制安装;账号配置文件是端点/别名,不是新的记忆所有者,切换配置文件会自动发现或修复该配置文件并复用已验证的 Agent 绑定与活跃组;请求身份保持失败关闭,不跨机器或与任意账号共享记录。
【命令行与兼容性】 已安装的 memoryguard 命令暴露顶层操作;旧的 V1 plan、apply、verify、undo、import、gc 工作流可能仍可作为显式退役的兼容表面被解析,但不是 V1 运行时路径,在 V2_ACTIVE 下返回稳定的退役结果而非通过旧存储写入;旧数据输入只由显式 memoryguard.migration 升级流程接受。运行 memoryguard --help 或 memoryguard <command> --help 可查看具体说明。
【限制说明】 仓库中用于示意治理投影的合成图形作品不是实时产品截图,不构成使用量或节省的证据;基准测试仅应针对已授权的本地工作区运行。其余未在资料中明确提供的功能、收费、价格、平台或具体命令细节,暂未提供。