Install
openclaw skills install safe-self-improvingA privacy-first, consent-based self-improvement skill for AI agents. Captures learnings, errors, best practices with auto-sanitization and duplicate detection. Includes smart skill synthesis — auto-generates new skill drafts from recurring patterns. No hooks, no cross-session, no silent modification. All operations require user confirmation.
openclaw skills install safe-self-improving安全版自我进化技能 — 隐私优先、用户确认制、自动脱敏、智能技能生成
.learnings/ 目录,不上传不外传当用户说以下内容时,执行对应动作:
| 用户说 | 动作 |
|---|---|
| "记录这个教训" / "记下来" | 将当前上下文中的关键信息记录到 .learnings/LEARNINGS.md |
| "记下这个错误" / "记录错误" | 将错误信息记录到 .learnings/ERRORS.md |
| "这是个好方法" / "最佳实践" | 将当前做法记录为最佳实践到 .learnings/LEARNINGS.md |
| "回顾学习记录" / "看看学到了什么" | 读取并总结 .learnings/ 下的所有记录 |
| "优化我的工作流" / "怎么改进" | 基于学习记录提出改进建议(⚠️ 不自动执行!) |
| "评估这次任务" / "打个分" | 对当前任务进行五维评分 |
| "生成技能" / "提炼技能" | 🆕 从高频学习模式中自动生成新 SKILL.md 草案 |
| "导出学习记录" / "打包记录" | 🆕 将 .learnings/ 导出为 JSON/Markdown 归档文件 |
| "学习统计" / "学习趋势" | 🆕 展示学习数据的可视化趋势(领域分布、频率、优先级) |
| "清除学习记录" | 清空 .learnings/ 目录(需二次确认) |
步骤:
<user><secret><ip><email>.learnings/LEARNINGS.md 中是否已有相似条目priority: high,提示用户"这个教训已经出现多次,建议优先处理".learnings/LEARNINGS.mdLEARNINGS.md 条目格式:
## [LRN-YYYYMMDD-NNN] 类别标签
**Logged**: YYYY-MM-DDTHH:mm:ssZ
**Priority**: low | medium | high | critical
**Status**: pending | applied
**Area**: frontend | backend | infra | tests | docs | config | business | general
**Occurrences**: 1
### Summary
一句话总结这个教训
### Context
详细描述发生了什么、为什么重要
### Suggested Action
建议采取的行动(⚠️ 不会自动执行,需用户确认)
### Source
学习来源:用户反馈 / 错误分析 / 自我评估
步骤:
.learnings/ERRORS.mdERRORS.md 条目格式:
## [ERR-YYYYMMDD-NNN] 错误类型
**Logged**: YYYY-MM-DDTHH:mm:ssZ
**Priority**: high
**Status**: pending | resolved
### Summary
错误摘要(一句话)
### Error Message
实际错误信息(脱敏后)
### Context
触发条件、输入参数、环境信息
### Root Cause
根本原因分析
### Fix
修复方案
### Prevention
预防措施(下次如何避免)
步骤:
.learnings/LEARNINGS.md,标记 Status: applied步骤:
.learnings/LEARNINGS.md.learnings/ERRORS.md.learnings/IMPROVEMENTS.md(如存在)步骤:
.learnings/ 下所有记录.learnings/IMPROVEMENTS.md(需用户确认)IMPROVEMENTS.md 条目格式:
## [IMP-YYYYMMDD-NNN] 改进类型
**Logged**: YYYY-MM-DDTHH:mm:ssZ
**Priority**: low | medium | high
**Status**: proposed | accepted | rejected | completed
**Related**: [LRN-XXX] [ERR-XXX]
### Problem
当前存在的问题
### Suggestion
改进建议
### Expected Impact
预期效果
### Effort
实施难度:low | medium | high
评估维度:
| 维度 | 权重 | 评分范围 | 说明 |
|---|---|---|---|
| 完成度 | 30% | 0-100 | 是否达成了用户的目标 |
| 效率 | 20% | 0-100 | 耗时和步骤数是否合理 |
| 质量 | 30% | 0-100 | 输出质量(代码/文档/方案) |
| 满意度 | 20% | 0-100 | 用户是否需要返工 |
评分规则:
总分 = 完成度 × 0.3 + 效率 × 0.2 + 质量 × 0.3 + 满意度 × 0.2
≥ 90: 🌟 优秀 → 自动建议记录为最佳实践
80-89: 👍 良好 → 继续
70-79: ⚠️ 及格 → 建议记录改进点
< 70: ❌ 不及格 → 强烈建议记录错误和改进
评分后询问用户是否要自动记录评估结果。
这是本 Skill 的杀手级功能 — 从你的学习记录中自动发现重复模式,提炼成可复用的技能草案。
步骤:
.learnings/LEARNINGS.md 和 .learnings/ERRORS.md 中的所有条目name:基于模式自动命名(如 docker-deploy-guard)description:从学习记录中提炼的描述.learnings/skill-drafts/ 目录skills/ 目录)clawhub skill publish)技能草案格式:
# 🧬 草案:[自动生成的技能名]
## 来源分析
- 基于 [LRN-XXX] × N 条相关教训
- 基于 [ERR-XXX] × M 条相关错误
- 基于 [LRN-XXX] × K 条最佳实践
## 生成的 SKILL.md
(完整的 SKILL.md 内容,可直接使用)
## 置信度
high / medium / low(基于数据量和一致性)
步骤:
.learnings/ 下所有文件.learnings/export-YYYYMMDD.md(所有记录合并为一个文件).learnings/export-YYYYMMDD.json(可导入其他工具){
"exportDate": "2026-06-16T00:00:00Z",
"stats": { "learnings": 12, "errors": 5, "improvements": 3 },
"learnings": [...],
"errors": [...],
"improvements": [...]
}
步骤:
.learnings/ 目录下的文件,绝不越界[LRN-YYYYMMDD-NNN]在写入任何文件之前,对内容执行以下替换:
| 原始内容 | 替换为 |
|---|---|
/home/username/... / /Users/username/... / C:\Users\xxx\... | /home/<user>/... |
| API Key、Token、密码 | <secret> |
| IP 地址(x.x.x.x) | <ip> |
| 邮箱地址 | <email> |
| 手机号码 | <phone> |
| 身份证号 | <id> |
所有数据仅存储在当前项目目录下的 .learnings/ 文件夹中:
项目根目录/
└── .learnings/ ← 唯一写入目录
├── LEARNINGS.md ← 教训、洞察、最佳实践
├── ERRORS.md ← 错误记录
├── IMPROVEMENTS.md ← 改进建议(按需创建)
├── skill-drafts/ ← 🆕 自动生成的技能草案
│ └── draft-YYYYMMDD-NNN.md
├── export-YYYYMMDD.md ← 🆕 导出的 Markdown 归档
└── export-YYYYMMDD.json ← 🆕 导出的 JSON 结构化数据
| 特性 | 同类自我进化技能 | 🛡️ 本安全版 |
|---|---|---|
| 自动 Hook 执行 | 部分有 | ❌ 无(完全用户触发) |
| 跨会话通信 | 部分有 | ❌ 无 |
| 自动修改系统文件 | 部分有 | ❌ 无(只写 .learnings/) |
| 自动执行改进 | 部分自动写入 | ❌ 建议需用户确认 |
| 敏感信息处理 | 无脱敏 | ✅ 自动脱敏 6 类信息 |
| 重复检测 | 无 | ✅ 关键词匹配 + 出现次数追踪 |
| 智能技能生成 | 无 | ✅ 🆕 从学习模式提炼新技能 |
| 学习记录导出 | 无 | ✅ 🆕 JSON + Markdown 双格式 |
| 学习趋势分析 | 无 | ✅ 🆕 领域热力图 + 解决率 |
| 数据存储位置 | 项目根目录多处 | 仅 .learnings/ 目录 |
用户:我在配置 Nginx 时忘了加分号,导致服务启动失败,记录这个教训
Agent:我来帮你记录这个教训。以下是将要记录的内容:
---
## [LRN-20260615-001] 配置语法
**Logged**: 2026-06-15T15:00:00Z
**Priority**: medium
**Status**: pending
**Area**: config
**Occurrences**: 1
### Summary
Nginx 配置文件缺少分号会导致服务启动失败
### Context
在编辑 nginx.conf 时,漏写了一行末尾的分号,
导致 `nginx -t` 报语法错误,服务无法启动。
浪费了约 15 分钟排查。
### Suggested Action
修改配置文件后,始终先运行 `nginx -t` 验证语法,
再执行 `systemctl reload nginx`。
### Source
用户反馈
---
确认记录吗?
用户:确认
Agent:✅ 已记录到 .learnings/LEARNINGS.md [LRN-20260615-001]
用户:回顾一下学习记录
Agent:📋 学习记录回顾(截至 2026-06-15)
📊 统计:
- 教训/最佳实践:12 条(高优先级 3 条)
- 错误记录:5 条(未解决 2 条)
- 改进建议:3 条(已完成 1 条)
🔥 高频问题(出现 ≥ 3 次):
1. [LRN-20260610-003] 忘记测试就部署 — 出现 4 次
2. [LRN-20260612-001] API 密钥硬编码 — 出现 3 次
⚠️ 未解决的错误:
1. [ERR-20260613-002] Docker 容器偶发 OOM — Priority: high
2. [ERR-20260614-001] Git push 被拒(权限问题) — Priority: medium
建议优先处理高频问题和未解决的高优先级错误。
用户:评估一下这次任务
Agent:📊 任务评估结果
| 维度 | 得分 | 权重 | 加权分 |
|------|------|------|--------|
| 完成度 | 95 | 30% | 28.5 |
| 效率 | 80 | 20% | 16.0 |
| 质量 | 90 | 30% | 27.0 |
| 满意度 | 85 | 20% | 17.0 |
| **总分** | | | **88.5** 👍 良好 |
评语:任务完成度高,质量不错。效率可以提升——中间有一次返工。
是否要记录为最佳实践?
用户:是的
Agent:✅ 已记录到 .learnings/LEARNINGS.md [LRN-20260615-002]
用户:帮我提炼一个技能
Agent:🔍 扫描学习记录... 发现以下模式:
📊 模式分析:
- Docker 相关教训出现 5 次(LRN-003, ERR-001, LRN-007, ERR-004, LRN-012)
- 其中 3 条关于"忘记设置内存限制导致 OOM"
- 2 条关于"容器启动顺序依赖"
🧬 生成技能草案:docker-deploy-guard
---
name: docker-deploy-guard
description: >
Prevents common Docker deployment mistakes by checking memory limits,
startup order, and health checks before running docker-compose up.
---
## 触发条件
当用户执行 docker-compose up / docker run 时触发
## 检查清单
1. ✅ 内存限制是否设置(--memory)
2. ✅ depends_on 是否配置健康检查
3. ✅ 端口映射是否冲突
4. ✅ 环境变量是否从 .env 读取(非硬编码)
## 来源
- [LRN-003] Docker OOM 教训 × 3
- [ERR-001] 容器内存溢出
- [LRN-007] 启动顺序问题
置信度:medium(基于 5 条记录)
---
是否保存此技能草案?
1. 保存到 .learnings/skill-drafts/
2. 保存并安装到 skills/ 目录
3. 跳过
用户:1
Agent:✅ 已保存到 .learnings/skill-drafts/draft-20260616-001.md
💡 下次可以「保存并安装」让这个技能直接生效!