Self-Improving Agent
Captures learnings, errors, and corrections to enable continuous improvement across sessions.
Activation Triggers
This skill automatically activates when:
| Trigger | What Gets Logged | Location |
|---|---|---|
| Command fails | Error type, context, recovery suggestion | logs/failures_detailed.jsonl |
| User corrects | "No, that's wrong...", "Actually..." | logs/corrections.jsonl |
| Missing capability | "Can you X?" where X isn't available | logs/missing_capabilities.jsonl |
| API/tool fails | Failure pattern, suggested fix | logs/failures_detailed.jsonl |
| Better approach found | Optimization learned | logs/learnings.jsonl |
How It Works
1. Automatic Logging (via hooks)
code
PostToolUse → enhanced-failure-logger.js → logs failures with context UserMessage → correction-detector.js → detects "wrong/actually/try again" Response → capability-tracker.js → detects unfulfilled requests
2. Learning Aggregation
All learnings flow to logs/learnings.jsonl:
json
{
"timestamp": "2026-01-26T12:00:00Z",
"type": "user_correction|tool_failure|missing_capability",
"category": "factual_error|command_failed|web_browsing",
"description": "what was learned",
"source": "which detector"
}
3. Session Start Review
On each session start, recent learnings are shown:
code
=== Learning Review === [Learnings] 47 total entries [Recent] • [tool_failure] Bash failed: timeout - WebFetch to external API... • [user_correction] User corrected: "No, use the other file..." [Corrections] 12 user corrections logged [Capability Gaps] Top requested: • send emails (5x) • browse web (3x)
4. QAVR Integration
Successful learnings boost Q-values for related memories, improving future retrieval.
Manual Commands
Review Learnings
bash
# Show all learnings
cat ~/.claude/logs/learnings.jsonl | tail -20
# Show corrections only
cat ~/.claude/logs/corrections.jsonl | jq -s 'group_by(.correction_type) | map({type: .[0].correction_type, count: length})'
# Show capability gaps report
node ~/.claude/scripts/hooks/capability-tracker.js --report
Test Detection
bash
# Test correction detector node ~/.claude/scripts/hooks/correction-detector.js # Test failure logger node ~/.claude/scripts/hooks/enhanced-failure-logger.js # Test capability tracker node ~/.claude/scripts/hooks/capability-tracker.js
Learning Categories
Correction Types
- •
factual_error- Wrong information provided - •
retry_request- User asked to try again - •
misunderstanding- Misinterpreted the request - •
failed_solution- Solution didn't work
Failure Types
- •
permission_error- Access denied - •
not_found- File/resource missing - •
timeout- Operation timed out - •
network_error- Connection issues - •
syntax_error- Invalid syntax - •
api_error- External API failed - •
command_failed- Shell command failed - •
agent_failed- Subagent failed
Capability Categories
- •
web_browsing- Internet access requests - •
image_processing- Image/photo handling - •
communication- Email/messaging - •
database_access- SQL/database queries - •
external_api- Third-party services - •
memory_persistence- Long-term memory
Configuration
In settings.json, these hooks enable self-improvement:
json
{
"hooks": {
"SessionStart": [...], // Reviews learnings
"PostToolUse": [
{"matcher": "Bash", "hooks": [{"command": "enhanced-failure-logger.js"}]},
{"matcher": "Task", "hooks": [{"command": "enhanced-failure-logger.js"}]}
]
}
}
Benefits
- •Learn from mistakes - Don't repeat the same errors
- •Understand user preferences - Track what corrections mean
- •Identify skill gaps - Know what features to build
- •Improve over time - QAVR ranking gets better with feedback
- •Context persistence - Learnings survive session restarts
Integration with Other Skills
| Skill | Integration |
|---|---|
| QAVR | Successful learnings boost memory Q-values |
| Memory Consolidation | Periodic cleanup of old learnings |
| Confidence Check | Review learnings before major tasks |
| IR-v2 | Use learnings to inform pattern selection |
Files
code
~/.claude/
├── logs/
│ ├── learnings.jsonl # All learnings
│ ├── corrections.jsonl # User corrections
│ ├── failures_detailed.jsonl # Enhanced failure logs
│ ├── missing_capabilities.jsonl # Capability requests
│ └── capability_gaps.json # Aggregated gaps
└── scripts/hooks/
├── correction-detector.js
├── enhanced-failure-logger.js
├── capability-tracker.js
└── session-start.js (reviews learnings)