mcpField
S
self-improving-agent

self-improving-agent

github.com/kimasplundAgent workflows0212 installsUpdated 40w ago
Repository

About self-improving-agent

self-improving-agent is a skill for agents that records corrections, failures, capability gaps, and better approaches across sessions. Hooks log events, while session-start reviews and QAVR integration make the accumulated learnings available for later work.

Key features

  1. 01Hook-based failure and correction logging
  2. 02Capability-gap tracking
  3. 03Session-start learning review
  4. 04QAVR memory ranking integration

Use cases

  1. 01Reviewing recurring command or API failures
  2. 02Tracking user corrections between sessions
  3. 03Identifying frequently requested missing capabilities

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/kimasplund/clawdbot-skills-pack --skill self-improving-agent

After installing, type/self-improving-agentin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

capability-tracker.js
correction-detector.js
enhanced-failure-logger.js

Details

From the project README

Self-Improving Agent

Captures learnings, errors, and corrections to enable continuous improvement across sessions.

Activation Triggers

This skill automatically activates when:

TriggerWhat Gets LoggedLocation
Command failsError type, context, recovery suggestionlogs/failures_detailed.jsonl
User corrects"No, that's wrong...", "Actually..."logs/corrections.jsonl
Missing capability"Can you X?" where X isn't availablelogs/missing_capabilities.jsonl
API/tool failsFailure pattern, suggested fixlogs/failures_detailed.jsonl
Better approach foundOptimization learnedlogs/learnings.jsonl

How It Works

1. Automatic Logging (via hooks)
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:

{
  "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:

=== 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
# 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
# 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:

{
  "hooks": {
    "SessionStart": [...],  // Reviews learnings
    "PostToolUse": [
      {"matcher": "Bash", "hooks": [{"command": "enhanced-failure-logger.js"}]},
      {"matcher": "Task", "hooks": [{"command": "enhanced-failure-logger.js"}]}
    ]
  }
}

Benefits

  1. Learn from mistakes - Don't repeat the same errors
  2. Understand user preferences - Track what corrections mean
  3. Identify skill gaps - Know what features to build
  4. Improve over time - QAVR ranking gets better with feedback
  5. Context persistence - Learnings survive session restarts

Integration with Other Skills

SkillIntegration
QAVRSuccessful learnings boost memory Q-values
Memory ConsolidationPeriodic cleanup of old learnings
Confidence CheckReview learnings before major tasks
IR-v2Use learnings to inform pattern selection

Files

~/.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)

Comments

Markdown supported