Skip to content

Releases: 17861102832/wanyimem

v1.1.0 — MCP 标准 stdio + 架构重组 + 质量基线

Choose a tag to compare

@17861102832 17861102832 released this 30 Aug 06:37

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 script wanyi 全部原样可用;另新增 python -m wanyi 入口。
  • 版本唯一真源:新增 wanyi/version.pypyproject.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_MODEfull(默认,完整拦截)/ warn(只提醒不拦截)/ off

安装

pip install wanyimem            # core(仅 numpy 依赖)
pip install "wanyimem[all]"     # + 向量/精排模型 + sqlite-vec ANN

本 Release 附带构建产物(wheel + sdist);PyPI 源同步发布前可从 Assets 直接安装。

v1.0.6 — 向量写入性能(批量嵌入)

Choose a tag to compare

@17861102832 17861102832 released this 24 Aug 00:02

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 镜像 + 护城河全自动

Choose a tag to compare

@17861102832 17861102832 released this 23 Aug 23:48

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 服务器变常驻守护。

CLI / 测试

  • 新增 console 入口 wanyi-exportwanyi-autopip install wanyimem 后可用)。
  • 新增 tests/test_mirror.py(3) + tests/test_auto_moat.py(3);全部 22 测试通过

安装:pip install "wanyimem[all]"

v1.0.4 — 向量检索提速(sqlite-vec 轻量 ANN)

Choose a tag to compare

@17861102832 17861102832 released this 23 Aug 23:36

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 - 记忆图谱挂接修复 + 可复现召回基准

Choose a tag to compare

@17861102832 17861102832 released this 23 Aug 03:52

本版亮点

  • 修复真架构缺口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 - 召回诚实性修复

Choose a tag to compare

@17861102832 17861102832 released this 23 Aug 03:52

本版亮点

  • 召回诚实性:无匹配的「非空查询」不再硬凑结果 —— 诚实返回空列表并记录知识空白(与「绝不硬凑答案」的元认知理念一致)。空查询兜底仍按时间倒序返回(hook_load 道 / 法级注入专用)
  • 工具数量核实:实测 MCP 协议 tools/list 返回 23 个工具且全部可映射到 handler;此前一份外部跑分报告称「实际 21 个」系误判
  • 测试 12 通过

v1.0.1 - 环境变量兼容层 + 全量审查修复

Choose a tag to compare

@17861102832 17861102832 released this 23 Aug 03:52

本版亮点

  • 新增 wanyi/env_compat.py:所有配置项支持「中文优先、英文兜底」双 key(9 个配置 + ASCII 别名),跨平台 / CI / MCP 客户端兼容性提升,向后兼容现有配置
  • 修复 4 处真实 bug + 1 处参数未生效:gardener.arbitrate_conflict UnboundLocalError、confidence.needs_review 时区偏差、记忆锚点恢复丢失 process_id、自检 contradiction_candidates 恒 0、recall.min_confidence 从未生效
  • 测试 9 -> 12,全部通过

v1.0.0 — 万忆中枢 WanYi Memory Core

Choose a tag to compare

@17861102832 17861102832 released this 22 Aug 00:31

万忆中枢 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 deps

Requires 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