memory-engine
编程智能体自我学习记忆引擎
一个基于 MCP(Model Context Protocol)的自我学习记忆引擎,为编程智能体提供 "感知-反思-沉淀-应用" 四层闭环学习能力。让智能体从错误中学习,越用越强。
架构概览
┌──────────────────────────────────────────────────────┐
│ 编程智能体 │
│ (Claude Code / Cursor / 任何支持 MCP 的智能体) │
└──────────┬───────────────────────┬────────────────────┘
│ MCP Protocol │
┌──────▼──────┐ ┌──────▼──────┐
│ 应用层 │ │ 感知层 │
│ 检索+注入 │ │ 错误捕获 │
└──────┬──────┘ └──────┬──────┘
│ │
┌──────▼──────┐ ┌──────▼──────┐
│ 沉淀层 │ │ 反思层 │
│ 技能+记忆 │◄────────│ 根因分析 │
└──────┬──────┘ └─────────────┘
│
┌──────▼──────┐
│ 存储层 │
│ SQLite+FTS5 │
└─────────────┘Related MCP server: Self-Learning MCP
四层闭环
层 | 职责 | MCP 工具 |
感知层 Observation | 捕获工具执行错误、测试失败、用户纠正、对话信号 |
|
反思层 Reflection | 根因分析,提取可复用经验 |
|
沉淀层 Consolidation | 提炼技能,生成 SKILL.md,维护记忆 |
|
应用层 Application | 检索相关经验,注入任务上下文 |
|
统计 | 查看引擎状态 |
|
安装
# 进入项目目录(替换为你本机的实际路径)
cd memory-engine
# 安装依赖(绕过代理)
pip install --no-proxy -e .
# 或手动安装
pip install --no-proxy mcp[cli] jieba配置 MCP 服务器
ZCode / Claude Code
在 MCP 配置文件中添加:
{
"mcpServers": {
"memory-engine": {
"command": "python",
"args": ["-m", "memory_engine.server"],
"cwd": "<项目根目录的绝对路径>"
}
}
}将
<项目根目录的绝对路径>替换为本机克隆/存放本项目的实际路径(即包含pyproject.toml的目录),例如 Windows 上形如D:/tools/memory-engine,macOS/Linux 上形如/home/user/tools/memory-engine。
Cursor / VS Code
在 .cursor/mcp.json 或 VS Code 的 MCP 设置中添加同样的配置。
独立运行(调试用)
cd memory-engine
python -m memory_engine.server核心工作流
0. 捕获对话信号(感知增强)
vibe coding 过程中,操作者常在对话里留下显式信号——"请注意"、"请记住"等强调指令, 以及因智能体重复犯错产生的埋怨("怎么又……"、"我说过多少次了……")。 这些语句是最高价值的学习素材,应捕获并纳入记忆:
capture_conversation_signals(
conversation_text="用户: 请注意,bat文件必须用ANSI编码
用户: 怎么又是编码问题,我说过多少次了",
auto_record=true
)检测器识别四类信号并按优先级排序:
信号 | 识别示例 | 含义 |
| "怎么又"、"还是不对"、"我说过多少次" | 重复犯错引发的埋怨,说明此前教训未被吸取(最高优先级) |
| "请注意"、"请记住"、"务必"、"千万别" | 用户显式强调的规则 |
| "以后都用"、"我喜欢"、"请默认" | 用户对工作方式的偏好 |
| "无语"、"太慢了"、"浪费时间" | 不满情绪,提示效率/体验问题 |
检测结果自动记录为 conversation_signal 类型观察,反思时使用专门定制的提示词
(推断既往错误 + 提炼为祈使句规则),后续流程与错误反思一致。
1. 记录错误(感知)
当工具执行失败时,智能体调用:
record_observation(
obs_type="tool_error",
tool_name="Bash",
error_message="bat文件执行报错:编码错误",
context="在Windows上创建的bat文件包含中文注释",
tags="encoding,windows,bat"
)2. 反思分析(反思)
获取分析提示词:
get_reflection_prompt(obs_id="abc123")智能体根据返回的提示词分析根因,然后保存结果:
reflect_and_save(
obs_id="abc123",
root_cause="Windows的cmd.exe默认使用系统ANSI编码,UTF-8编码的bat文件会导致中文注释被解析错误",
category="encoding",
lesson="在Windows上创建bat文件时,文件必须使用ANSI/GBK编码,而非UTF-8",
solution="将bat文件保存为ANSI编码,或使用chcp 65001切换代码页",
tags="encoding,windows,bat,cmd",
generalizable=true
)3. 提炼技能(沉淀)
积累足够经验后,检查是否可以提炼技能:
check_consolidation()创建技能:
create_skill(
name="windows-bat-encoding",
description="Windows bat文件中文编码问题的处理方法",
trigger_conditions="创建或编辑.bat文件\n在Windows上运行脚本失败且涉及中文",
steps="将文件保存为ANSI编码\n或使用chcp 65001 + UTF-8 BOM",
caveats="chcp 65001仅在当前cmd会话有效\n某些旧版Windows不支持UTF-8 BOM",
category="encoding"
)4. 检索应用(应用)
开始新任务前,获取相关经验:
get_context(task_description="需要创建一个Windows批处理脚本来部署应用")返回包含相关技能和案例的上下文,直接注入到 prompt 中。
记忆分层
类型 | 说明 | 示例 |
情景记忆 Episodic | 具体的"故事",某次修复的完整记录 | "2024-01-15 修复了XX项目的bat编码问题" |
语义记忆 Semantic | 抽象化的规则和教训 | "Windows上bat文件应使用ANSI编码" |
技能 Skill | 标准化的可执行操作指南 | SKILL.md 文件 |
数据存储
SQLite 数据库 (
data/memories.db):结构化存储,支持 FTS5 全文检索JSONL 日志 (
data/observations.jsonl):原始观察记录的追加日志Markdown 文件 (
data/skills/):生成的技能文档,人类可读,可版本控制
项目结构
memory-engine/
├── 开发思路.md # 设计文档
├── README.md # 本文件
├── pyproject.toml # Python 项目配置
├── requirements.txt # 依赖列表
├── config/
│ └── settings.json # 引擎配置
├── src/memory_engine/
│ ├── __init__.py
│ ├── server.py # MCP 服务器入口(15个工具)
│ ├── models/
│ │ └── schemas.py # 数据模型
│ ├── observation/
│ │ ├── collector.py # 感知层:错误收集器
│ │ └── signal_detector.py # 感知层:对话信号检测器
│ ├── reflection/
│ │ └── analyzer.py # 反思层:根因分析器
│ ├── consolidation/
│ │ ├── memory_store.py # 存储层:SQLite + FTS5
│ │ └── skill_generator.py # 沉淀层:技能生成器
│ └── application/
│ └── retriever.py # 应用层:记忆检索器
├── data/
│ ├── memories.db # SQLite 数据库(运行后生成)
│ ├── observations.jsonl # 观察日志(运行后生成)
│ └── skills/ # 技能 Markdown(运行后生成)
└── tests/
└── test_engine.py # 测试错误类别
encoding | build_error | runtime_error | test_failure | dependency | configuration | platform_specific | performance | security | best_practice | api_usage | preference | communication | other
设计理念
不依赖外部 LLM:反思和技能提炼由调用方(智能体本身)完成,引擎只提供框架和存储
MCP 原生:作为标准 MCP 服务器运行,任何支持 MCP 的智能体都可以直接接入
人机协同:所有记忆和技能都以人类可读的格式存储(Markdown、JSON),便于审查和维护
渐进式学习:从单次错误→情景记忆→语义记忆→技能,层层抽象,逐步提炼
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceHelps AI coding agents remember what they learn across sessions by storing and retrieving atomic learnings, enabling persistent memory for AI tools.111MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to learn from their work by recording tasks, extracting patterns, detecting mistakes, and proactively surfacing insights, all using the agent's own model through a cooperative intelligence pattern.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to store, retrieve, and self-improve procedural memories (lessons learned) based on relevance to the current task, pruning unused memories to reduce context load and prevent repetition of past mistakes.MIT
- AlicenseNot gradedqualityCmaintenanceProvides coding agents with durable, cross-session lessons-learned memory, enforcing that success or failure verdicts can only come from human approval, human correction, or objective metrics—never from the agent itself.Apache 2.0
Related MCP Connectors
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Persistent memory for AI agents — verbatim conversations, searchable by meaning.
Shared debugging memory for AI coding agents
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/top777/memory-engine'
If you have feedback or need assistance with the MCP directory API, please join our Discord server