xinhuo-memory
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@xinhuo-memoryRemember that I'm allergic to peanuts and prefer quiet restaurants."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
薪火 xinhuo · 长期记忆系统
一个本地优先(local-first)、以追加为主(append-first)的 AI 伴侣长期记忆服务。 以 SQLite 为唯一真源,同一进程同时提供 REST 与 MCP 接口,供上层"主模型/桥接层"做记忆注入、召回、审核与整理。
设计目标可以概括为一句话:让 AI 伴侣记得住、改得动、忘得慢、查得清,并且历史记忆永远不等于当前授权。
这是从一套真实运行的私有系统整理、脱敏而来的开源发布包。示例名称(如
阿岚、小星)均为虚构占位;所有密钥、端点、路径都改成了环境变量与可配置项。
这是什么
一个可独立部署的记忆后端:进程内暴露 HTTP
/recall、/events、/mcp等接口。上层的对话主模型不直接写库,而是通过这些接口"读记忆、记事件、请整理";所有摘要、向量化、冲突检测、审核由独立的后台模型完成,主模型调用计数在返回里始终为
primary_model_calls: 0。记忆分层、可版本化、可追溯;衰减与保护规则内置;并带一个"连续性副脑"与一个"情绪/表达状态"子系统。
它不是一个开箱即用的聊天机器人,而是给你自己的 Agent/桥接层接入的记忆组件。运行需要一个 OpenAI 兼容的模型端点(用于 embedding / rerank / 后台整理与审核)。
Related MCP server: exobrain-mcp
设计理念
框架与内容彻底分离:仓库只包含结构、管线与规则,不含任何真实记忆。
追加优先、软删除:原始事件与冷归档只追加;
memory_archive只做软归档,memory_delete是它的兼容别名,从不硬删。事实变化不覆盖:改动生成"候选",经审核
approve/reject/replace,旧版本保留可追溯。历史 ≠ 授权:记忆是历史资料,不构成当前用户授权;候选与已替代事实不当作当前事实。
不存凭据:内置正则在写入、摘要、副脑各环节拦截疑似密钥/令牌/私钥的内容并拒绝入库。
occurred_at(发生时间)与known_at(获知时间)分离。
主要机制
分层记忆
按稳定性与用途分为五层,职责单一:
分层 | 内容 |
| 人格锚与关系定位,少而稳 |
| 稳定事实与偏好,带 |
| 共同经历与事件,带发生时间与情绪标签 |
| 约定与流程 |
| 助手自身的感受与反思(主观视角) |
混合召回
memory_recall 结合三路证据并在 token 预算内注入:
全文检索(SQLite FTS5);
向量相似(可选,经 embedding;未配置向量端点时自动退回全文检索);
最多三跳的关系图导航(
graph_depth0–3,relation_path只作逐边证据,不作传递事实)。
候选可再经 rerank 与一个"检索审核"模型择优;审核不可用时失败关闭并在返回里标记 degraded。
衰减与保护
记忆连续未被调用一段时间后开始缓慢衰减(默认每 30 天 −1 点),调用即重置保护期;
归零只"尘封"不删除,
memory_restore可恢复并重获保护;memory_pin固定重要记忆。
审核与整理
后台 Worker 承担摘要、向量化、关系/冲突检测、批量润色(enrich),全部由独立模型完成,并对每条产出做二次核对(verify),核对不过则丢弃。
连续性副脑
独立保存"未完轨迹"(有证据的未竟话题)与"近场"(3–7 天自动过期的轻量背景);
潜在联想便签须经独立 judge 二次审核才对主模型可见,且只作联想材料,不能反写事实。主模型对副脑只读。
情绪 / 表达状态(affect)
一个多维、随时间衰减、由证据驱动的"角色表达状态"模型。 它被明确定义为角色表达模型,而非对真实主观意识的测量;状态变化必须有当前用户原文依据,且不会因用户拒绝/离开/改动系统而"惩罚"用户。
日常节律与共读记忆
每日在设定时刻生成"当天印象"日记(
daily_schedule.py,本身不调用主模型);reading_memory.py支持把共读批注按不可变的文档证据 + 独立审核整理为记忆。
目录结构
.
├── README.md
├── LICENSE # MIT
├── requirements.txt # 仅需 Python 3.10+ 标准库
├── .env.example # 全部可配置项
├── docs/
│ └── design.md # 框架设计说明(脱敏)
├── xinhuo/ # 运行时模块
│ ├── memory_core.py # 基础存储与工具函数
│ ├── memory_v2.py # 主记忆存储:召回、写入、衰减、审核
│ ├── memory_models.py # 独立模型客户端(embedding/rerank/chat)
│ ├── memory_worker.py # 后台整理 Worker
│ ├── memory_continuity.py# 连续性副脑
│ ├── memory_diary.py # 每日印象/日记
│ ├── memory_narration.py # 叙述口径归一(可配置示例名)
│ ├── memory_retention.py # 衰减与保护
│ ├── memory_vector_index.py / memory_vector_sync.py # 可选 Qdrant 派生索引
│ ├── affect_core.py # 情绪/表达状态
│ ├── reading_memory.py # 共读记忆
│ ├── server.py # REST + MCP 服务入口
│ ├── daily_schedule.py / patrol.py # 定时任务脚本
│ └── ...
└── tests/ # 标准库 unittest 用例快速开始
# 1. 准备配置
cp .env.example .env
# 编辑 .env:填入你的模型端点与密钥;设置数据目录与访问令牌。
# 2. 加载环境变量并启动服务(默认监听 127.0.0.1:18200)
set -a && . ./.env && set +a
mkdir -p ./data
python3 xinhuo/server.py
# 3. 另开进程运行后台整理 Worker
MEMORY_WORKER_MODE=scheduler python3 xinhuo/memory_worker.py
# 4. (可选)定时任务
python3 xinhuo/daily_schedule.py # 生成当天印象(按需由 cron 触发)
python3 xinhuo/patrol.py # 只读完整性巡检
python3 xinhuo/memory_vector_sync.py # 若启用 Qdrant,增量同步向量健康检查:
curl -s http://127.0.0.1:18200/healthMCP 客户端可对 POST /mcp 走标准 JSON-RPC(initialize / tools/list / tools/call),
工具清单见 server.py 中的 TOOLS。
配置说明
所有配置通过环境变量提供,完整清单见 .env.example。关键项:
MEMORY_MODEL_BASE_URL/MEMORY_MODEL_API_KEY:OpenAI 兼容模型端点与密钥(必填,否则模型相关能力不可用)。MEMORY_DB/MEMORY_ARCHIVE_DIR/MEMORY_ROOT:数据与归档路径。MEMORY_TOKEN/AFFECT_WAKE_TOKEN/MEMORY_CONTINUITY_REVIEW_TOKEN:接口访问令牌;留空表示不校验,对外暴露时务必设置。MEMORY_VECTOR_URL等:可选 Qdrant 只读向量索引;留空即禁用。
测试
PYTHONPATH=xinhuo python3 -m unittest discover -s tests说明:
tests/中大多数用例可离线运行。当前快照里test_memory_v2.py有 2 个与 具体召回配置相关的用例未通过,这源自开源快照中代码与用例的版本差异,已在SANITIZATION-REPORT.md中如实记录。
许可
MIT License,详见 LICENSE。Copyright (c) 2026 Ykumi。
This server cannot be deployed
Maintenance
Related MCP Connectors
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
- memnodeOAuthdev.memnode
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Governed personal world model and memory for your AI agent. Pair once, connect over MCP.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides a local, persistent long-term memory service for MCP-compatible AI agents, enabling them to store, search, and recall information across sessions.1GPL 3.0
- AlicenseNot gradedqualityFmaintenancePersonal AI cognitive exobrain server providing long-term, emotionally-tagged memory and task management for LLMs via MCP.1MIT
- AlicenseCqualityAmaintenanceProvides AI agents with a human-inspired memory layer via MCP, enabling episodic and semantic memory recall, forgetting curves, consolidation, and contradiction detection. It integrates with MCP clients to offer local-first, dependency-free memory management.981MIT
- AlicenseCqualityAmaintenanceLocal-first, governable long-term memory for AI agents. Provides SQLite-backed storage, cross-session recall, and traceable memory corrections through a standard MCP interface.4055 PyPI1MIT