Releases: 17861102832/wanyimem
Releases · 17861102832/wanyimem
Release list
v1.1.0 — MCP 标准 stdio + 架构重组 + 质量基线
v1.1.0 — MCP 标准 stdio + 架构重组 + 质量基线
Fixed(关键协议修复)
- MCP stdio 标准协议:v1.0.x 的 stdio 传输层误用 LSP 式
Content-Length帧,导致任何标准 MCP 客户端(换行分隔 JSON)都握手失败。现改为 MCP 标准的换行分隔 JSON,同时兼容解析旧式 Content-Length 帧(向后不破坏)。 - EOF 忙循环:stdin 关闭后主循环把 EOF 当空消息
continue,进程不退出、CPU 空转。现_read_message在 EOF 时抛出并干净退出,附回归测试。
Changed(架构重组,零逻辑改动)
- 巨石拆分:
memory_core.py(约 3600 行单文件)机械拆分为core_base(常量/评分/MemoryDB 数据层)+engine(WanYiCore + 23 工具 + JSON-RPC 分发)+transport(stdio 传输层)。 - 兼容门面:
wanyi.memory_core保留 shim——包内导入、sys.path hack 顶层导入、python -m wanyi.memory_core与 console scriptwanyi全部原样可用;另新增python -m wanyi入口。 - 版本唯一真源:新增
wanyi/version.py,pyproject.toml动态读取(hatch);修复initialize返回 "1.0.2"、docstring 标 "v3"、__version__三处互相矛盾的硬编码。
Added(质量基线)
- 测试 15 → 33(CI 矩阵 py3.10–3.12 + ruff):stdio 协议合规 ×6、模块拆分一致性 ×3、symtable 全局名完整性守卫 ×1、23 工具全覆盖冒烟 ×1(按签名自动补哑元逐个真实调用)。
- 护栏模式
WANYI_GUARD_MODE:full(默认,完整拦截)/warn(只提醒不拦截)/off。
安装
pip install wanyimem # core(仅 numpy 依赖)
pip install "wanyimem[all]" # + 向量/精排模型 + sqlite-vec ANN本 Release 附带构建产物(wheel + sdist);PyPI 源同步发布前可从 Assets 直接安装。
v1.0.6 — 向量写入性能(批量嵌入)
v1.0.6 — 向量写入性能:store_batch 批量嵌入
VectorIndex.store_batch改为一次encode批量嵌入全部 + 统一落库,替代「逐条 store(每条一次嵌入)」。大量记忆灌入(LongMemEval 式批量 ingest / 历史导入)显著提速。- 结构:抽出
_store_vec(权威表 + ANN 影子表共用)与_embed_batch(有模型批量 encode;无模型/失败逐条兜底,可被测试 mock)。 - 测试:
test_vector_ann.py新增test_store_batch_embeds_once,mock 模型断言encode仅调 1 次且全部落库;全部 23 测试通过。
安装:pip install "wanyimem[all]"
v1.0.5 — 只读 Markdown 镜像 + 护城河全自动
v1.0.5 — 只读 Markdown 镜像 + 护城河全自动
只读 Markdown 镜像导出(护城河 #6)
- 新增
wanyi/mirror.py+wanyi-export:把事件溯源库渲染成可读、可 diff、可版本化的 Markdown(按 道/法/术 分组,含错题本/经验库/知识空白/反事实分支/跨域模式),只读不写库。 - 用法:
wanyi-export --db memory.db --out memory.md
护城河全自动(AutoMoat 护城河 #5)
- 新增
wanyi/auto_moat.py+wanyi-auto。- 反事实诚实自动结算:到期仍 open 的分支,有实测结果则自动结算,否则诚实标记
expired(绝不编造赢家)。 - 自动巩固:睡眠巩固 + 园艺师深巩固。
- 跨域类比巡检:按命中/置信列出最该被提醒的跨域模式。
- 周期调度器:
wanyi-auto --db memory.db --loop 3600;默认关闭,不把 MCP 服务器变常驻守护。
- 反事实诚实自动结算:到期仍 open 的分支,有实测结果则自动结算,否则诚实标记
CLI / 测试
- 新增 console 入口
wanyi-export、wanyi-auto(pip install wanyimem后可用)。 - 新增
tests/test_mirror.py(3) +tests/test_auto_moat.py(3);全部 22 测试通过。
安装:pip install "wanyimem[all]"
v1.0.4 — 向量检索提速(sqlite-vec 轻量 ANN)
v1.0.4 — 向量大规模检索提速:sqlite-vec 轻量 ANN
- 混合检索策略:vector_memory.py 升级为"small 精确 / large ANN"双路径
- 规模 < ANN_MIN_COUNT(默认 2000)→ 全表精确余弦(正确性优先)
- 规模 ≥ 阈值且 sqlite-vec 可用 → vec0 最近邻预筛(k=limit*3+5)+ 完整 embedding 精确重排(既提速又保准)
- sqlite-vec 未安装 → 自动回退纯精确,完全向后兼容
- 可选依赖:新增 wanyimem[ann](sqlite-vec>=0.1.6),并入 wanyimem[all]
- 正确性保障:memory_embeddings 仍是权威真值表;vec0 只是影子索引,换模型/维度变化自动重建
- 测试:新增 tests/test_vector_ann.py(3 用例,无需模型/网络),既有 13 个冒烟用例全通过(16 passed)
回应社区对"向量全表载入内存暴力检索"的顾虑:默认小规模精确、大规模 ANN 预筛+精确重排,兼顾召回质量与扩展性。
安装:pip install "wanyimem[all]"
v1.0.3 - 记忆图谱挂接修复 + 可复现召回基准
本版亮点
- 修复真架构缺口:
auto_graph_link只建了graph_nodes/graph_edges,却未把记忆挂接到它自己的节点(memory_node_links),导致「记录几条记忆后搜图谱恒为 0」,被外部跑分误判为「图谱能力不足/需向量积累」。修复:建节点后即link_memory_to_node,记录 -> 查图谱即刻可用 - 首次公开可复现召回基准
benchmark/recall_benchmark.py(14 条刻意「关键词错开」的 mini LongMemEval):核心版(BM25+图谱)Recall@5=1.000 / MRR=0.857,完整版(bge 向量+精排)Recall@5=1.000 / MRR=0.857,替换 README 中未经实测的 "Recall@5=90%" - 图谱挂接修复顺带提升核心版召回 MRR 0.845 -> 0.857
- 测试 12 -> 13;CI 全绿
v1.0.2 - 召回诚实性修复
本版亮点
- 召回诚实性:无匹配的「非空查询」不再硬凑结果 —— 诚实返回空列表并记录知识空白(与「绝不硬凑答案」的元认知理念一致)。空查询兜底仍按时间倒序返回(
hook_load道 / 法级注入专用) - 工具数量核实:实测 MCP 协议
tools/list返回 23 个工具且全部可映射到 handler;此前一份外部跑分报告称「实际 21 个」系误判 - 测试 12 通过
v1.0.1 - 环境变量兼容层 + 全量审查修复
本版亮点
- 新增
wanyi/env_compat.py:所有配置项支持「中文优先、英文兜底」双 key(9 个配置 + ASCII 别名),跨平台 / CI / MCP 客户端兼容性提升,向后兼容现有配置 - 修复 4 处真实 bug + 1 处参数未生效:
gardener.arbitrate_conflictUnboundLocalError、confidence.needs_review时区偏差、记忆锚点恢复丢失process_id、自检contradiction_candidates恒 0、recall.min_confidence从未生效 - 测试 9 -> 12,全部通过
v1.0.0 — 万忆中枢 WanYi Memory Core
万忆中枢 WanYi Memory Core v1.0.0
永不遗忘的全量记忆系统 — Event-sourced long-term memory for AI agents. Local-first MCP server, 23 tools, data never leaves your machine.
核心特性 / Highlights
- 事件溯源:append-only WAL 为唯一事实源,永不删除,衰减只影响召回排序
- 语义召回:BM25 关键词 + 本地中文向量(BAAI/bge-small-zh-v1.5)+ reranker(BAAI/bge-reranker-base)+ 知识图谱扩展 + 时间衰减
- 元认知:召回弱时承认知识空白,而不是编造答案
- 决策护栏:全仓/梭哈/强推/rm -rf 等高风险动作触发置信度拦截,反事实分支让你看到"如果当初听了会怎样"
- 零参与进化:无需说"记住",系统自主沉淀、夜间整理、每周轨迹回放
- 23 个 MCP 工具:记忆记录/召回/搜索/图谱/时序/反事实/桥接/回放/置信度检查等
安装 / Install
pip install wanyimem # core
pip install "wanyimem[all]" # + vector & reranker models depsRequires Python 3.10+. Models are downloaded on first use from HuggingFace; set HF_ENDPOINT=https://hf-mirror.com in mainland China.
快速开始 / Quick Start (MCP)
Add to mcp.json (Claude Desktop, Cursor, Trae, etc.):
{
"mcpServers": {
"wanyi": {
"command": "python",
"args": ["-m", "wanyi.memory_core"],
"env": {"万忆中枢_STORE_DIR": "C:/path/to/your/memory"}
}
}
}CI 状态 / Status
- ✅ Lint (ruff) & Tests (Python 3.10 / 3.11 / 3.12) all passing on GitHub Actions
- ✅ MIT License