hermes-learning-loop

Self-improving learning loop inspired by Hermes Agent. Automatically extracts successful workflows, creates skills, and persists knowledge across sessions.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "hermes-learning-loop" with this command: npx skills add mystour/hermes-learning-loop

Hermes Learning Loop for OpenClaw

Inspired by: NousResearch/hermes-agent (Self-improving AI agent)

Implements Hermes Agent's core learning loop in OpenClaw — automatically extracts successful workflows, creates reusable skills, and persists curated knowledge across sessions.

When to Use

  • After completing complex multi-step tasks
  • When you discover a workflow worth repeating
  • Automatically via heartbeat (periodic nudge)
  • When user says "remember this" or "save this workflow"

Features

  • Periodic Nudge — Auto-reflect every N tasks (default: 5)
  • Skill Extraction — Convert successful workflows to reusable skills
  • 4-Layer Memory — Prompt memory + Session search + Skills + User modeling
  • Curated Memory — Agent decides what's worth keeping (not logging everything)
  • Progressive Disclosure — Only load skill summaries by default, full content on-demand
  • FTS5 Session Search — SQLite-powered historical context retrieval

Quick Start

Install

clawhub install hermes-learning-loop

Manual Trigger

# After completing a task
node learning-loop.js extract --session=<session_id>

# Create skill from workflow
node learning-loop.js create-skill --name="my-skill" --description="What it does"

# Periodic nudge (heartbeat)
node learning-loop.js nudge

Auto-Trigger (Integration)

Add to HEARTBEAT.md:

## Learning Loop - Periodic Nudge

**Frequency:** Every 5 tasks or 30 minutes

**Task:**
1. Run `node learning-loop.js nudge`
2. Review extracted memories
3. Approve/reject skill creations

Architecture

Learning Loop Cycle

┌─────────────────────────────────────────────────────────┐
│  1. Task Execution                                      │
│     - Agent completes task                              │
│     - Track tool calls, decisions, outcomes             │
└──────────────┬──────────────────────────────────────────┘
               │
               ▼
┌─────────────────────────────────────────────────────────┐
│  2. Periodic Nudge (every 5 tasks)                      │
│     - System prompt: "Reflect on recent activity"       │
│     - Agent evaluates: Is this worth persisting?        │
└──────────────┬──────────────────────────────────────────┘
               │
               ▼
┌─────────────────────────────────────────────────────────┐
│  3. Memory Extraction                                   │
│     - If valuable → Write to MEMORY.md / USER.md        │
│     - If workflow → Create skill file                   │
│     - If context → Index in session archive             │
└──────────────┬──────────────────────────────────────────┘
               │
               ▼
┌─────────────────────────────────────────────────────────┐
│  4. Skill Creation                                      │
│     - Extract steps, tool calls, file references        │
│     - Write to ~/.openclaw/skills/<category>/<name>/   │
│     - Follow agentskills.io specification               │
└─────────────────────────────────────────────────────────┘

4-Layer Memory System

LayerPurposeLocationLoad Timing
Prompt MemoryAlways-on contextMEMORY.md, USER.mdEvery session start
SkillsProcedural memory (how-to)~/.openclaw/skills/On-demand (summary → full)
Session ArchiveEpisodic memory (what happened)SQLite + FTS5Deliberate retrieval
User ModelBehavioral patternsOptional (Honcho-like)Continuous passive

Skill Triggers

Automatically create skill when:

  • ✅ 5+ tool calls in sequence
  • ✅ Recovered from error successfully
  • ✅ User corrected → fixed approach
  • ✅ Non-obvious workflow that worked
  • ✅ Repeated pattern detected (3+ times)

Usage Examples

Example 1: Post-Task Skill Extraction

# After completing complex deployment
export SESSION_ID="2026-04-03-deploy"
export TASK_OUTCOME="success"
export TOOL_CALLS="15"

node learning-loop.js extract

Output:

📊 Learning Loop Analysis

✅ Task completed successfully
📈 Tool calls: 15
⚠️  Error recovery: 2 instances
💡  User corrections: 1

🎯 Skill-worthy detected: YES

Proposed skill:
  Name: deploy-to-k8s
  Description: Deploy application to Kubernetes with health checks
  Steps: 7
  Tool calls: 15

📄 Created: ~/.openclaw/skills/devops/deploy-to-k8s/SKILL.md

Example 2: Periodic Nudge

# Heartbeat triggers this
node learning-loop.js nudge

Output:

🔔 Periodic Nudge - Task #5

Looking back at tasks 1-5...

Task 1: ✅ Simple (no extraction needed)
Task 2: ✅ Complex workflow detected
  → Extracted: "github-pr-workflow"
Task 3: ✅ Error recovery pattern
  → Extracted: "debug-python-import"
Task 4: ✅ Simple
Task 5: ✅ User correction applied
  → Updated: "github-pr-workflow" (v1.0.1)

📊 Summary:
  - New skills: 2
  - Updated skills: 1
  - Memory entries: 3

Example 3: Memory Curation

# Review what's worth keeping
node learning-loop.js curate --session="2026-04-03"

Decision Framework:

