网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

self-improving-agent

2026-03-23 新闻来源:网淘吧 围观:81
电脑广告
手机广告
购买adidas上京东官方旗舰店。

自我提升技能

将学习心得和错误记录到Markdown文件中,以实现持续改进。后续编码代理可以处理这些记录以生成修复方案,重要的学习内容会被提升至项目记忆中。

快速参考

情境操作
命令/操作失败记录至.learnings/ERRORS.md
用户纠正你记录至.learnings/LEARNINGS.md分类为correction
用户需要缺失的功能记录至.learnings/FEATURE_REQUESTS.md
API/外部工具失败记录至.learnings/ERRORS.md附带集成详情
知识已过时记录至.learnings/LEARNINGS.md分类为knowledge_gap
找到了更好的方法记录到.learnings/LEARNINGS.md使用分类最佳实践
简化/固化重复出现的模式记录/更新.learnings/LEARNINGS.md包含来源:简化与固化和一个稳定的模式键
与现有条目类似链接到**另请参阅**,考虑提升优先级
广泛适用的学习成果提升到CLAUDE.mdAGENTS.md和/或.github/copilot-instructions.md
工作流改进提升到AGENTS.md(OpenClaw 工作空间)
工具注意事项提升至TOOLS.md(OpenClaw 工作空间)
行为模式提升至SOUL.md(OpenClaw 工作空间)

OpenClaw 设置 (推荐)

OpenClaw 是此技能的主要平台。它使用基于工作空间的提示注入,并自动加载技能。

上网淘巴领天猫淘宝优惠券,一年省好几千。

安装

通过 ClawdHub (推荐):

clawdhub install self-improving-agent

手动安装:

git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent

根据原始仓库为 openclaw 重构:https://github.com/pskoett/pskoett-ai-skills-https://github.com/pskoett/pskoett-ai-skills/tree/main/skills/self-improvement

工作空间结构

OpenClaw 在每个会话中注入这些文件:

~/.openclaw/workspace/
├── AGENTS.md          # 多智能体工作流,委派模式
├── SOUL.md            # 行为准则,个性,原则
├── TOOLS.md           # 工具能力,集成注意事项
├── MEMORY.md          # 长期记忆 (仅主会话)
├── memory/            # 每日记忆文件
│   └── YYYY-MM-DD.md
└── .learnings/        # 此技能日志文件
    ├── LEARNINGS.md
    ├── ERRORS.md
    └── FEATURE_REQUESTS.md

创建学习文件

mkdir -p ~/.openclaw/workspace/.learnings

然后创建日志文件(或从assets/目录复制):

  • LEARNINGS.md— 更正、知识缺口、最佳实践
  • ERRORS.md— 命令失败、异常
  • FEATURE_REQUESTS.md— 用户请求的功能

推广目标

当学习成果被证明具有广泛适用性时,将其升级为工作区文件:

学习类型推广至示例
行为模式SOUL.md“保持简洁,避免免责声明”
工作流程改进AGENTS.md“为长时任务生成子代理”
工具使用要点TOOLS.md“Git push 需要先配置认证”

会话间通信

OpenClaw提供了在多个会话间分享学习成果的工具:

  • sessions_list— 查看活跃/最近会话
  • sessions_history— 读取其他会话的转录记录
  • sessions_send— 向其他会话发送学习成果
  • sessions_spawn— 生成子代理用于后台工作

可选:启用钩子

用于会话开始时的自动提醒:

# 将钩子复制到OpenClaw钩子目录
cp -r hooks/openclaw ~/.openclaw/hooks/self-improvement

# 启用它
openclaw hooks enable self-improvement

参见references/openclaw-integration.md获取完整详情。


通用设置(其他代理)

对于Claude Code、Codex、Copilot或其他代理,请在项目中创建.learnings/目录:

mkdir -p .learnings

assets/复制模板或创建带标题的文件。

在代理文件AGENTS.md、CLAUDE.md或.github/copilot-instructions.md中添加引用,提醒自己记录学习成果。(这是基于钩子提醒的替代方案)

