Install
openclaw skills install self-improving-agent-skill基于对经验的持续学习,不断优化 Agent 能力。适用于完成重要任务后、出现错误时、会话结束时,或用户输入“自我进化”“总结经验”“从经验中学习”等指令时触发。
openclaw skills install self-improving-agent-skill"An AI agent that learns from every interaction, accumulating patterns and insights to continuously improve its own capabilities." — Based on 2025 lifelong learning research
This is a universal self-improvement system that learns from ALL task experiences. It implements a complete feedback loop:
| Research | Key Insight | Application |
|---|---|---|
| SimpleMem | Efficient lifelong memory | Pattern accumulation system |
| Multi-Memory Survey | Semantic + Episodic memory | World knowledge + experiences |
| Lifelong Learning | Continuous task stream learning | Learn from every task |
| Evo-Memory | Test-time lifelong learning | Real-time adaptation |
┌──────────────────────────────────────────────────────────────┐
│ UNIVERSAL SELF-IMPROVEMENT │
├──────────────────────────────────────────────────────────────┤
│ │
│ Task Event → Extract Experience → Abstract Pattern → Update │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ MULTI-MEMORY SYSTEM │ │
│ ├────────────────────────────────────────────────────────┤ │
│ │ Semantic Memory │ Episodic Memory │ Working Memory │ │
│ │ (Patterns/Rules) │ (Experiences) │ (Current) │ │
│ │ memory/self-improving/semantic/ │ memory/self-improving/episodic/ │ memory/self-improving/working/ │ │
│ └────────────────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ FEEDBACK LOOP │ │
│ │ User Feedback → Confidence Update → Pattern Adapt │ │
│ └────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────┘
| Event | Action |
|---|---|
| Any significant task completes | Extract patterns, propose skill updates (requires user confirmation) |
| An error or failure occurs | Capture error context, trigger self-correction (requires user confirmation before applying fixes) |
| Session ends | Consolidate working memory into long-term memory |
Before accessing any memory files, the agent MUST first determine the workspace root path:
.git/, package.json, pom.xml, etc.){workspace}/memory/self-improving/The Self-Improving Agent's memory lives inside the Agent's memory/ directory as a dedicated subdirectory. This design ensures:
MEMORY.md, memory/YYYY-MM-DD.md) and Self-Improving Agent's memory (memory/self-improving/) are clearly separated by directory structurememory/ and naturally find self-improving insights{workspace}/
├── MEMORY.md # Agent core memory (Self-Improving Agent can append)
├── memory/
│ ├── YYYY-MM-DD.md # Agent daily memory (Self-Improving Agent can append)
│ └── self-improving/ # Self-Improving Agent dedicated memory space
│ ├── semantic/
│ │ └── patterns.json # Abstract patterns and rules
│ ├── episodic/
│ │ └── YYYY/
│ │ └── YYYY-MM-DD-{task}.json # Specific experiences
│ ├── working/
│ │ ├── current_session.json # Active session data
│ │ ├── last_error.json # Error context for self-correction
│ │ └── session_end.json # Session end marker for consolidation
│ └── index.json # Memory index and metrics
| Action | Target | Condition |
|---|---|---|
| Read | MEMORY.md | Always — to understand Agent's accumulated knowledge |
| Read | memory/YYYY-MM-DD.md | Always — to understand today's context |
| Append to | MEMORY.md | Only high-confidence patterns (>= 0.9), requires user confirmation |
| Append to | memory/YYYY-MM-DD.md | Session summary and key learnings, requires user confirmation |
| Full CRUD | memory/self-improving/* | Self-Improving Agent's own memory space, free to manage |
Trigger evolution when new reusable knowledge appears:
| Trigger | Priority | Action |
|---|---|---|
| New workflow pattern discovered | High | Add to relevant skill guidance |
| Architecture/design tradeoff clarified | High | Add to decision patterns |
| Debugging fix or anti-pattern found | High | Add to troubleshooting patterns |
| Security or performance insight | High | Add to best practice patterns |
| Code pattern or idiom learned | Medium | Add to coding patterns |
| Test strategy improvement | Medium | Update testing approach |
| Tool usage optimization | Medium | Update tool usage patterns |
| Documentation structure insight | Low | Update documentation templates |
memory/self-improving/semantic/patterns.json)Stores abstract patterns and rules reusable across contexts:
{
"patterns": {
"pat-2025-01-11-001": {
"id": "pat-2025-01-11-001",
"name": "Pattern Name",
"source": "user_feedback|implementation_review|retrospective",
"confidence": 0.95,
"applications": 5,
"created": "2025-01-11",
"last_applied": "2025-01-15",
"category": "coding_patterns|architecture|debugging|workflow|...",
"pattern": "One-line summary",
"problem": "What problem does this solve?",
"solution": "How to apply this pattern",
"quality_rules": ["Rule 1", "Rule 2"],
"target_skills": ["skill-name-1", "skill-name-2"]
}
}
}
memory/self-improving/episodic/)Stores specific experiences and what happened:
{
"id": "ep-2025-01-11-001",
"timestamp": "2025-01-11T10:30:00Z",
"skill": "debugger|coding-assistant|reviewer|...",
"task_type": "debugging|coding|review|design|...",
"situation": "What the user was trying to do",
"solution": "How the issue was resolved",
"outcome": "success|partial|failure",
"root_cause": "Underlying issue if applicable",
"lesson": "Key takeaway from this experience",
"related_pattern": "pattern_id if linked",
"user_feedback": {
"rating": 8,
"comments": "User's feedback on the experience"
}
}
memory/self-improving/working/)Stores current session context — ephemeral data that gets consolidated at session end:
{
"session_id": "session-2025-01-11-001",
"started": "2025-01-11T10:00:00Z",
"tasks_completed": [],
"errors_encountered": [],
"patterns_applied": [],
"pending_extractions": []
}
After any significant task completes, extract:
What happened:
task_type: {what kind of task}
task: {what was being done}
outcome: {success|partial|failure}
Key Insights:
what_went_well: [what worked]
what_went_wrong: [what didn't work]
root_cause: {underlying issue if applicable}
User Feedback:
rating: {1-10 if provided}
comments: {specific feedback}
Convert experiences to reusable patterns. The goal is to go from concrete to abstract — patterns should be general enough to apply across different tasks but specific enough to be actionable.
| Concrete Experience | Abstract Pattern |
|---|---|
| "User forgot to save intermediate work" | "Always persist intermediate results to files" |
| "Code review missed SQL injection" | "Add security checklist to review process" |
| "Callback was empty, causing silent failure" | "Verify all callbacks have implementations" |
| "Ambiguous UI spec caused rework" | "UI specs need exact layout specifications" |
Abstraction Rules:
If experience_repeats 3+ times:
pattern_level: critical
action: Add to "Critical Mistakes" or "Anti-Patterns" section
If solution_was_effective:
pattern_level: best_practice
action: Add to "Best Practices" section
If user_rating >= 7:
pattern_level: strength
action: Reinforce this approach in relevant skills
If user_rating <= 4:
pattern_level: weakness
action: Add to "What to Avoid" section
IMPORTANT: User Confirmation Required — Before writing any changes to skill files, you MUST:
If the user rejects or requests modifications, adjust the proposed changes accordingly and re-present for confirmation.
Proposed Change Summary Format:
## Proposed Skill Update
**Target**: `{skill-file-path}`
**Action**: {Add new pattern | Correct existing guidance | Update checklist}
**Source**: {episode_id or trigger}
**Confidence**: {X.XX}
### Changes Preview
{Show the exact content that will be added/modified, using diff-style or before/after format}
### Rationale
{Why this change is recommended}
---
Confirm this update? (yes/no/modify)
Once confirmed, update skill files with evolution markers for traceability:
<!-- Evolution: 2025-01-12 | source: ep-2025-01-12-001 | task: debugging -->
## Pattern Added (2025-01-12)
**Pattern**: Always verify callbacks are not empty functions
**Source**: Episode ep-2025-01-12-001
**Confidence**: 0.95
### Updated Checklist
- [ ] Verify all callbacks have implementations
- [ ] Test callback execution paths
Correction Markers (when fixing wrong guidance):
<!-- Correction: 2025-01-12 | was: "Use callback chain" | reason: caused stale state -->
## Corrected Guidance
Use direct state monitoring instead of callback chains for reactive updates.
Use the templates in templates/ for consistent formatting. See references/appendix.md for the full template structures.
Update semantic memory — add or update patterns in memory/self-improving/semantic/patterns.json
Store episodic memory — write episode to memory/self-improving/episodic/YYYY/YYYY-MM-DD-{task}.json
Update pattern confidence — increase confidence for patterns that were successfully applied, decrease for those that led to errors
Prune outdated patterns — lower confidence for patterns with no recent applications; archive patterns below 0.3 confidence
Supplement Agent memory — propose additions to Agent's own memory files. User confirmation is REQUIRED before any write to MEMORY.md or memory/YYYY-MM-DD.md. Follow the same confirmation protocol as Phase 3:
What to propose:
MEMORY.mdmemory/YYYY-MM-DD.mdConfirmation format:
## Proposed Agent Memory Update
### → MEMORY.md (append)
{Exact content to be appended, preview here}
### → memory/YYYY-MM-DD.md (append)
{Exact content to be appended, preview here}
**Source patterns**: {pattern IDs and confidence levels}
---
Confirm this memory update? (yes/no/modify)
After approval:
<!-- Source: self-improving-agent | date: YYYY-MM-DD --> markers for traceabilityTriggered when:
Process:
Detect Error
memory/self-improving/working/last_error.jsonVerify Root Cause
Propose Correction
Apply Correction (after user approval)
Validate Fix
Periodically (or when triggered manually), verify that stored patterns and skill guidance are still accurate:
Use the validation template in templates/validation-template.md for structured reviews.
After each self-improvement cycle, present a summary to the user:
## Self-Improvement Summary
I've learned from our session and updated:
### Patterns Extracted
1. **pattern_name**: Description (confidence: X.XX)
### Skills/Documents Updated
- `skill-name`: What was updated
### Confidence Levels
- New patterns: ~0.85 (needs more validation)
- Reinforced patterns: ~0.95 (well-established)
### Your Feedback
- Were these updates helpful?
- Should I apply any pattern more broadly?
- Any corrections needed?
Integrate feedback into confidence scoring:
| Feedback | Action |
|---|---|
| Positive (rating >= 7) | Increase confidence, consider expanding to related skills |
| Neutral (rating 4-6) | Keep pattern, gather more data before expanding |
| Negative (rating <= 3) | Decrease confidence, revise or archive pattern |
MEMORY.md, memory/YYYY-MM-DD.md)MEMORY.md and today's memory/YYYY-MM-DD.md at the start of each self-improvement cycle for contextAfter any significant task completes, this agent:
For detailed memory structures, validation templates, metrics, and workflow diagrams, read references/appendix.md.
For pattern/correction/validation templates, see the templates/ directory:
templates/pattern-template.md — Adding new patternstemplates/correction-template.md — Fixing incorrect guidancetemplates/validation-template.md — Validating skill accuracy