前言¶
长期用 AI 写代码或做任务时,常见问题是:同一句纠正要说很多遍,代理却不把偏好沉淀下来;或者把各种「记忆」堆进一个大文件,上下文越来越满,却分不清哪些是事实、哪些是工作习惯。下面介绍 SkillHub 社区技能 @user_6bedba2d/memorypor(包内标识 self-improving,v2.1.0)。它把纠错、自我反思和重复模式观察写成一套本地文件协议,用热/温/冷三层存储管理,并约定与 AGENTS.md、CLAUDE.md、HEARTBEAT.md 的集成方式,面向各类 Agent 运行时复用同一套 SKILL.md 工作流。
这是什么¶
一句话定位:通用自我反思、自我批评与自我学习记忆系统,数据落在用户主目录 ~/self-improving/,不依赖 API Key(SkillHub 标签 requires_api_key=false)。
维护与发布:SkillHub 坐标 @user_6bedba2d/memorypor,来源为 community,分类 ai-agent,发布者 user_6bedba2d。页面统计(以 SkillHub 抓取为准):评分 100000,下载 1712 次,安装计数 0。
它解决的是「执行质量」层面的持续改进——偏好、纠错、工作流模式——并与事实型长期记忆(如 MEMORY.md、按日笔记)在文档中明确分工,避免混在一处。
核心功能¶
以下能力均来自技能包 SKILL.md 与配套文档,已核实。
三级存储(热 / 温 / 冷)¶
记忆根目录默认为 ~/self-improving/。若目录不存在,按 setup.md 或 scripts/setup.sh 初始化。
~/self-improving/
├── memory.md # 热层:≤200 行(高频配置可更高),始终加载
├── corrections.md # 纠错与教训主日志
├── corrections-pending.md # 溢出待处理区(14 天观察期)
├── index.md # 主题索引
├── heartbeat-state.md # 心跳维护状态
├── config.json # 容量与层级配置
├── projects/ # 温层:按项目
├── domains/ # 温层:按领域
└── archive/ # 冷层:归档
| 层级 | 位置 | 典型限制 | 加载策略 |
|---|---|---|---|
| 热层 | memory.md |
≤200 行(高频档 ≤400 行) | 非平凡任务前读取 |
| 温层 | projects/、domains/ |
单文件 ≤500 行 | 按上下文匹配,最多少量文件 |
| 冷层 | archive/ |
无硬性上限 | 仅在明确查询时加载 |
学习信号与晋升¶
代理在识别到用户纠错、明确偏好或重复模式时写入对应文件;一次性指令、纯上下文限定和假设性讨论不记录。同一模式出现 3 次后,技能要求向用户确认,确认后再晋升到热层 memory.md,而不是静默写入永久规则。
自我反思在重要任务结束后按固定字段记录(上下文 / 反思 / 教训),必要时进入 corrections.md 并参与计数。
维护与运维¶
- 心跳规则:
heartbeat-rules.md,可执行脚本scripts/heartbeat.sh。 - 统计:
scripts/stats.sh;用户说「记忆统计」时按SKILL.md模板汇报各层计数。 - 导出 / 导入:
scripts/export.sh、scripts/import.sh。 - 安全边界:见
boundaries.md,不存储凭据等敏感类信息;技能声明不发起网络请求、不读取~/self-improving/外文件。
与用户对话的快捷映射¶
技能在 SKILL.md 中定义了常见口令,例如「你学到了什么?」→ 展示 corrections.md 最近条目;「显示我的模式」→ 热层 memory.md;「导出记忆」→ 打包全部文件。
安装与启用¶
通过 SkillHub 安装技能包¶
官方页面要求代理按 SkillHub 安装文档操作,并安装坐标 @user_6bedba2d/memorypor。通用流程如下。
1、确认已安装 skillhub CLI(未安装时按 SkillHub 安装文档 执行 curl 安装脚本)。
2、将技能安装到当前 Agent 的 skills 目录(必须用 --dir,否则默认 ./skills/ 可能不被识别):
skillhub install @user_6bedba2d/memorypor --dir <你的 Agent skills 目录>
常用路径(来自同一安装文档):
- Cursor:
~/.cursor/skills/ - Claude Code:
~/.claude/skills/ - Codex:
~/.codex/skills/或项目下.agents/skills/
安装完成后需按你所用客户端要求重启或刷新技能列表。
初始化本地记忆目录¶
技能逻辑依赖 ~/self-improving/,与技能包安装位置无关。在已解压的技能目录中执行:
bash scripts/setup.sh --tier normal
--tier 可选 low、normal(默认)、high、heavy,对应 setup.md 中对 corrections.md、memory.md 容量与维护周期的不同预设。
手动方式等价于创建目录并复制 templates/ 下模板到 ~/self-improving/,详见包内 setup.md。
工作区集成¶
按 setup.md 将自我改进指引追加到 AGENTS.md、CLAUDE.md,并把 HEARTBEAT.md 与 heartbeat-rules.md 对齐,以便周期维护路由到 heartbeat-state.md。文档强调:更新 AGENTS.md 的 Memory 小节时应补充而非整段替换,以免覆盖既有连续性配置。
典型用法¶
记录用户纠错并晋升¶
场景来自包内 README.md 与 SKILL.md 说明,可复现逻辑如下。
1、用户说:「不,那不对。总是使用 2 个空格缩进。」→ 写入 corrections.md,计数 1/3。
2、用户再次强调缩进规则 → 计数 2/3。
3、第三次同类纠正 → 代理询问是否固化为永久规则;用户确认后写入热层 memory.md,并从纠错日志中按流程引用来源。
任务结束后的自我反思¶
SKILL.md 给出的记录格式:
上下文(CONTEXT):构建Flutter UI
反思(REFLECTION):间距看起来不对,不得不重做
教训(LESSON):展示给用户前检查视觉间距
非平凡任务前加载记忆¶
setup.md 建议在任务开始前读取 ~/self-improving/memory.md,再按任务匹配最多 3 个 domains/ 文件及必要时的一个 projects/<name>.md,避免为保险起见加载全部温层文件。
查看运行状态¶
在技能目录执行:
bash scripts/stats.sh
用于查看热层行数占用、温层项目/领域文件数及脚本输出的健康状态摘要(具体字段以脚本为准)。
适用场景与注意¶
适合需要跨会话保持工作方式与纠错结果的团队或个人:编码风格、审阅偏好、重复踩坑的教训等。不适合把其当作唯一「事实库」——事件、决策类连续性仍应放在 memory/YYYY-MM-DD.md、MEMORY.md 等第 1 层记忆中,技能 FAQ 也明确二者分工。
使用时需注意:
- 不要从用户沉默中推断规则;技能把「从沉默中学习」列为常见陷阱。
- 晋升热层前必须经用户确认,避免污染始终加载的
memory.md。 - 本地目录
~/self-improving/需自行备份;可用导出脚本做迁移。 - README 中
curl -sL <setup-url>为占位说明,实际应以包内scripts/setup.sh或 SkillHub 安装后的路径为准。
结尾¶
@user_6bedba2d/memorypor 把纠错、反思和模式观察收敛到 ~/self-improving/ 的三层文件结构里,用 SkillHub 标准 SKILL.md 约束 Agent 何时读、何时写、何时问用户确认。若你要在 Cursor 或其他客户端里落地同一套行为,可从 SkillHub 页面安装技能包,再按 setup.md 初始化目录并接入工作区文档。
- SkillHub 页面:https://www.skillhub.cn/skills/user_6bedba2d/memorypor
- 官方坐标入口:https://api.skillhub.cn/user_6bedba2d/memorypor