墨羽记忆 — AI Agent 安全记忆工具包
墨鱼记忆是一个以安全为首要考虑的AI代理记忆层,提供诸如注入检测、PII信息删除和自动上下文管理等功能。它设计得易于使用,只需简单的pip安装且无需配置。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"moyu": {
"args": [
"--from",
"moyu-memory@latest",
"moyu-mcp"
],
"command": "uvx"
}
}
}
服务介绍
您的AI会记住每一次对话。但是——
- 是否有人在向您的记忆中写入垃圾信息?
- 昨天讨论的私密信息是否会泄露到文件中?
- 上下文窗口已满——您是否会丢失重要的内容?
MOYU是一个以安全为先的AI代理记忆层。纯Python实现,一个文件夹即可运行,即插即用。LLM增强功能默认开启;如果没有API密钥,则会静默降级,核心记忆功能仍可正常工作。
安装并开始使用:
pip install moyu-memory
moyu quickstart # 5-minute interactive demo, zero config
使MOYU与众不同的三个特点
- 🛡️ 内置安全 — 注入检测(正则表达式 + 8类LLM防护)、个人身份信息(PII)删除、文件完整性验证、写入突发保护。安全不是附加功能,而是默认设置。
- ⏳ 生命周期自动管理 — 上下文压缩、遗忘曲线、记忆合并 — 全部自动化。当上下文填满时,不再丢失重要信息。
- 🧠 检索+自适应调优 — 语义+关键词+最近性+实体混合搜索,可配置权重。搜索反馈用于
moyu tune,随着时间推移自动调整权重。
🏆 对比
| 维度 | MOYU | Mem0 | Letta | Zep | Cognee |
|---|---|---|---|---|---|
| 安装 | pip, 零配置 | pip + API密钥 | 运行时设置 | 云端简单,自托管复杂 | uv pip安装 |
| 外部依赖 | 存储层无依赖 | LLM API + 向量数据库 | LLM API + 存储 | 自托管需要图数据库 | LLM API |
| 安全 | 注入防御 + PII删除 + 完整性 + 默认零信任 | API密钥 + 合规 | 框架隔离 | 云端SOC2/HIPAA | 租户隔离 |
| 检索 | 语义+BM25+时间+实体,可配置权重 + 自适应调优 | 语义+BM25+实体三重融合 | 代理工具分页 | 时间图 | 图+向量混合 |
| 生命周期 | 压缩/遗忘/合并/场景分类,完全自动 | 仅添加,无遗忘 | 三层,自动分页 | 时间图自动版本控制 | 反馈学习,需要配置 |
| 知识图谱 | 实体提取 + 时间旅行 + 蒸馏 | Pro $249/月 | 间接(外部工具) | 时间图,所有层级 | 核心功能,完全开源 |
| 离线 | 完全离线 | 部分(本地嵌入) | 可自托管 | 仅自托管 | 完全本地 |
总结: MOYU在安全性、离线能力、生命周期管理和可配置检索方面表现出色,而这些领域是其他替代方案很少或没有提供的。根据您的应用场景选择,而不是单纯的功能数量。
🎮 适合谁
- 您的AI代理需要具有真正安全性的持久记忆
- 经常遇到上下文限制,需要自动压缩而不丢失重要内容
- 担心PII泄露 — 不希望电话号码、ID、API密钥等出现在记忆文件中
- 希望零基础设施 — 无需Docker、数据库、注册
🔬 完整功能索引
新用户?请先阅读上面的“使MOYU与众不同的三个特点”部分,然后查看比较表。
🛡️ 防御层 (11)
| # | 功能 | 描述 |
|---|---|---|
| 1 | 内容安全门 | 写入前注入阻止 — 516个正则表达式模式 + 8类LLM复查 |
| 2 | 法医分析 | 检测注入模式、JSON损坏、文件篡改 |
| 3 | 写入突发保护 | >30次写入/60秒 → 回滚 + 5分钟锁定 |
| 4 | 工具调用循环检测 | SHA256指纹 + 全面循环扫描 + 强制终止 |
| 5 | PII删除 | 双语:电话、ID、银行卡、电子邮件、SSN、IP、API密钥 |
| 6 | 密码验证 | 操作前确认 + 三次失败后自动锁定(30分钟) |
| 8 | 内存数字签名 | 每文件的HMAC-SHA256签名+验证+从已签名备份自动恢复。默认禁用,设置MOYU_SIGN_KEY以启用 |
| 9 | 用户隔离与加密(可选) | 每用户目录 + AES-256-GCM 加密 |
| 10 | LLM 安全卫士 | 正则表达式未触及的输入 → LLM 判决(8个类别)。永远不会阻止合法写入 |
| 11 | 访问行为监控 | 读取突发检测(>100次读取/60秒 → 警告)。每次搜索都被跟踪。 |
🧠 内存与检索层 (8) 2 LLM增强
| # | 功能 | 描述 |
|---|---|---|
| 1 | TEMPR 多策略检索 | 语义 + BM25 + 时间加权 + 实体 + 逐步内容(摘要→概览→全文)+ 语义去重,可配置权重 |
| 2 | 搜索重新排序 LLM | LLM 根据语义相关性重新排列候选结果(默认开启,无密钥时降级) |
| 3 | 智能摘要 LLM | LLM 自动精炼写入 —— 去除填充词,保留事实 |
| 4 | FastEmbed 本地嵌入 | 本地ONNX向量化,无需API,自动降级为n-gram |
| 5 | SQLite FTS5 + MD5 去重 | 全文索引 + 内存/批量双重去重 |
| 6 | 搜索反馈收集 | 显式投票 + 隐式引用/更正信号 —— 反馈自适应调整 |
| 7 | 自适应权重调整 | moyu tune —— 从反馈数据中自动优化检索权重 |
| 8 | 自动记忆提取 | 从对话中双通道提取事实:快速规则(27种模式,零token成本)+ LLM(语义边缘情况)。默认在每个moyu命令上启用。 |
📊 知识层 (3) 1 LLM增强
| # | 功能 | 描述 |
|---|---|---|
| 1 | 知识图谱 LLM | 实体抽取 + 时间旅行 + 关系失效 + 实体时间线 + 冲突自动失效 + 提炼 |
| 2 | 工作流知识库 | Markdown索引 + 关键字搜索 |
| 3 | 用户画像 | 从对话中自动提取偏好、习惯、事实 |
⏳ 生命周期层 (5) 3 LLM增强
| # | 功能 | 描述 |
|---|---|---|
| 1 | 上下文感知压缩 + 警告 | 两级压缩,保留原始数据,压缩前自动警告 |
| 2 | 任务地图 | 唤醒时自动生成Mermaid任务图 |
| 3 | 遗忘曲线 LLM | 四道门(安全/访问/场景/LLM语义审查)+ LLM场景分类 |
| 4 | 记忆合并 LLM | 相关记忆通过LLM摘要自动合并,保留原始数据 |
| 5 | 访问热度追踪与衰减 | 每条记忆的热度追踪(HOT/WARM/COLD),每天衰减5% + 搜索时自动衰减,驱动检索优先级 |
🔄 学习与反思 (2)
| # | 功能 | 描述 |
|---|---|---|
| 1 | 从纠正中学习 | 自动检测纠正信号,三次相同 → 永久行为规则 |
| 2 | 自我反思 | 跨时间关联,矛盾检测,话题转移分析 |
🔗 集成层 (6)
| # | 功能 | 描述 |
|---|---|---|
| 1 | 工作记忆 | 独立文件,经受上下文压缩 |
| 2 | 跨会话桥接 | 10轮总结 + 3轮对话 + 状态(主题、决策、待处理)跨会话自动同步。Hermes用户:通过预填充实现零配置。其他代理:在系统提示中添加一行(见下文) |
| 3 | 自动更新 | GitHub版本检查 + TOFU校验和 + 原地更新 |
| 4 | 唤醒编排 | 检查→备份→遗忘→合并→反思→上下文→桥接 —— 完全自动 |
| 5 | 记忆注入 | moyu inject —— 带有内置上下文警告的标准注入 |
| 6 | 防御日志 | 所有防御事件统一到defense_log.md —— 签名失败、内容阻塞、PII删除、突发回滚、循环中断。Hermes用户将收到自动聊天通知。其他用户:在config.yaml中配置defense_log.webhook |
当开始新的对话时,读取~/.moyu/session_state.json并使用其内容从前一个会话的上下文中继续。
🛡️ 安全评估
MOYU的防御链是一个分层威慑,而不是一劳永逸的解决方案。诚实评估:
| 级别 | 威胁 | 覆盖范围 |
|---|---|---|
| 🟢 | 意外误用(手滑、脚本错误) | ~90% |
| 🟢 | 脚本小子注入(已知模式) | ~70% |
| 🟡 | 简单提示注入(标准变体) | ~65% |
| 🟠 | 专业对抗性注入(目标绕过) | ~25% |
| 🟠 | 语义注入(隐喻,无关键词) | ~60%(LLM层) |
| 🟢 | 综合防御 | 1,769个测试案例,15种攻击类别,0%假阳性。运行moyu benchmark --full来重现 |
🚀 快速开始
一行安装:
pip install moyu-memory
5分钟交互式演示:
moyu quickstart
# → Auto-stores sample memories, runs injection attack tests,
# → shows defense chain in action, reports results.
# → Zero config, no API key needed
与您的代理集成:
moyu inject "current conversation topic"
# → Outputs relevant memories (with context warning), ready for System Prompt injection
或者从您的代码中:
from moyu_toolkit.moyu import inject_context
inject_context("current conversation topic") # Auto-search, format, inject
复制工具包(无需pip):
pip install -r requirements.txt
将moyu_toolkit/文件夹复制到您的项目中,然后运行python3 moyu.py。
🔌 MCP集成
MOYU可以用作模型上下文协议 (MCP) 服务器,为任何MCP兼容客户端提供横跨记忆、搜索、防御、知识图谱、知识库、生命周期、反思、学习和诊断等领域的29种工具:Hermes代理、Claude桌面版、Cherry Studio、Kimi、Cursor等。
工作原理: MOYU作为本地stdio子进程运行。客户端按需启动它;没有守护进程,也没有网络端口。
设置
pip install moyu-memory
然后在您的MCP客户端配置中添加以下内容:
{
"mcpServers": {
"moyu": {
"command": "uvx",
"args": ["--from", "moyu-memory@latest", "moyu-mcp"]
}
}
}
或者直接使用Python入口点:python3 -m moyu_toolkit.mcp_server
可用工具
| 工具 | 描述 |
|---|---|
search_memory |
TEMPR语义+关键字+最近+实体混合搜索 |
add_memory |
存储记忆,自动去重并进行内容安全检查 |
get_memory |
通过ID检索带有完整内容的单一记忆 |
list_memories |
分页列出所有记忆(最新优先) |
memory_stats |
记忆统计:数量、存储大小、嵌入状态 |
heat_rank |
热度排名——哪些记忆是热、温或冷 |
defense_scan |
内容安全扫描——注入检测 |
forensic_scan |
法医分析——注入模式、JSON损坏、篡改 |
integrity_check |
验证所有管理文件的SHA256校验和 |
pii_redact |
删除PII——电话、身份证、银行卡、电子邮件、IP、API密钥 |
guard_status |
写入突发保护状态和锁定状态 |
defense_log |
最近的安全事件——阻止、删除、回滚 |
signature_status |
HMAC-SHA256记忆签名状态和验证 |
kg_search |
知识图谱搜索——实体和关系 |
kg_entity_history |
特定实体的完整时间线历史 |
kg_stats |
知识图谱统计——实体、关系、场景 |
kb_search |
知识库搜索——索引Markdown文件 |
kb_list |
列出知识库中的所有文件 |
kb_read |
按名称读取知识库文件 |
forget_run |
运行遗忘曲线降级周期 |
forget_protect |
保护记忆不被遗忘 |
forget_unprotect |
移除记忆的保护 |
forget_stats |
遗忘曲线——受保护的数量、层级分布 |
merge_run |
运行记忆合并周期(支持干运行) |
reflect |
自我反思——矛盾、联系、话题转换 |
detect_signals |
在文本中检测用户纠正信号 |
learner_status |
学习行为规则和纠正统计 |
active_context |
活动上下文——当前任务、工作记忆状态 |
📋 命令参考
防御与安全
moyu setup moyu verify moyu unlock moyu check moyu audit moyu init moyu rules list moyu rules remove <pattern> moyu rules whitelist <pattern> moyu protect
moyu benchmark moyu demo-attack moyu doctor moyu mutate moyu frequency stats moyu frequency unlock <name>
内存与检索
moyu search <query> moyu search --vote <id> good|bad moyu search --ns <ns>
moyu inject <query> moyu config show moyu config set retrieval.weights.<dim> <val>
moyu tune / --dry-run / --reset moyu stats moyu status
moyu extract <text> moyu extract stats moyu memory detail <id> moyu memory heat-recalc
知识层
moyu kg search <entity> moyu kg history <entity> moyu kb search <keyword>
生命周期与上下文
moyu compress moyu context moyu forget moyu lifecycle moyu ref <name> moyu snapshot
学习与维护
moyu learn <text> moyu detect <text> moyu signals moyu quickstart moyu demo moyu reflect moyu setup agents moyu update
会话与桥接
moyu session state moyu session prompt
moyu session decision <text> moyu session pending <text> moyu session clear
moyu bridge
📚 文档
- 常见问题与反模式 — 常见陷阱及解决方案
- Python API 集成指南 — 代码示例和集成模式
📁 文件结构
moyu_toolkit/
├── _llm_client.py # Unified LLM client
├── agent_memory.py # Vector memory engine + TEMPR retrieval
├── agent_memory_sqlite.py # SQLite FTS5 search index
├── active_context.py # Working memory
├── context_manager.py # Context compression + warning + task map
├── forgetting_curve.py # Forgetting curve + LLM review
├── memory_merge.py # Memory merge
├── knowledge_graph.py # Entity-relation knowledge graph
├── knowledge_base.py # Workflow knowledge base
├── learner.py # Learn from corrections
├── security.py # Password + lockout
├── feedback.py # Search feedback collection
├── tune.py # Adaptive weight tuning
├── quickstart.py # 5-minute interactive demo
├── moyu.py # CLI entry point
├── moyu_wake.py # Startup pipeline
├── defense_toolkit/
│ ├── integrity_checker.py # File integrity + LLM guard
│ ├── forensic_patterns.json # 516 injection detection patterns
│ └── pii_redactor.py # PII redaction
├── tests/
│ └── test_all.py # Automated tests
├── config.yaml # Configuration
└── requirements.txt
📜 许可证
MIT