自我改进工作流程

当出现错误或需要修正时:

  1. 记录到.learnings/ERRORS.mdLEARNINGS.mdFEATURE_REQUESTS.md
  2. 审查并推广具有广泛适用性的学习内容到:
    • CLAUDE.md- 项目事实与约定
    • AGENTS.md- 工作流与自动化
    • .github/copilot-instructions.md- Copilot 上下文

记录格式

学习条目

追加到.learnings/LEARNINGS.md

## [LRN-YYYYMMDD-XXX] 类别

**记录时间**:ISO-8601 时间戳
**优先级**:低 | 中 | 高 | 严重
**状态**:待处理
**领域**:前端 | 后端 | 基础设施 | 测试 | 文档 | 配置

### 摘要
对所获知识的一行描述

### 详情
完整上下文:发生了什么、哪里出错、什么是正确的

### 建议行动
具体的修复或改进措施

### 元数据
- 来源:对话 | 错误 | 用户反馈
- 相关文件:路径/到/文件.扩展名
- 标签:标签1, 标签2
- 另请参阅:LRN-20250110-001(若与现有条目相关)
- 模式键:simplify.dead_code | harden.input_validation(可选,用于跟踪重复出现的模式)
- 出现次数:1(可选)
- 首次出现:2025-01-15(可选)
- 最后出现:2025-01-15(可选)

---

错误条目

追加到.learnings/ERRORS.md

## [ERR-YYYYMMDD-XXX] 技能_或_命令_名称

**记录时间**:ISO-8601 时间戳
**优先级**:高
**状态**:待处理
**领域**:前端 | 后端 | 基础设施 | 测试 | 文档 | 配置

### 摘要
对失败情况的简要描述

### 错误

实际错误信息或输出

### 上下文
- 尝试的命令/操作
- 使用的输入或参数
- 环境详情(如相关)

### 建议的修复方法
如果可识别,可能解决此问题的方法

### 元数据
- 可复现:是 | 否 | 未知
- 相关文件:路径/到/文件.扩展名
- 另请参阅:ERR-20250110-001(如果重复出现)

---

功能请求条目

追加到.learnings/FEATURE_REQUESTS.md

## [FEAT-YYYYMMDD-XXX] 功能名称

**记录时间**:ISO-8601时间戳
**优先级**:中
**状态**:待处理
**领域**:前端 | 后端 | 基础设施 | 测试 | 文档 | 配置

### 请求的功能
用户想要做什么

### 用户上下文
他们为何需要此功能,正在解决什么问题

### 复杂度评估
简单 | 中等 | 复杂

### 建议的实现方式
如何构建,可能扩展什么

### 元数据
- 频率:首次 | 重复出现
- 相关功能:现有功能名称

---

ID 生成

