从记忆到技能:memsearch如何把你的重复工作流蒸馏成可安装的Agent Skill(程序性记忆)
【免费下载链接】memsearchA persistent, unified memory layer for all your AI agents (e.g. Claude Code, Codex, DSH), backed by Markdown and Milvus.项目地址: https://gitcode.com/gh_mirrors/mem/memsearch
memsearch(MemSearch)是一个为 Claude Code、Codex、DSH 等 AI Agent 提供的跨平台持久记忆层,以 Markdown + Milvus 为底座。除了记住"发生过什么",它还能更进一步:把你反复执行的工作流自动蒸馏成一份可安装的 Agent Skill——这就是它的第三层记忆:程序性记忆(Procedural Memory)。你不需要敲任何命令,用一句自然语言就能让 Agent 把"刚才做的事"变成一份可复用的技能。
🧠 什么是程序性记忆:Agent 记忆的第 3 层
大多数记忆系统只回答两个问题:发生了什么、什么是对的。MemSearch 把记忆分成三层,程序性记忆正是缺失的第三块拼图:
| 层次 | 回答的问题 | 存放位置 |
|---|---|---|
| 情景记忆(Episodic) | 发生了什么? | .memsearch/memory/*.md每日对话日志 |
| 语义记忆(Semantic) | 什么是真的? | .memsearch/PROJECT.md、USER.md持久事实 |
| 程序性记忆(Procedural) | 这件事该怎么做? | .memsearch/skill-candidates/可复用技能候选 |
一个 skill 就是一个标准的SKILL.md文件——一段简短、可复用的操作流程:如何启动应用、如何部署、如何排查某一类错误。它最巧妙的地方不在于文件格式,而在于来源:它来自你自己的记忆。一个你反复重复的工作流,本身就是你已有的程序性知识——MemSearch 只是让它变得显式、可复用,并能在多个 Agent 之间自由迁移。
详见官方文档 Skills from Memory。
⚙️ 三步蒸馏流程:日志 → 候选 → 安装
整个流程可以概括为三个阶段:0 日志 → 1 候选 → 2 安装。
- 记忆日志(0):插件自动把每次对话总结成每日 Markdown 日志,存放在
.memsearch/memory/目录; - 技能候选(1):蒸馏逻辑从日志中挖掘重复出现的多步流程,生成一份"候选技能",存放在
.memsearch/skill-candidates/——这是一个自带 git 版本历史的仓库,每次自动修改都会产生一个可 diff、可回滚的 commit; - 正式安装(2):只有当你确认后,候选技能才会被快照复制到 Agent 的技能目录,变成一个真正的
/斜杠命令。
💡 关键设计:候选技能是"惰性"的。它存放在任何 Agent 都不会读取的目录里,直到一个人亲手安装它,它才会生效。机器只负责提议,人来拍板。
🚀 两条蒸馏路径:按需捕获 vs 后台自动挖掘
MemSearch 提供了两种把记忆变成技能的方式,适配不同场景:
按需捕获:一句话就能"现场抓"技能
完成一次部署或调试后,直接对 Agent 说:
"把刚才我们做的事做成一个 skill。"
Agent 会回读原始会话转录(而不是有损的日志摘要),保证步骤中的命令、路径精确无误,然后把技能草稿存为候选并询问你是否安装。这条路径不需要配置模型、没有重复次数门槛——你开口,就是最强信号。
后台挖掘:让重复的工作流自动"转正"
如果你希望历史经验被持续提炼,可以对 Agent 说:
"开启 MemSearch 技能蒸馏,让它更积极一点。"
后台任务会在会话结束时按节奏运行:当某个工作流在至少 3 个不同会话(默认值min_occurrences)中重复出现时,才会提议生成候选。一次性操作不值得成为技能,重复才是信号。该功能默认关闭,由你主动开启。
🔒 为什么值得信任:5 个关键设计哲学
蒸馏出错误技能的代价很高,MemSearch 用几项刻意为之的立场来守住质量底线(完整论述见 设计哲学章节):
- 重复才是信号:一次性的操作不配成为技能,后台任务会等待多次出现后才提议;
- 人类决定什么"成真":蒸馏只产生候选,激活永远是人的动作——错误的笔记无害,错误且自动触发的技能才是伤害;
- Markdown + git 是事实来源:候选库是一个真正的 git 仓库,历史永不丢失,因此系统可以大胆地改进候选,却不会变得危险;
- 只有"生成"需要模型:把原始历史变成流程需要判断力(这一步用 LLM),而保存候选和安装只是纯文件 + git 操作,边界清晰;
- 精确性来自原始转录:日志是有损摘要,只凭摘要写出的技能"看似合理但可能错误"。两条路径都会通过
memsearch transcript命令回读原始转录(含工具调用),读不到细节时宁可保持笼统,也不编造命令。
🛠️ 快速上手:如何开启与安装(零命令)
1. 开启后台蒸馏
直接对 Agent 说"enable MemSearch skill distillation",它会通过内置的memory-config技能替你完成配置。如果你偏好手动编辑文件,相关配置位于[plugins.<agent>.memory_to_skill]下:
enabled:是否开启后台挖掘(默认false)min_occurrences:需要多少次重复才提议蒸馏(默认 3)paths:预置安装目标目录
2. 审查并安装技能
"我有哪些技能候选?把部署那个装了吧。"
Agent 会列出候选(并附带 git 历史说明它是新建还是进化版),你确认安装目标后执行安装。安装目录按平台区分:
| Agent | 技能目录 |
|---|---|
| Claude Code | .claude/skills/(或~/.claude/skills/) |
| Codex / OpenCode 等 | .agents/skills/(共享标准) |
| OpenClaw | .openclaw/skills/ |
同一个技能可以一次安装到多个目录,覆盖多个 Agent。安装后,重新开启一个 Agent 会话,新技能即可被加载为斜杠命令。
3. 相关源码与文件位置
- 蒸馏核心实现:src/memsearch/skills.py
- 蒸馏提示词模板(定义了什么样的工作流才配成为技能):src/memsearch/prompts/memory_to_skill.txt
- 驱动整个流程的 Agent 技能(自然语言入口):plugins/_shared/skills/memory-to-skill/SKILL.md
- 各平台配置参考:plugins/_shared/skills/memory-to-skill/references/
❓ 常见问题 FAQ
Q:候选技能会偷偷自动安装吗?不会。memory_to_skill技能有严格护栏:不经过你同意,它绝不会启用功能、修改安装路径或安装候选。安装始终是一个交互式检查点。
Q:已安装的技能后续还会更新吗?会。候选库中的技能持续进化,包括你已安装的那些。安装只是取出一个快照;当候选内容哈希与上次安装不一致时,memsearch skills status会提示你有新版本待装——你可以随时先审查 diff 再决定。
Q:技能可以跨 Agent 用吗?可以。蒸馏出的技能遵循 Agent Skills 开放标准(标准 frontmatter 的SKILL.md),一份捕获即可在 Claude Code、Codex、DSH、OpenClaw、OpenCode 等兼容 Agent 之间移植。
📌 总结
MemSearch 把 AI Agent 的记忆从"记住"推进到"学会":
- 三层记忆体系——情景日志、语义事实、程序性技能各司其职;
- 重复即信号——你反复做的事,会被自动提炼成可安装的技能;
- 人在回路——机器提议、人类拍板,git 全程留痕、可回滚;
- 零学习成本——整个交互面就是一段对话。
从今天起,你的每一次重复工作都在为未来的 Agent 积累能力。
【免费下载链接】memsearchA persistent, unified memory layer for all your AI agents (e.g. Claude Code, Codex, DSH), backed by Markdown and Milvus.项目地址: https://gitcode.com/gh_mirrors/mem/memsearch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考