Self-Improving with Reflection - 技术分析文档
概述
self-improving-with-reflection 是一个零依赖的自改进 Agent 技能,通过本地文件系统实现持久化记忆和自我反思机制。该技能允许 Agent 从用户修正和自身反思中学习,持续优化执行质量。
版本 : 1.2.11
核心特性: 零依赖、分层记忆、自动学习、自我反思
架构设计
1. 三层记忆架构
./self-improving/
├── memory.md # HOT Tier: ≤100 行,启动时始终加载
├── index.md # 记忆索引,记录各文件状态
├── corrections.md # 修正日志,记录最近 50 次修正
├── projects/ # WARM Tier: 项目特定知识
├── domains/ # WARM Tier: 领域特定知识
└── archive/ # COLD Tier: 归档的旧知识
HOT Tier (memory.md)
- 容量限制: ≤100 行
- 加载策略: 每次启动自动加载
- 内容类型: 已确认的偏好、活跃模式、近期修正
- 更新频率: 高(每次修正后)
WARM Tier (projects/, domains/)
- 容量限制: ≤200 行/文件
- 加载策略: 按需加载(上下文匹配时)
- 内容类型: 领域知识、项目规则
- 更新频率: 中(模式确认 3 次后)
COLD Tier (archive/)
- 容量限制: 无限制
- 加载策略: 显式查询时加载
- 内容类型: 过时模式、历史修正
- 更新频率: 低(90 天未用自动归档)
2. 命名空间继承机制
global (memory.md)
↓
domain (domains/*.md)
↓
project (projects/*.md)
优先级规则:
- 最具体命名空间优先 (project > domain > global)
- 同级别时最近修改优先
- 冲突时向用户确认
核心机制
1. 修正检测 (Correction Detection)
触发信号:
regex
"No, that's not right..."
"Actually, it should be..."
"You're wrong about..."
"I prefer X, not Y"
"Remember that I always..."
"I told you before..."
"Stop doing X"
"Why do you keep..."
处理流程:
- 检测到修正信号 → 记录到
corrections.md - 评估是否为可复用模式
- 3 次相同模式 → 确认并提升到 HOT
- 写入对应命名空间文件
2. 自我反思 (Self-Reflection)
触发时机:
- 完成多步骤任务后
- 收到反馈(正面或负面)
- 修复 bug 或错误后
- 发现输出可优化时
反思模板:
markdown
CONTEXT: [任务类型]
REFLECTION: [观察到的问题]
LESSON: [下次改进方法]
示例:
markdown
CONTEXT: Building Flutter UI
REFLECTION: Spacing looked off, had to redo
LESSON: Check visual spacing before showing user
3. 生命周期管理
| 状态 | 触发条件 | 操作 |
|---|---|---|
| HOT | 确认 3 次 + 7 天内重复使用 | 始终加载 |
| WARM | 30 天未使用 | 按需加载 |
| COLD | 90 天未使用 | 归档 |
自动维护:
- 每周压缩:合并相似修正、总结冗长条目
- 自动归档:检测未使用模式
- 索引更新:维护
index.md
实现细节
1. 文件存储格式
memory.md 结构
markdown
# Self-Improving Memory
## Confirmed Preferences
<!-- 用户确认的偏好,永不衰减 -->
## Active Patterns
<!-- 观察 3+ 次的模式,可能衰减 -->
## Recent (last 7 days)
<!-- 待确认的新修正 -->
corrections.md 结构
markdown
# Corrections Log
## YYYY-MM-DD
- [HH:MM] Changed X → Y
Type: format|technical|communication|project
Context: 修正发生的位置
Confirmed: pending (N/3) | yes | no
index.md 结构
markdown
# Memory Index
## HOT
- memory.md: X lines
## WARM
- projects/: X files
- domains/: X files
## COLD
- archive/: X files
Last compaction: YYYY-MM-DD
2. 记忆统计 (Memory Stats)
命令 : memory stats
输出格式:
📊 Self-Improving Memory
🔥 HOT (always loaded):
memory.md: X entries
🌡️ WARM (load on demand):
projects/: X files
domains/: X files
❄️ COLD (archived):
archive/: X files
⚙️ Mode: Passive
3. 快速查询 (Quick Queries)
| 用户指令 | 执行操作 |
|---|---|
| "What do you know about X?" | 搜索所有层级 |
| "What have you learned?" | 显示 corrections.md 最近 10 条 |
| "Show my patterns" | 显示 memory.md (HOT) |
| "Show [project] patterns" | 加载 projects/{name}.md |
| "What's in warm storage?" | 列出 projects/ + domains/ |
| "Memory stats" | 显示各层级统计 |
| "Forget X" | 从所有层级删除 X(需确认) |
| "Export memory" | ZIP 所有文件 |
集成指南
1. SOUL.md 集成
在 SOUL.md 中添加:
markdown
## Self-Improving
Compounding execution quality is part of the job.
Before non-trivial work, load `./self-improving/memory.md` and only the smallest relevant domain or project files.
After corrections, failed attempts, or reusable lessons, write one concise entry to the correct self-improving file immediately.
Prefer learned rules when relevant, but keep self-inferred rules revisable.
Do not skip retrieval just because the task feels familiar.
2. AGENTS.md 集成
在 AGENTS.md 的 ## Memory 部分添加:
markdown
- **Self-improving:** `./self-improving/` (via `self-improving` skill) --- execution-improvement memory (preferences, workflows, style patterns, what improved/worsened outcomes)
Use `memory/YYYY-MM-DD.md` and `MEMORY.md` for factual continuity (events, context, decisions).
Use `./self-improving/` for compounding execution quality across tasks.
在 ### 📝 Write It Down 部分添加:
markdown
- When someone says "remember this" → if it's factual context/event, update `memory/YYYY-MM-DD.md`; if it's a correction, preference, workflow/style choice, or performance lesson, log it in `./self-improving/`
- Explicit user correction → append to `./self-improving/corrections.md` immediately
- Reusable global rule or preference → append to `./self-improving/memory.md`
- Domain-specific lesson → append to `./self-improving/domains/<domain>.md`
- Project-only override → append to `./self-improving/projects/<project>.md`
3. HEARTBEAT.md 集成
在 HEARTBEAT.md 中添加:
markdown
## Self-Improving Check
- [ ] Review corrections.md for patterns ready to graduate
- [ ] Check memory.md line count (should be ≤100)
- [ ] Archive patterns unused >90 days
安全边界
禁止存储的内容
- 🔒 凭证和 API 密钥
- 🔒 财务信息
- 🔒 医疗数据
- 🔒 第三方个人信息
- 🔒 位置模式
透明性要求
- 每项记忆标注来源
- 支持审计和导出
- Kill Switch:
forget everything完整清除
与竞品对比
| 特性 | self-improving-with-reflection | openclaw-memory |
|---|---|---|
| 依赖 | 零依赖(纯文件系统) | 可能有外部依赖 |
| 架构 | 三层记忆(HOT/WARM/COLD) | 架构不清晰 |
| 学习 | 显式修正 + 自我反思 | 仅显式修正 |
| 透明性 | 人类可读 Markdown | 可能二进制格式 |
| 可维护性 | 手动编辑 + 自动维护 | 依赖工具 |
| 命名空间 | global → domain → project | 单一命名空间 |
实际使用建议
1. 启动流程
bash
# 1. 检查目录结构
ls -la ./self-improving/
# 2. 查看记忆索引
cat ./self-improving/index.md
# 3. 加载 HOT 记忆
cat ./self-improving/memory.md
# 4. 列出可用文件
for d in ./self-improving/domains ./self-improving/projects; do
[ -d "$d" ] && find "$d" -maxdepth 1 -type f -name "*.md"
done | sort
2. 工作流
非 trivial 任务前:
- 读取
memory.md - 列出相关领域/项目文件
- 读取最多 3 个匹配文件
- 执行任务
- 记录修正到
corrections.md - 评估是否提升到 HOT
收到修正后:
- 立即记录到
corrections.md - 判断是否为可复用模式
- 3 次确认后提升到 HOT
- 更新
index.md
定期维护:
- 检查 memory.md 行数(≤100)
- 合并相似修正
- 归档 90 天未用模式
- 压缩冗余条目
技术优势
1. 零依赖架构
- 无需数据库
- 无需网络请求
- 无需外部运行时
- 纯 Markdown 文件,人类可读可编辑
2. 分层记忆
- HOT: 启动时始终加载(≤100 行)
- WARM: 按需加载(≤200 行/文件)
- COLD: 显式查询加载(无限制)
3. 自动维护
- 每周压缩
- 自动归档
- 索引更新
- 生命周期管理
4. 高透明性
- 每项数据标注来源
- 支持审计和导出
- 人类可编辑
- Kill Switch 完整清除
扩展方向
1. 相关技能
memory- Agent 长期记忆模式learning- 自适应教学和解释decide- 自动学习决策模式escalate- 何时询问 vs 自主行动
2. 未来改进
- 支持更多文件格式(JSON, YAML)
- 增量更新机制
- 冲突解决自动化
- 记忆推荐系统
总结
self-improving-with-reflection 通过零依赖的分层记忆架构,实现了 Agent 的持续自我改进。其核心优势在于:
- 零依赖: 纯文件系统,无需外部组件
- 分层记忆: HOT/WARM/COLD 三级架构
- 自动学习: 显式修正 + 自我反思
- 高透明: 人类可读,支持审计
- 生命周期管理: 自动归档和压缩
该技能适合需要长期记忆和自我改进的 Agent 系统,特别适用于个人助手、开发辅助等场景。
文档版本 : 1.0
最后更新 : 2026-04-26
维护者: TeddyBear