OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  memory-pipeline:完整的智能体记忆与性能表现优化系统

memory-pipeline:完整的智能体记忆与性能表现优化系统

 
  nosql ·  2026-02-26 14:09:36 · 2 次点击  · 0 条评论  

名称: memory-pipeline
描述: 完整的智能体记忆与性能系统。该系统提取结构化事实、构建知识图谱、生成简报,并通过赛前准备、工具策略、结果压缩和事后复盘来强化执行纪律。支持将外部知识(如 ChatGPT 导出数据)导入可搜索的记忆库。适用于记忆管理、简报生成、知识整合、外部数据导入、智能体一致性维护,以及提升跨会话执行质量。


记忆管道

为你的 AI 智能体赋予真正有效的记忆。

AI 智能体每次会话启动时都一片空白。记忆管道解决了这个问题——它从过往对话中提取关键信息,建立关联,并生成每日简报,让你的智能体每次会话都能有备而来,而非茫然无知。

核心功能

组件 运行时机 功能描述
提取 会话之间 从每日笔记和会话记录中提取结构化事实(决策、偏好、学习心得)
关联 会话之间 构建知识图谱——连接相关事实,标记矛盾之处
简报 会话之间 生成简洁的 BRIEFING.md 文件,在会话开始时加载
导入 按需 将外部知识(如 ChatGPT 导出数据)导入可搜索的记忆库
性能钩子 会话期间 赛前简报注入、工具使用纪律、输出压缩、事后复盘

独特之处

大多数“记忆”方案只是对聊天记录进行向量搜索。这是一个认知架构——灵感来源于人类记忆的实际工作方式:

  • 提取而非堆积 —— 不是将所有内容都丢进数据库,而是识别值得记住的内容:决策、偏好、学习心得、承诺。其余皆为噪音。
  • 知识图谱,而非仅是嵌入 —— 事实通过双向关系相互连接。你的智能体不仅能找到相似的文本,更能理解关于技术栈的决策与项目截止日期相关,而后者又与三周前你陈述的偏好相关。
  • 简报而非检索 —— 与其寄希望于在查询时检索到正确的上下文,不如让你的智能体在每次会话开始时都拥有一份精心策划的备忘单。包括进行中的项目、近期决策、个性提醒。实现零冷启动延迟。
  • 避免中途指导 —— 借鉴绩效心理学。纠错发生在会话之间,而非会话之中。事后复盘为下一次简报提供输入。循环是闭合的——只是不在执行过程中进行。

快速开始

安装

clawdhub install memory-pipeline

设置

bash skills/memory-pipeline/scripts/setup.sh

设置脚本将检测你的工作空间,检查依赖项(Python 3 及任意 LLM API 密钥),创建 memory/ 目录,并运行完整的管道流程。

要求

  • Python 3
  • 至少一个 LLM API 密钥(自动检测):
  • OpenAI (OPENAI_API_KEY~/.config/openai/api_key)
  • Anthropic (ANTHROPIC_API_KEY~/.config/anthropic/api_key)
  • Gemini (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 自动化

添加到你的 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 中积累了多年的对话?将它们导入,让你的智能体了解你所知的一切。

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>/。索引器会处理其余部分。

管道工作原理

阶段 1:提取

脚本: 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

阶段 2:关联

脚本: memory-link.py

获取提取的事实并构建知识图谱:
- 生成用于语义相似度的嵌入向量
- 在相关事实之间创建双向链接
- 检测矛盾并标记被取代的事实
- 自动生成领域标签

输出: memory/knowledge-graph.json + memory/knowledge-summary.md

阶段 3:简报

脚本: 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 对话

自定义

  • 更改 LLM 模型 —— 在每个脚本中编辑模型名称(支持 OpenAI、Anthropic、Gemini)
  • 调整提取 —— 修改 memory-extract.py 中的提取提示,以关注不同的事实类型
  • 微调关联敏感度 —— 更改 memory-link.py 中的相似度阈值(默认:0.3)
  • 过滤导入内容 —— 编辑 ingest-chatgpt.py 中的 EXCLUDE_PATTERNS 以排除主题

故障排除

问题 解决方法
未提取到事实 检查是否存在每日笔记或会话记录;验证 API 密钥
关联质量低 添加 OpenAI 密钥以使用基于嵌入的相似度;调整阈值
简报过长 减少模板中的事实数量,或让 LLM 生成处理(自动限制在 2000 字符内)

另请参阅

2 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor