名称: memory-pipeline
描述: 完整的智能体记忆与性能系统。该系统提取结构化事实、构建知识图谱、生成简报,并通过赛前准备、工具策略、结果压缩和事后复盘来强化执行纪律。支持将外部知识(如 ChatGPT 导出数据)导入可搜索的记忆库。适用于记忆管理、简报生成、知识整合、外部数据导入、智能体一致性维护,以及提升跨会话执行质量。
为你的 AI 智能体赋予真正有效的记忆。
AI 智能体每次会话启动时都一片空白。记忆管道解决了这个问题——它从过往对话中提取关键信息,建立关联,并生成每日简报,让你的智能体每次会话都能有备而来,而非茫然无知。
| 组件 | 运行时机 | 功能描述 |
|---|---|---|
| 提取 | 会话之间 | 从每日笔记和会话记录中提取结构化事实(决策、偏好、学习心得) |
| 关联 | 会话之间 | 构建知识图谱——连接相关事实,标记矛盾之处 |
| 简报 | 会话之间 | 生成简洁的 BRIEFING.md 文件,在会话开始时加载 |
| 导入 | 按需 | 将外部知识(如 ChatGPT 导出数据)导入可搜索的记忆库 |
| 性能钩子 | 会话期间 | 赛前简报注入、工具使用纪律、输出压缩、事后复盘 |
大多数“记忆”方案只是对聊天记录进行向量搜索。这是一个认知架构——灵感来源于人类记忆的实际工作方式:
clawdhub install memory-pipeline
bash skills/memory-pipeline/scripts/setup.sh
设置脚本将检测你的工作空间,检查依赖项(Python 3 及任意 LLM API 密钥),创建 memory/ 目录,并运行完整的管道流程。
OPENAI_API_KEY 或 ~/.config/openai/api_key)ANTHROPIC_API_KEY 或 ~/.config/anthropic/api_key)GEMINI_API_KEY 或 ~/.config/gemini/api_key)# 完整管道
python3 skills/memory-pipeline/scripts/memory-extract.py
python3 skills/memory-pipeline/scripts/memory-link.py
python3 skills/memory-pipeline/scripts/memory-briefing.py
添加到你的 HEARTBEAT.md 以实现每日自动运行:
### 每日记忆管道
- **频率:** 每日一次(早晨)
- **操作:** 运行记忆管道:
1. `python3 skills/memory-pipeline/scripts/memory-extract.py`
2. `python3 skills/memory-pipeline/scripts/memory-link.py`
3. `python3 skills/memory-pipeline/scripts/memory-briefing.py`
已经在 ChatGPT 中积累了多年的对话?将它们导入,让你的智能体了解你所知的一切。
# 1. 从 ChatGPT 导出:设置 → 数据控制 → 导出数据
# 2. 将 zip 文件放入你的工作空间
# 3. 运行:
python3 skills/memory-pipeline/scripts/ingest-chatgpt.py ~/imports/chatgpt-export.zip
# 建议先预览(推荐):
python3 skills/memory-pipeline/scripts/ingest-chatgpt.py ~/imports/chatgpt-export.zip --dry-run
功能说明:
- 解析 ChatGPT 的对话树格式
- 过滤掉一次性对话(可配置:--min-turns, --min-length)
- 支持主题排除(编辑 EXCLUDE_PATTERNS 以跳过不需要的主题)
- 输出干净、带日期的 Markdown 文件到 memory/knowledge/chatgpt/
- 文件会自动被 OpenClaw 的语义搜索索引
选项:
- --dry-run —— 预览而不写入文件
- --keep-all —— 跳过所有过滤
- --min-turns N —— 保留对话所需的最少用户消息数(默认:2)
- --min-length N —— 最少总字符数(默认:200)
该模式是可扩展的。创建 ingest-<source>.py,解析格式,将 Markdown 写入 memory/knowledge/<source>/。索引器会处理其余部分。
脚本: memory-extract.py
读取每日笔记(memory/YYYY-MM-DD.md)和会话记录,然后使用 LLM 提取结构化事实:
{"type": "decision", "content": "后端使用 Rust", "subject": "项目架构", "confidence": 0.9}
{"type": "preference", "content": "偏好 Google Drive 而非 Notion", "subject": "工具", "confidence": 0.95}
输出: memory/extracted.jsonl
脚本: memory-link.py
获取提取的事实并构建知识图谱:
- 生成用于语义相似度的嵌入向量
- 在相关事实之间创建双向链接
- 检测矛盾并标记被取代的事实
- 自动生成领域标签
输出: memory/knowledge-graph.json + memory/knowledge-summary.md
脚本: memory-briefing.py
生成简洁的每日简报(< 2000 字符),整合以下内容:
- 个性特征(来自 SOUL.md)
- 用户上下文(来自 USER.md)
- 活跃项目和近期决策
- 待办事项
输出: BRIEFING.md(工作空间根目录)
四个生命周期钩子,用于在会话期间强化执行纪律。基于绩效心理学的一个原则:将准备与执行分离。
用户消息 → 智能体循环
├── before_agent_start → 简报包(记忆 + 检查清单)
├── before_tool_call → 策略执行(拒绝列表)
├── tool_result_persist → 输出压缩(防止上下文膨胀)
└── agent_end → 事后复盘(持久化笔记)
{
"enabled": true,
"briefing": {
"maxChars": 6000,
"checklist": [
"用一句话重述任务。",
"列出约束条件和成功标准。",
"仅检索最相关的记忆。",
"当事实重要时,优先使用工具而非猜测。"
],
"memoryFiles": ["memory/IDENTITY.md", "memory/PROJECTS.md"]
},
"tools": {
"deny": ["dangerous_tool"],
"maxToolResultChars": 12000
},
"afterAction": {
"writeMemoryFile": "memory/AFTER_ACTION.md",
"maxBullets": 8
}
}
| 钩子 | 功能描述 |
|---|---|
before_agent_start |
加载记忆文件,构建有界简报包,注入系统提示 |
before_tool_call |
根据拒绝列表检查工具,阻止不安全调用 |
tool_result_persist |
对大型结果进行头部(60%)+ 尾部(30%)压缩 |
agent_end |
将包含所用工具和结果的会话摘要追加到记忆文件 |
| 文件 | 位置 | 用途 |
|---|---|---|
BRIEFING.md |
工作空间根目录 | 每日上下文备忘单 |
extracted.jsonl |
memory/ |
所有提取的事实(仅追加) |
knowledge-graph.json |
memory/ |
包含嵌入和链接的完整图谱 |
knowledge-summary.md |
memory/ |
人类可读的图谱摘要 |
knowledge/chatgpt/*.md |
memory/ |
导入的 ChatGPT 对话 |
memory-extract.py 中的提取提示,以关注不同的事实类型memory-link.py 中的相似度阈值(默认:0.3)ingest-chatgpt.py 中的 EXCLUDE_PATTERNS 以排除主题| 问题 | 解决方法 |
|---|---|
| 未提取到事实 | 检查是否存在每日笔记或会话记录;验证 API 密钥 |
| 关联质量低 | 添加 OpenAI 密钥以使用基于嵌入的相似度;调整阈值 |
| 简报过长 | 减少模板中的事实数量,或让 LLM 生成处理(自动限制在 2000 字符内) |