Skill Self-Evolution Enhancer
This skill enables other skills to gain self-evolution capabilities similar to self-improving-agent. A skill that originally has no self-evolution will, after enhancement, have: logging, learning from user feedback, promotion to rules, and a Review→Apply→Report loop—all tailored to its domain.
Quick Reference
| Step | Action |
|---|
| User requests evolution for skill X | Read target skill's SKILL.md |
| Deep analysis |
Identify capabilities, scenarios, evolution directions |
| Extract domain | Name, use cases, triggers, areas, promotion targets |
| Generate .learnings/ | Domain-specific LEARNINGS.md, ERRORS.md, FEATURE_REQUESTS.md |
| Generate EVOLUTION.md | Triggers, Review-Apply-Report, OpenClaw feedback rules |
| Language | Match target skill's user language (infer from SKILL.md) |
When to Use
- - User says: "给 skill X 加上自进化能力" / "Add self-evolution to skill X"
- Scaling self-improvement across many skills (each with its own evolution direction)
- Target skill is non-coding (e.g., 洗稿能手, 电脑加速) and needs domain-specific triggers
Workflow
Step 1: Read Target Skill
CODEBLOCK0
Obtain path from user or infer (e.g., skills/xxx, ~/.cursor/skills/xxx).
Step 2: Deep Capability & Scenario Analysis
Before generating any config, analyze the target skill deeply:
Capabilities (what the skill does):
- - Primary outputs and workflows
- Secondary or edge capabilities
- Dependencies (tools, APIs, formats)
Scenarios (when and how it is used):
- - User personas
- Typical tasks (e.g., 科普改写 vs 汇报改写)
- Input/output patterns
Evolution directions (what can improve):
- - User feedback patterns (e.g., "改得不通顺" → style)
- Failure modes (e.g., "优化无效" → strategy)
- Recurring corrections → domain-specific rules
Use cases → infer from description, Quick Reference, examples
Step 3: Extract Domain Config
When reading the target skill, extract:
| Field | Where to Find | Example |
|---|
| Domain name | INLINECODE2 in frontmatter, title | 洗稿能手, 电脑加速 |
| Use cases / scenarios |
Description, Quick Reference, examples | 科普、汇报、直播 |
|
Learning triggers | User feedback phrases in examples | "改得不通顺", "不像口播", "风格不对" |
|
Error triggers | Failure modes | "优化无效", "某些电脑不适用", "报错" |
|
Areas | Output types, workflow stages | 文案/口播/短视频脚本, 或 系统优化/卡顿/报错 |
|
Promotion targets | Skill-specific rules |
{skill}-专属进化规则.md,
{skill}-最佳实践.md |
Language: Infer from SKILL.md content (Chinese vs English). Generate all output files in that language.
Use assets/DOMAIN-CONFIG-TEMPLATE.md to structure the extracted data.
Step 4: Generate .learnings/
Create inside target skill directory: INLINECODE5
Structure (same as self-improving-agent):
- - INLINECODE6
- INLINECODE7
- INLINECODE8
Use templates from assets/; parameterize with domain areas, categories, promotion targets. Write in the target skill's language.
Step 5: Generate EVOLUTION.md
Create target_skill_path/EVOLUTION.md using assets/EVOLUTION-RULES-TEMPLATE.md.
Must include:
- - Quick Reference: domain triggers → actions
- Review→Apply→Report loop (see below)
- Detection triggers (when to log)
- Promotion decision tree
- Area tags
- Domain-specific activation conditions (for hooks)
- Experience invalidation / update rules (when user corrects again)
Step 6: Optional – Activator Script
If target skill has scripts/, add scripts/activator.sh with domain-specific reminder text. Adapt from self-improving-agent; replace generic prompts with domain triggers.
Review → Apply → Report Loop
The enhanced skill must use learnings, not only log them. Include this in EVOLUTION.md or the enhanced skill's instructions:
Before Task
- - Load relevant entries from
.learnings/LEARNINGS.md (and ERRORS.md if applicable) - Filter by area, tags, or keywords
- Note which entries apply to the current task
During Task
- - Apply learnings when relevant
- Optionally annotate output: "本次参考了 [LRN-xxx]: ..." (or equivalent in target language)
After Task
- - Summarize for user: which learnings were used, what evolution result, what improvement
- Let OpenClaw decide: per-use mention vs end-of-task summary
Example (Chinese): "本次改写了口播稿,参考了经验 [LRN-20250115-001](科普场景应避免过于书面),相比之前更口语化。"
Example (English): "Used learning [LRN-20250115-001] (avoid formal tone for科普) in this rewrite; output is more conversational than before."
User Preference vs Domain Best Practice
| Type | Storage | Example |
|---|
| User preference | MEMORY.md (user-level) | "This user prefers shorter sentences" |
| Domain best practice |
.learnings/LEARNINGS.md | "科普场景应避免过于书面" |
Evolution is driven by user feedback; log and promote based on user corrections and recurring patterns.
OpenClaw Active Feedback
Add to the enhanced skill or SOUL.md/AGENTS.md:
- - When using experience from
.learnings/, briefly tell the user - At end of task, optionally summarize: evolution used, improvements
- Let OpenClaw decide when to surface (per-use vs summary)
See references/openclaw-feedback.md for SOUL.md and AGENTS.md snippets.
Experience Invalidation & Update
When user corrects again after a learning was applied:
- - Add
Contradicted-By: LRN-YYYYMMDD-XXX to the original entry - Mark
Last-Valid or Status: superseded if the learning is no longer valid - Increment
Recurrence-Count if the pattern recurs but the fix is different
Include in LEARNINGS template: Recurrence-Count, Last-Valid, Contradicted-By.
Domain Extraction Framework
Trigger Extraction
Learning triggers (user feedback → log to LEARNINGS.md):
- - Look for: "用户说", "when user says", example dialogs
- Infer: common corrections, style mismatches, scene-specific preferences
- Add generic fallbacks: "不对", "不是这样", "改一下"
Error triggers (failures → log to ERRORS.md):
- - Look for: "失败", "报错", "不适用", "when X fails"
- Infer: environment-specific failures, edge cases
- Add generic fallbacks: "操作失败", "未达到预期"
Area Mapping
Define 3–6 areas that partition the skill's scope. Use domain-specific areas, not coding areas.
Promotion Target Naming
- -
{skill-name}-专属进化规则.md — evolution rules, style preferences - INLINECODE24 — best practices
- INLINECODE25 — safety constraints (e.g., 电脑加速)
Use kebab-case for skill name in filenames.
Logging Format (Reuse from Self-Improving-Agent)
ID format: LRN-YYYYMMDD-XXX, ERR-YYYYMMDD-XXX, INLINECODE28
Statuses: pending | in_progress | resolved | wont_fix | promoted | INLINECODE34
For full entry formats, see the self-improving-agent skill's Logging Format section.
References
Source
- - Based on: self-improving-agent 3.0.1
- Purpose: Enable any skill to gain self-evolution capabilities similar to self-improving-agent
技能自进化增强器
该技能使其他技能获得类似于自我改进代理的自进化能力。原本不具备自进化能力的技能,在增强后将具备:日志记录、从用户反馈中学习、提升为规则,以及审查→应用→报告循环——所有这些都针对其领域量身定制。
快速参考
| 步骤 | 操作 |
|---|
| 用户请求为技能X添加进化能力 | 读取目标技能的SKILL.md |
| 深度分析 |
识别能力、场景、进化方向 |
| 提取领域 | 名称、用例、触发条件、领域、提升目标 |
| 生成.learnings/ | 领域特定的LEARNINGS.md、ERRORS.md、FEATURE_REQUESTS.md |
| 生成EVOLUTION.md | 触发条件、审查-应用-报告、OpenClaw反馈规则 |
| 语言 | 匹配目标技能的用户语言(从SKILL.md推断) |
使用时机
- - 用户说:给 skill X 加上自进化能力 / Add self-evolution to skill X
- 在多个技能间扩展自我改进(每个技能有各自的进化方向)
- 目标技能是非编码类(例如,洗稿能手、电脑加速),需要领域特定的触发条件
工作流程
步骤1:读取目标技能
Read(targetskillpath/SKILL.md)
从用户处获取路径或推断路径(例如,skills/xxx、~/.cursor/skills/xxx)。
步骤2:深度能力与场景分析
在生成任何配置之前,深度分析目标技能:
能力(技能的功能):
- - 主要输出和工作流程
- 次要或边缘能力
- 依赖项(工具、API、格式)
场景(何时以及如何使用):
- - 用户画像
- 典型任务(例如,科普改写 vs 汇报改写)
- 输入/输出模式
进化方向(可以改进的内容):
- - 用户反馈模式(例如,改得不通顺 → 风格)
- 失败模式(例如,优化无效 → 策略)
- 重复修正 → 领域特定规则
用例 → 从描述、快速参考、示例中推断
步骤3:提取领域配置
读取目标技能时,提取:
| 字段 | 查找位置 | 示例 |
|---|
| 领域名称 | frontmatter中的name、标题 | 洗稿能手、电脑加速 |
| 用例/场景 |
描述、快速参考、示例 | 科普、汇报、直播 |
|
学习触发条件 | 示例中的用户反馈短语 | 改得不通顺、不像口播、风格不对 |
|
错误触发条件 | 失败模式 | 优化无效、某些电脑不适用、报错 |
|
领域 | 输出类型、工作流程阶段 | 文案/口播/短视频脚本、或 系统优化/卡顿/报错 |
|
提升目标 | 技能特定规则 | {skill}-专属进化规则.md、{skill}-最佳实践.md |
语言:从SKILL.md内容推断(中文 vs 英文)。所有输出文件使用该语言生成。
使用assets/DOMAIN-CONFIG-TEMPLATE.md来结构化提取的数据。
步骤4:生成.learnings/
在目标技能目录内创建:targetskillpath/.learnings/
结构(与自我改进代理相同):
- - .learnings/LEARNINGS.md
- .learnings/ERRORS.md
- .learnings/FEATURE_REQUESTS.md
使用assets/中的模板;用领域、类别、提升目标进行参数化。使用目标技能的语言编写。
步骤5:生成EVOLUTION.md
使用assets/EVOLUTION-RULES-TEMPLATE.md创建targetskill_path/EVOLUTION.md。
必须包含:
- - 快速参考:领域触发条件 → 操作
- 审查→应用→报告循环(见下文)
- 检测触发条件(何时记录日志)
- 提升决策树
- 领域标签
- 领域特定的激活条件(用于钩子)
- 经验失效/更新规则(当用户再次修正时)
步骤6:可选 – 激活器脚本
如果目标技能有scripts/,添加scripts/activator.sh,包含领域特定的提醒文本。从自我改进代理适配;将通用提示替换为领域触发条件。
审查 → 应用 → 报告循环
增强后的技能必须使用学习内容,而不仅仅是记录它们。将其包含在EVOLUTION.md或增强技能的指令中:
任务前
- - 从.learnings/LEARNINGS.md(以及适用的ERRORS.md)加载相关条目
- 按领域、标签或关键词筛选
- 注意哪些条目适用于当前任务
任务中
- - 在相关时应用学习内容
- 可选地注释输出:本次参考了 [LRN-xxx]: ...(或目标语言的等效表达)
任务后
- - 向用户总结:使用了哪些学习内容、产生了什么进化结果、有什么改进
- 让OpenClaw决定:每次使用提及 vs 任务结束总结
示例(中文):本次改写了口播稿,参考了经验 [LRN-20250115-001](科普场景应避免过于书面),相比之前更口语化。
示例(英文):Used learning [LRN-20250115-001] (avoid formal tone for科普) in this rewrite; output is more conversational than before.
用户偏好 vs 领域最佳实践
| 类型 | 存储位置 | 示例 |
|---|
| 用户偏好 | MEMORY.md(用户级别) | 该用户偏好较短的句子 |
| 领域最佳实践 |
.learnings/LEARNINGS.md | 科普场景应避免过于书面 |
进化由用户反馈驱动;根据用户修正和重复模式记录并提升。
OpenClaw主动反馈
添加到增强技能或SOUL.md/AGENTS.md中:
- - 当使用.learnings/中的经验时,简要告知用户
- 在任务结束时,可选地总结:使用的进化、改进
- 让OpenClaw决定何时展示(每次使用 vs 总结)
参见references/openclaw-feedback.md获取SOUL.md和AGENTS.md片段。
经验失效与更新
当用户在学习内容应用后再次修正时:
- - 向原始条目添加Contradicted-By: LRN-YYYYMMDD-XXX
- 如果学习内容不再有效,标记Last-Valid或Status: superseded
- 如果模式重复出现但修复方式不同,增加Recurrence-Count
包含在LEARNINGS模板中:Recurrence-Count、Last-Valid、Contradicted-By。
领域提取框架
触发条件提取
学习触发条件(用户反馈 → 记录到LEARNINGS.md):
- - 查找:用户说、when user says、示例对话
- 推断:常见修正、风格不匹配、场景特定偏好
- 添加通用后备:不对、不是这样、改一下
错误触发条件(失败 → 记录到ERRORS.md):
- - 查找:失败、报错、不适用、when X fails
- 推断:环境特定失败、边缘情况
- 添加通用后备:操作失败、未达到预期
领域映射
定义3–6个划分技能范围的领域。使用领域特定的领域,而非编码领域。
提升目标命名
- - {skill-name}-专属进化规则.md — 进化规则、风格偏好
- {skill-name}-最佳实践.md — 最佳实践
- {skill-name}-安全规范.md — 安全约束(例如,电脑加速)
文件名中的技能名称使用kebab-case。
日志格式(复用自我改进代理)
ID格式:LRN-YYYYMMDD-XXX、ERR-YYYYMMDD-XXX、FEAT-YYYYMMDD-XXX
状态:pending | inprogress | resolved | wontfix | promoted | promotedtoskill
完整条目格式,参见自我改进代理技能的日志格式部分。
参考