Memory Arbiter 迷码:给 AI Agent 的本地可信事实层 MCP Skill 技能

给 AI Agent 的本地可信事实层 MCP

Memory Arbiter(迷码)— 本地可信事实层 MCP

技能简介

Memory Arbiter(迷码)是一款面向 AI Agent 的本地可信事实层 MCP 服务器。它将 SQLite 数据库通过 Model Context Protocol(MCP)暴露为四个核心工具,让不同 AI 编程工具(Claude Code、Cursor、Codex 等)之间能够共享、可信、可溯源地管理记忆。每一份事实只存储一次原文,向量索引与全文检索均为可重建的派生索引,而非唯一副本。它最大特点是「冲突治理」机制:多条记忆打架时,由本地 Qwen 模型发现冲突,裁决权完全归属用户本人,Agent 无权自行修改他人记忆。数据全部存储在本地,不联网、不上传,不产生任何遥测数据。

核心能力

  • 四大 MCP 工具:memory(记忆写入/查找/读取/更新)、memory_review(只读健康检查与冲突查看)、memory_govern(授权治理:确认/解决冲突、工作区管理)、memory_repair(证据重建、冲突扫描、历史清理)
  • 本地向量召回:依赖本地 GGUF 嵌入模型(Qwen2.5 0.5B 或 Qwen3 0.6B Q8_0),无需 GPU,CPU 即可运行
  • 双向冲突检测:写入时严格门控(双向 Qwen 抽取属性/值,需严格 grounding)+ 后台定时扫描宽门召回,两道门配合实现「不漏报、不吵报」
  • 用户授权治理:所有状态变更操作(晋升保护级别、解决冲突、确认工作区)均需用户显式授权,Agent 无法绕过
  • workspace 隔离:支持 none(全打通)/ weak(软隔离)/ strict(严格隔离)三种模式,适合个人单兵到多项目团队各类场景
  • 完整版本历史:每次编辑均追加到 memory_history,可追溯任意历史版本
  • 零遥测设计:唯一出站请求为可选 PyPI 版本检查(可关闭),其余全部本地运行
  • 多传输模式:默认 stdio(各客户端独立启动子进程),也支持 streamable-http(多客户端共享一个本地常驻进程)

安装配置

方式一:AI Agent 自动安装(推荐)

将以下内容直接发送给 Codex、Claude Code、Cursor 或其他有终端访问能力的 AI 编程 Agent:

> 请阅读 https://github.com/billy12151/memory-arbiter-mcp 的最新 README,根据我的操作系统和当前 AI 客户端安装并配置最新版 mema。保留已有配置和数据库,不要覆盖或删除现有数据;需要我选择不同安装模式、修改已有配置,或执行任何破坏性、提权操作时先询问我。完成后运行 mema doctor,并向我报告安装方式、配置路径、数据库路径、客户端接入方式和验收结果。

方式二:一条命令全自动安装

# 一条命令:装包 + 装依赖 + 下载两个模型(约 800MB,支持断点续传/国内镜像)+ 写配置
curl -fsSL https://memarbiter.cn/install.sh | bash

方式三:分步手动安装

# 第 1 步:安装核心包(含 sqlite-vec 向量索引 + 本地 GGUF 运行时)
pip install "memory-arbiter-mcp[vec,semantic-local]"

# 第 2 步:下载模型并生成配置文件
mema setup --install

# 第 3 步:验证安装结果
mema doctor

安装完成后,将 examples/ 目录下的 *.mcp.json 配置示例复制到对应 AI 客户端即可接入。

使用步骤

第一步:写入一条新记忆

将重要事实写入记忆库,例如:

memory(action="remember", data={
  "content": "本项目数据库选用 PostgreSQL 16,主库位于 10.0.0.100:5432",
  "tags": ["database", "architecture"],
  "source_ref": "meeting-2026-09"
})

第二步:在需要时检索

不同 Agent 需要上下文时执行检索:

memory(action="find", data={
  "query": "项目数据库选型"
})

返回记忆元数据页(含长度、摘要、评分),确认需要再 read 原文。

第三步:发现冲突时处理

当系统检测到两条记忆打架(如发现「数据库用 MySQL」与「数据库用 PostgreSQL」并存),会发送冲突通知。用户按以下三步处理:

# 步骤 1:裁决 — 选定哪个是对的
memory(action="judge", data={
  "conflict_id": "",
  "chosen_value": "PostgreSQL 16",
  "resolution_plan": "update_current_claim"
})

# 步骤 2:执行变更(每条冲突记录逐一授权执行)
memory_govern(action="apply_conflict_action", data={
  "conflict_id": "",
  "action_id": "",
  "authorized": true
})

# 步骤 3:关闭冲突单
memory_govern(action="resolve_conflict", data={
  "conflict_id": "",
  "authorized": true
})

第四步:定期健康检查

# 每日运行:检查配置、索引、冲突积压
mema doctor

# 深度检查:连模型也一起检查
mema doctor --deep

第五步:配置定时任务(推荐)

迷码本身不带定时器,需要外部调度器唤醒 Agent,建议配置:

  • 每小时:执行 memory_repair(task="scan_pipeline") → memory_repair(task="scan_queue") 全套冲突扫描
  • 每天:执行 mema doctor 治理健康检查

适用场景

  • 多 Agent 协作项目:Claude Code 写的决策、Cursor 记的需求、Codex 提的实现方案——每个工具共享统一事实层
  • 长期维护项目:跨越数月的项目容易出现「上次说是用 X,这次又变成 Y」的矛盾,迷码在每次写入时即检测冲突
  • 个人知识管理:多个 AI 工具混用的用户,可用 strict 隔离模式将不同领域记忆完全分开
  • 团队决策追溯:所有记忆携带 provenance(来源/时间/写入者),可追溯「这个决定是什么时候谁做的」
  • 项目交接场景:交接时导出 SQLite 文件,新成员所有 Agent 接入即可继承完整上下文

适用人群

  • 使用多个 AI 编程工具(Claude Code、Cursor、Codex、Windsurf 等)的开发者
  • 需要在 AI Agent 之间共享可信项目记忆的团队
  • 希望避免 AI 幻觉导致记忆矛盾的深度 AI 用户
  • 需要管理多项目、多工作区上下文的独立开发者或技术负责人

工作原理

迷码的核心是一套「记忆 → 索引 → 召回 → 冲突治理」的闭环:

  1. 写入层(memory remember/update):新记忆写入 SQLite,存储完整原文;同时触发向量嵌入生成(本地 GGUF 模型)和可选 Qwen 双向冲突检测
  2. 索引层(后台自动):向量索引、全文 FTS5 索引、证据切片(从原文中抽取句子级片段)均为派生数据,可随时重建
  3. 召回层(memory find/batch_find):检索时混合词元通道(BM25/FTS5)和证据通道(向量 KNN),按 reciprocal-rank fusion 合并,再经信任度/时间/workspace 过滤后返回
  4. 治理层(冲突检测 → 裁决 → 执行):
    • 宽门扫描:定时调用 memory_repair(task="scan_candidates"),KNN + Qwen 双向抽取,低门槛保召回
    • 严门通知:写入时双向 Qwen 必须给出一致的「属性/值」抽取才发提醒,宁可漏报不乱报
    • 裁决:用户授权 judge → apply_conflict_action → resolve_conflict 三步走,Agent 只做发现和执行,不做决定

官方链接

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论