格式:类型-YYYYMMDD-XXX

  • 类型:LRN(学习记录)、ERR(错误)、FEAT(功能)
  • YYYYMMDD:当前日期
  • XXX:顺序号或随机的3个字符(例如,001A7B

示例:LRN-20250115-001,ERR-20250115-A3F,FEAT-20250115-002

解决条目

当一个问题被修复时,更新条目:

  1. **状态**:待处理**状态**:已解决
  2. 在元数据后添加解决方案块:
### 解决方案
- **解决时间**:2025-01-16T09:00:00Z
- **提交/PR**:abc123 或 #42
- **备注**:对所采取措施的简要描述

其他状态值:

  • 进行中- 正在积极处理中
  • 不予修复- 决定不处理(在解决方案备注中添加原因)
  • 已推广- 已提升至 CLAUDE.md、AGENTS.md 或 .github/copilot-instructions.md

推广至项目记忆

当一个学习成果具有广泛适用性(非一次性修复)时,将其提升为永久性的项目记忆。

何时推广

  • 学习成果适用于多个文件/功能
  • 任何贡献者(人或AI)都应了解的知识
  • 防止错误重复发生
  • 记录项目特定规范

推广目标

目标应包含内容
CLAUDE.md面向所有Claude交互的项目实情、规范与注意事项
AGENTS.md智能体专用工作流、工具使用模式、自动化规则
.github/copilot-instructions.md面向GitHub Copilot的项目上下文与规范
SOUL.md行为准则、沟通风格、基本原则(OpenClaw工作区)
TOOLS.md工具能力、使用模式、集成注意事项(OpenClaw工作区)

如何推广

  1. 提炼将学习成果浓缩为简洁的规则或事实
  2. 添加至目标文件的适当章节(如文件不存在则创建)
  3. 更新原始条目:
    • 更改**状态**:待定**状态**:已推广
    • 添加**已推广至**:CLAUDE.mdAGENTS.md --- .github/copilot-instructions.md --- 推广示例 --- 学习 --- (详细说明): --- 项目使用 pnpm 工作区。尝试过 --- npm install --- 但失败了。 锁定文件是 --- pnpm-lock.yaml --- 。必须使用 --- pnpm install --- 。 --- 在 CLAUDE.md 中 --- (简洁说明): --- ## 构建与依赖 - 包管理器:pnpm(不是 npm)- 使用 `pnpm install` --- 学习 --- (详细说明): --- 修改 API 端点时,必须重新生成 TypeScript 客户端。 忘记这一点会导致运行时类型不匹配。 --- 在 AGENTS.md 中 --- (可操作步骤): --- ## API 变更后 1. 重新生成客户端:`pnpm run generate:api` 2. 检查类型错误:`pnpm tsc --noEmit` --- 重复模式检测 --- 如果记录的内容与现有条目类似: --- 先搜索 --- : --- grep -r "keyword" .learnings/AGENTS.md, or.github/copilot-instructions.md

Promotion Examples

Learning(verbose):

Project uses pnpm workspaces. Attemptednpm installbut failed. Lock file ispnpm-lock.yaml. Must usepnpm install.

In CLAUDE.md(concise):

## Build & Dependencies
- Package manager: pnpm (not npm) - use `pnpm install`

Learning(verbose):

When modifying API endpoints, must regenerate TypeScript client. Forgetting this causes type mismatches at runtime.

In AGENTS.md(actionable):

## After API Changes
1. Regenerate client: `pnpm run generate:api`
2. Check for type errors: `pnpm tsc --noEmit`

Recurring Pattern Detection

If logging something similar to an existing entry:

  1. Search first:grep -r "keyword" .learnings/
  2. 链接条目:添加**另请参阅**:ERR-20250110-001到元数据中
  3. 提升优先级如果问题持续出现
  4. 考虑系统性修复:重复出现的问题通常表明:
    • 缺少文档(→ 提升至 CLAUDE.md 或 .github/copilot-instructions.md)
    • 缺少自动化(→ 添加到 AGENTS.md)
    • 架构问题(→ 创建技术债务工单)

简化与强化反馈

使用此工作流从简化与强化技能中提取重复出现的模式,并将其转化为持久的提示指导。

提取工作流

  1. 读取任务摘要中的 `simplify_and_harden.learning_loop.candidates`
  2. 对于每个候选,使用`pattern_key`作为稳定的去重键。
  3. 搜索`.learnings/LEARNINGS.md`中是否存在包含该键的现有条目:
    • `grep -n "Pattern-Key: <pattern_key>" .learnings/LEARNINGS.md`
  4. 如果找到:
    • 递增复发计数
    • 更新上次出现时间
    • 添加另请参见相关条目/任务的链接
  5. 如果未找到:
    • 创建一个新的LRN-...条目
    • 设置来源:简化并加固
    • 设置模式键复发计数:1、以及首次出现时间/上次出现时间

晋升规则(系统提示反馈)

当以下所有条件为真时,将重复出现的模式晋升到代理上下文/系统提示文件中:

  • 复发计数 >= 3
  • 至少在 2 个不同的任务中出现
  • 在 30 天的时间窗口内发生

晋升目标:

  • CLAUDE.md
  • AGENTS.md
  • .github/copilot-instructions.md
  • SOUL.md/TOOLS.md在适用时,用于OpenClaw工作区级别的指导

将提升的规则写成简短的预防性规则(在编码前/编码期间做什么),而不是冗长的事故报告。

定期审查

审查.learnings/在自然的断点处:

何时审查

  • 开始新的主要任务之前
  • 完成一个功能之后
  • 在具有过往经验教训的领域工作时
  • 在活跃开发期间每周进行

快速状态检查

# 统计待处理的项目数量
grep -h "Status\*\*: pending" .learnings/*.md | wc -l

# 列出待处理的高优先级项目
grep -B5 "Priority\*\*: high" .learnings/*.md | grep "^## \["

# 查找特定领域的经验教训
grep -l "Area\*\*: backend" .learnings/*.md

审查操作

  • 解决已修复的项目
  • 提升适用的经验教训
  • 关联相关的条目
  • 上报反复出现的问题

检测触发器

当你注意到以下情况时自动记录:

修正(→ 伴随修正的经验教训)category):

  • “不,这不对……”
  • “实际上,应该是……”
  • “关于……你错了”
  • “这已经过时了……”

功能请求(→ 功能请求):

  • “你还能……”
  • “我希望你能……”
  • “有没有办法……”
  • “为什么你不能……”

知识缺口(→ 学习并记录知识缺口类别):

  • 用户提供了你不知道的信息
  • 你引用的文档已过时
  • API行为与你的理解不符

错误(→ 错误条目):

  • 命令返回非零退出码
  • 异常或堆栈跟踪
  • 意外的输出或行为
  • 超时或连接失败

优先级指南

优先级何时使用
关键阻塞核心功能,存在数据丢失风险,安全问题
影响重大,影响常规工作流程,反复出现的问题
影响中等,存在变通方案
轻微不便,边缘情况,锦上添花型需求

区域标签

用于按代码库区域筛选经验教训:

区域范围
前端用户界面、组件、客户端代码
后端API、服务、服务器端代码
基础设施持续集成/持续部署、部署、Docker、云服务
测试测试文件、测试工具、覆盖率
文档文档、注释、README文件
配置配置文件、环境、设置

最佳实践

  1. 立即记录- 问题刚发生时上下文最清晰
  2. 具体明确- 未来的代理需要快速理解
  3. 包含复现步骤- 特别是针对错误
  4. 链接相关文件- 便于修复
  5. 建议具体的修复方案- 不仅仅是“调查”
  6. 使用一致的分类- 支持筛选
  7. 积极推广- 如有疑问,添加到 CLAUDE.md 或 .github/copilot-instructions.md
  8. 定期回顾- 过时的经验会失去价值

Gitignore 选项

保持经验本地化(针对每个开发者):

.learnings/

在代码库中跟踪经验(团队范围内): 不要添加到 .gitignore - 经验成为共享知识。

混合模式(跟踪模板,忽略条目):

.learnings/*.md
!.learnings/.gitkeep

钩子集成

通过代理钩子启用自动提醒。这是可选的- 你必须明确配置钩子。

快速设置(Claude Code / Codex)

创建.claude/settings.json在你的项目中:

{
  "hooks": {
    "UserPromptSubmit": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "./skills/self-improvement/scripts/activator.sh"
      }]
    }]
  }
}

这会在每个提示后注入一个学习评估提醒(约增加50-100个令牌的开销)。

完整设置(含错误检测)

{
  "hooks": {
    "UserPromptSubmit": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "./skills/self-improvement/scripts/activator.sh"
      }]
    }],
    "PostToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "./skills/self-improvement/scripts/error-detector.sh"
      }]
    }]
  }
}

可用的钩子脚本

脚本钩子类型用途
scripts/activator.shUserPromptSubmit任务后提醒评估学习成果
scripts/error-detector.shPostToolUse (Bash)在命令出错时触发

请参阅references/hooks-setup.md以获取详细的配置和故障排除信息。

自动技能提取

当一项学习经验足够有价值,能够成为可复用的技能时,请使用提供的辅助工具将其提取出来。

技能提取标准

当出现以下**任何**一种情况时,一项学习经验即符合技能提取资格:

标准描述
重复出现包含另请参阅链接到 2 个或更多类似问题
已验证状态为已解决且具有有效的修复方案
非显而易见需要实际调试/调查才能发现
广泛适用非项目特定;在多个代码库中都有用
用户标记用户说"保存为技能"或类似表达

提取工作流

  1. 识别候选内容:学习内容符合提取标准
  2. 运行辅助工具(或手动创建):
    ./skills/self-improvement/scripts/extract-skill.sh 技能名称 --dry-run
    ./skills/self-improvement/scripts/extract-skill.sh 技能名称
  3. 定制SKILL.md文件:用学习内容填充模板
  4. 更新学习记录:将状态设置为已提升为技能,添加技能路径
  5. 验证:在新会话中读取技能以确保其自包含性

手动提取

如果倾向于手动创建:

  1. 创建skills/<技能名称>/SKILL.md
  2. 使用来自assets/SKILL-TEMPLATE.md
  3. 的模板遵循智能体技能规范
    • 包含名称
    • 描述
    • 的YAML前言

名称必须与文件夹名称匹配

技能文件夹内不应有README.md文件

提取检测触发条件

  • 注意以下表明学习内容应转化为技能的信号:
  • 在对话中:
  • "把这个保存为技能"
  • "记住这个模式"

在学习条目中:

  • 多个另请参见链接(反复出现的问题)
  • 高优先级 + 已解决状态
  • 类别:最佳实践具有广泛适用性
  • 用户反馈称赞该解决方案

技能质量关卡

提取前,请验证:

  • 解决方案经过测试且有效
  • 描述清晰,无需原始上下文
  • 代码示例是独立的
  • 没有项目特定的硬编码值
  • 遵循技能命名约定(小写,连字符)

多智能体支持

此技能适用于不同的AI编码智能体,并具有针对特定智能体的激活方式。

Claude Code

激活:钩子(UserPromptSubmit,PostToolUse)设置.claude/settings.json包含钩子配置检测:通过钩子脚本自动进行

Codex CLI

激活:钩子(与Claude Code模式相同)设置.codex/settings.json包含钩子配置检测:通过钩子脚本自动进行

GitHub Copilot

激活方式:手动(不支持钩子)设置:添加到.github/copilot-instructions.md

## 自我改进

解决非显而易见的问题后,考虑记录到 `.learnings/`:
1. 使用自我改进技能中的格式
2. 通过“参见”链接相关条目
3. 将高价值学习内容提升为技能

在聊天中询问:“我应该将此记录为学习内容吗?”

检测:在会话结束时手动审查

OpenClaw

激活方式:工作区注入 + 代理间消息传递设置:参见上方的“OpenClaw 设置”部分检测:通过会话工具和工作区文件

与代理无关的指导原则

无论使用何种代理,请在以下情况应用自我改进:

  1. 发现非显而易见之事- 解决方案并非立即可得
  2. 自我修正- 初始方法是错误的
  3. 学习项目惯例- 发现了未记录的规律
  4. 遇到意外错误- 尤其在诊断困难时
  5. 找到更好的方法- 改进了原有的解决方案

Copilot 聊天集成

对于 Copilot 用户,在相关时将此添加到您的提示中:

完成此任务后,评估是否有任何学习内容应记录到.learnings/使用自我提升技能格式。

或使用快捷提示:

  • "将此记录到学习"
  • "从此解决方案创建技能"
  • "检查 .learnings/ 以查找相关问题"
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
上网淘巴领天猫淘宝优惠券,一年省好几千。

文章底部电脑广告
手机广告位-内容正文底部

相关文章

上网淘巴领天猫淘宝优惠券,一年省好几千。

广告  ×

您是本站第223234名访客 今日有66篇新文章/评论