Skip to main content

WanYi Memory Core 万忆中枢

永不遗忘的全量记忆系统 — Event-sourced long-term memory for AI agents: process memory, mistake books, experience crystallization, confidence-based decision blocking, counterfactual branches, cross-domain analogy, trajectory replay, proactive partner, semantic vector retrieval, reranker, memory graph, time decay and metacognitive knowledge-gaps. Ships as a local-first MCP server with 23 tools. Your data never leaves your machine.

Python License Version MCP CI PyPI


Why this is different

Most memory systems store your data in the cloud, need a heavy dependency stack, or only do keyword search. wanyimem is local-first, single-file SQLite, and installs with one dependency (numpy).

wanyimem typical memory server
Data never leaves your machine (zero telemetry) cloud / SaaS
Infra SQLite single file, no separate vector DB Qdrant / Neo4j / Postgres
Defaults shadows the agent, blocks high-risk actions, opens counterfactual branches stores & retrieves
Resources runs on 2-core / 2GB heavier
Evolves zero-participation (learns from your mistakes automatically) manual "remember this"

23 MCP tools, open source (MIT), Python 3.10+, pip install wanyimem.


Why

LLM agents forget. Every chat window is amnesia: preferences, lessons, and hard-won experience evaporate when the session ends.

WanYi Memory Core is a local-first, full-quantity, self-evolving memory system:

  • Event sourcing — an append-only WAL is the single source of truth. Nothing is ever deleted; decay only affects retrieval ranking.
  • Semantic recall — hybrid retrieval: BM25 keywords + local Chinese embedding (BAAI/bge-small-zh-v1.5) + reranker (BAAI/bge-reranker-base) + knowledge-graph expansion + explicit time decay.
  • Metacognition — when recall is weak, the system admits it and records a knowledge-gap instead of hallucinating an answer.
  • Decision guardrails — high-risk actions (all-in, revenge-trading, force-push, rm -rf) trigger confidence-based blocking with counterfactual branches: you see what would have happened if you had listened.
  • Zero-participation evolution — no need to say "remember this"; the system decides what to store, consolidates overnight, and surfaces weekly trajectory reviews.

Install

pip install wanyimem            # core
pip install "wanyimem[all]"     # + vector & reranker models deps

Requires Python 3.10+. Models (embedding ~95MB, reranker ~1.1GB) are downloaded on first use from HuggingFace; set HF_ENDPOINT=https://hf-mirror.com if you are in mainland China.

Before the PyPI release lands, you can also install directly from GitHub (identical code):

pip install "git+https://github.com/17861102832/wanyimem.git"

Quick Start (MCP)

Add to your mcp.json (Claude Desktop, Cursor, Trae, etc.):

{
  "mcpServers": {
    "wanyi": {
      "command": "python",
      "args": ["-m", "wanyi.memory_core"],
      "env": {
        "WANYI_STORE_DIR": "C:/path/to/your/memory"
      }
    }
  }
}

Env keys are "Chinese-first, ASCII-fallback": the new WANYI_STORE_DIR (recommended, more portable) and the legacy 万忆中枢_STORE_DIR both work. Bare python depends on PATH and may fail; prefer an absolute interpreter path, or pip install wanyimem then use "command": "wanyi".

Then any agent can call the 23 tools, e.g.:

万忆记录见闻 → "2026年5月基金大跌时我死扛不止损,亏了18%才割肉。"
万忆召回记忆 → query "认赔离场到底对不对"   # semantic match even with zero shared keywords
万忆置信度决策检查 → "我要全仓梭哈"          # BLOCK if confidence is low, with historical mistakes

Quick Start (Library)

from wanyi import WanYiCore

engine = WanYiCore()
engine.tool_record_memory(
    content="止损纪律:亏损超过8%必须无条件卖出",
    layer="法", mem_type="principle",
)
resp = engine.tool_recall_memory("认赔离场到底对不对", limit=5)
for m in resp["memories"]:
    print(m["content"], m.get("_rerank_score"))

Features

Area Capability
Storage SQLite + append-only event WAL; 道/法/术 three-layer half-lives
Retrieval Keyword BM25 + vector (bge-small-zh) + reranker (bge-reranker-base) + graph expansion + time-decay fields
Metacognition knowledge-gap auto-record, stats self-check, honest "I don't know"
Guardrails confidence-based decision blocking, counterfactual branches with auto-settlement, cross-domain analogy bridging
Proactivity daily brief on LOAD, due-branch reminders, weekly trajectory replay, risk-keyword alert
Growth mistake book, experience crystallization, overnight consolidation, evolution queries
Privacy fully local, zero telemetry, no cloud dependency

Benchmark — reproducible mini LongMemEval (14 keyword-mismatched cross-session fact queries, run via python benchmark/recall_benchmark.py):

Version Recall@5 MRR
Core (keyword BM25 + knowledge-graph, no models) 1.000 (14/14) 0.857
Full (bge-small-zh vector + bge-reranker-base rerank) 1.000 (14/14) 0.857

Every query is intentionally phrased with different keywords than its answer (e.g. 本地数据库怎么提高并发写WAL模式, 记忆系统最怕什么事件溯源), so 14/14 reflects genuine semantic recall, not string matching. The knowledge-graph channel (active in the core, model-free) already lifts BM25 to parity here; the vector + reranker path shows its edge on larger-scale semantic expansion ("pip install wanyimem[all]" downloads the models).

Docs

Contributing

See CONTRIBUTING.md. Report vulnerabilities privately via SECURITY.md.

License

MIT © 2026 Zhao Xikun

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wanyimem-1.0.3.tar.gz (99.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wanyimem-1.0.3-py3-none-any.whl (88.3 kB view details)

Uploaded Python 3

File details

Details for the file wanyimem-1.0.3.tar.gz.

File metadata

  • Download URL: wanyimem-1.0.3.tar.gz
  • Upload date:
  • Size: 99.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wanyimem-1.0.3.tar.gz
Algorithm Hash digest
SHA256 a463575a90d59e27efb300e511212235327445f36de3d19122761db90b90322c
MD5 8b7a434cbdbb3d78878245ff07bfc30d
BLAKE2b-256 33c7c8452662cfcbb211312cef8cfd4dd4487add6a19c09af11a78a7d676189f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wanyimem-1.0.3.tar.gz:

Publisher: publish.yml on 17861102832/wanyimem

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wanyimem-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: wanyimem-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 88.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wanyimem-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6e7b4f8e3db03c0f9755a07c0aa13c5a75e7072f4dd3e2fc75dcd9f13cb7ceda
MD5 f3f9794c62e952ddb76045362e1d05da
BLAKE2b-256 26a2cc381d45d9faca4100167f4ebbd9844785ff450dac903dc710ec0b6d1381

See more details on using hashes here.

Provenance

The following attestation bundles were made for wanyimem-1.0.3-py3-none-any.whl:

Publisher: publish.yml on 17861102832/wanyimem

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

This release

1.0.3 This release

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page