通用自我反思記憶系統:爲 AI 代理設計的三級本地記憶

前言

長期用 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