AI Agent 的记忆系统通常只解决一个问题:「记住」。gbrain 存知识图谱,Hindsight 存向量,Memory tool 存偏好。三个仓库堆满数据,但你问 Agent「我上周看的那篇关于 Agent memory 的文章说了什么?」——它答不上来。不是因为记不住,是因为它的记忆系统没有「采集」这一层。
这就是 Knowledge-and-Memory-Management(KMM)的定位:不是另一个记忆数据库,而是一个 知识采集 → 精炼 → 召回 → 同步 的全链路插件。v0.0.2 把这条链路做完了。
架构思路:把「采集」和「记忆」解耦
KMM 不做记忆存储,它只做三件事:
- 采集 — 从 40+ 工具把原始知识拉进来
- 精炼 — 把原始材料变成结构化笔记 + 知识图谱节点
- 同步 — 写 OneDrive,让所有设备共享同一个知识池
下方是三层采集管线示意:
| 层 | 工具数 | 代表工具 |
|---|---|---|
| 网页 | 9 | Scrapling (CF 绕过)、Chrome DevTools Protocol、GStack Browser |
| 视频 | 12 | 抖音批量转录、yt-dlp、Whisper ASR (99 语种) |
| 文档 | 9 | SenseNova PDF/PPT/Word 引擎、MinerU、book_cache (710+ 本) |
3 层召回:不让任何一条知识掉队
搜索时先查本地 FTS5(毫秒级),没命中就走 Hindsight 向量(语义近似),再不中就落 gbrain 知识图谱(关联推理)。三层兜底,基本不存在「查不到」的情况。
代码片段:rclone 做云盘双向同步
KMM 的 CloudSyncEngine 不造轮子,直接用 rclone 做统一同步层。核心代码很直白:
class CloudSyncEngine:
def __init__(self):
self._check_rclone()
def _check_rclone(self):
result = subprocess.run(["rclone", "version"],
capture_output=True, text=True)
if result.returncode != 0:
raise RuntimeError("rclone not installed")
def bidirectional_sync(self, local_path, remote_path):
"""双向增量同步,每 4h 自动执行"""
cmd = ["rclone", "bisync", local_path,
remote_path, "--resync"]
return subprocess.run(cmd)
这没什么黑科技,关键是架构决策:用 rclone 支持 12+ 云盘(OneDrive / 阿里云盘 / 百度云盘 / Dropbox / Mega / 天翼云等),不需要为每个云盘写专属 SDK。一份配置,双向同步,cron 每 4 小时自动执行。
一个完整的采集流
用户丢过来一个抖音视频链接 → collect_video() 自动走三条线并行:yt-dlp 下音频 → Whisper ASR 转文字 → PaddleOCR/EasyOCR 提关键帧文字。输出汇总后 → generate_note() 写结构化笔记 → create_note() 入 gbrain 知识图谱 → sync_to_cloud() 推 OneDrive。全自动,零人工参与。
踩过的坑
- 不要用 Python 重写云盘同步。KMM v0.0.1 试过直接调各云盘 REST API,token 刷新、分片上传、断点续传全要自己处理,维护成本极高。v0.0.2 切到 rclone bisync 后问题归零。
- 视频分析不只看语音。抖音很多技术号用字幕 + PPT 画面讲内容,语音只占信息量的 60%。必须 OCR 做画面补充,否则丢失大量知识。
- 去重不做在采集层。采集层只管拉,去重交给 gbrain 的 content_hash 和 nightly_maintenance 的 orphan compaction,职责分离更干净。
适用场景
如果你的 AI Agent 已经跑了一段时间,积累了几千条笔记 / 几百个知识图谱节点,但你还是觉得「它好像什么都不懂」——问题很可能出在知识摄入链路上。KMM 适合你已经有一套记忆系统,缺的是一个自动化的知识采集和同步层。
仓库:github.com/mage0535/Knowledge-and-Management,MIT 协议,PR welcome。
Top comments (0)