┌──────────────────────────────────────────────────────┐
│ Should this be persisted?                            │
├──────────────────────────────────────────────────────┤
│ ❌ Chat pleasantries → Discard                       │
│ ❌ Failed attempts → Discard (keep only success)     │
│ ✅ Successful workflows → Extract as skill           │
│ ✅ User preferences → Add to USER.md                 │
│ ✅ Project context → Add to MEMORY.md (project/)     │
│ ✅ Corrections/feedback → Add to MEMORY.md (feedback/)│
└──────────────────────────────────────────────────────┘

Configuration

Environment Variables

VariableDescriptionDefault
LEARNING_NUDGE_INTERVALTasks between nudges5
LEARNING_MIN_TOOL_CALLSMin tool calls for skill5
LEARNING_AUTO_CREATEAuto-create skills (vs approve)false
LEARNING_SKILLS_DIRSkills directory~/.openclaw/skills/
LEARNING_MEMORY_DIRMemory directory~/.openclaw/memory/

Config File

# ~/.openclaw/learning-loop.yaml
learning:
  nudge:
    enabled: true
    interval: 5  # tasks
    
  skill_creation:
    auto_approve: false  # Review before creating
    min_tool_calls: 5
    categories:
      - devops
      - research
      - productivity
      
  memory:
    max_prompt_chars: 3575  # Hermes-style tight limit
    archive_enabled: true
    fts5_enabled: true

Skill File Format

Follows agentskills.io specification:

---
name: deploy-to-k8s
description: Deploy application to Kubernetes with health checks
version: 1.0.0
platforms: [linux, macos]
metadata:
  tags: [kubernetes, devops, deployment]
  category: devops
  created_from: session-2026-04-03
---

# deploy-to-k8s

## Overview

Deploy any application to Kubernetes cluster with automated health checks and rollback.

## Prerequisites

- kubectl configured
- Kubernetes cluster access
- Docker image ready

## Steps

1. **Validate cluster connection**
   ```bash
   kubectl cluster-info
  1. Apply deployment manifest

    kubectl apply -f deployment.yaml
    
  2. Wait for rollout

    kubectl rollout status deployment/app
    
  3. Health check

    kubectl get pods -l app=myapp
    
  4. Verify service

    kubectl get svc app-service
    

Tool Calls Used

  • exec: kubectl commands
  • read: deployment.yaml
  • web_search: Kubernetes docs (if errors)

Related Skills

  • docker-build-optimization
  • k8s-troubleshooting

## Integration with OpenClaw

### Heartbeat Integration

```markdown
## HEARTBEAT.md Update

### Learning Loop - Periodic Nudge

**Frequency:** Every 5 tasks

**Steps:**
1. Check task counter
2. If counter % 5 == 0 → Run nudge
3. Review proposed skills/memories
4. Approve/reject
5. Reset counter

PUA Integration

# Task PUA can trigger learning loop
if task.failed && task.recovered:
  node learning-loop.js extract --reason="error-recovery"
  
if task.pua_level >= "L2":
  # Complex task → likely skill-worthy
  node learning-loop.js nudge

Memory PUA Integration

# Memory health check includes learning loop status
node memory-pua.js audit

# Output includes:
# - Skills created this week
# - Memories curated
# - Nudge effectiveness

Comparison: Hermes vs This Implementation

FeatureHermes AgentThis Skill
Periodic Nudge✅ Built-in✅ Via heartbeat
Skill Auto-Creation✅ Full auto⚠️ Opt-in approval
4-Layer Memory✅ SQLite + FTS5⚠️ Markdown + optional SQLite
Progressive Disclosure✅ Summary → Full✅ Same pattern
User Modeling (Honcho)✅ Optional❌ Not implemented
Gateway Integration✅ Multi-platform⚠️ OpenClaw channels only
Context Compression✅ Lineage-aware⚠️ Basic summarization

Benefits

  • Curated not dumped — Agent decides what's worth keeping
  • Token-efficient — Progressive disclosure keeps context small
  • Portable skills — Follows agentskills.io standard
  • Self-improving — Gets better the more you use it
  • OpenClaw native — Works with existing memory system

Related Skills

  • claude-memory-optimizer: Memory structure and migration
  • task-pua: Task persistence and quality
  • memory-pua: Memory health maintenance

References

License

MIT-0


Version 1.0.0: Initial implementation inspired by Hermes Agent learning loop

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Research

Memory Analyzer

Analyzes conversation history, extracts user preferences and feedback, updates memory files automatically.

Registry SourceRecently Updated
7730Profile unavailable
Automation

yan-learning-engine

yan-learning-engine自动每小时驱动炎月执行预设学习和贡献任务,促进持续自我进化和技术积累。

Registry SourceRecently Updated
3290Profile unavailable
Automation

Project Trident

Four-tier persistent memory architecture for OpenClaw agents. Implements LCM-backed durability, hierarchical .md file organization, agentic signal routing, a...

Registry SourceRecently Updated
1351Profile unavailable
Automation

Self Evolution-v2

让AI agent拥有真正的自我审视和持续进化能力,对标Hermes Agent核心能力。

Registry SourceRecently Updated
1541Profile unavailable