Self Improving Agent
基于本能的持续学习系统。通过置信度评分捕获原子学习(本能),支持项目范围与全局范围,并将本能发展为技能/命令/代理。在以下情况下使用:(1) 命令失败,(2) 用户纠正您,(3) 发现模式,(4) 需要回顾或发展学到的行为。支持 v1(基于 markdown)和 v2(基于 instinct)模式。
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install totalclaw:huamu668~self-improving-agent-ecccURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Ahuamu668~self-improving-agent-ecc/file -o self-improving-agent-ecc.mdGit 仓库获取源码
git clone https://github.com/openclaw/skills/commit/4dce8e008d0036cba451a42c201e7c29fa473d58## 概述(中文)
基于本能的持续学习系统。通过置信度评分捕获原子学习(本能),支持项目范围与全局范围,并将本能发展为技能/命令/代理。在以下情况下使用:(1) 命令失败,(2) 用户纠正您,(3) 发现模式,(4) 需要回顾或发展学到的行为。支持 v1(基于 markdown)和 v2(基于 instinct)模式。
## 原文
# Self-Improving Agent Skill
An advanced learning system that turns Claude Code sessions into reusable knowledge through atomic "instincts" - small learned behaviors with confidence scoring and project scope isolation.
**v2.1** adds **project-scoped instincts** — React patterns stay in your React project, Python conventions stay in your Python project, and universal patterns are shared globally.
## Quick Reference
| Situation | Action |
|-----------|--------|
| Command/operation fails | Log instinct or v1 learning |
| User corrects you | Create instinct with `correction` trigger |
| Discovering patterns | Log instinct with confidence score |
| Review learned behaviors | `/instinct-status` |
| Evolve instincts to skills | `/evolve` |
| Promote project → global | `/promote` |
| Setup observation hooks | Enable PreToolUse/PostToolUse hooks |
## Two Learning Modes
### Mode 1: Instinct-Based (v2) - RECOMMENDED
Atomic, confidence-weighted behaviors with project isolation:
```yaml
---
id: prefer-functional-style
trigger: "when writing new functions"
confidence: 0.7
domain: "code-style"
scope: project
project_id: "a1b2c3d4e5f6"
---
# Prefer Functional Style
## Action
Use functional patterns over classes when appropriate.
## Evidence
- Observed 5 instances of functional pattern preference
- User corrected class-based approach on 2025-01-15
```
### Mode 2: Markdown-Based (v1) - LEGACY
Traditional learning entries for complex, narrative learnings:
```markdown
## [LRN-YYYYMMDD-XXX] category
**Priority**: high | **Status**: pending | **Area**: backend
### Summary
Detailed description of what was learned
### Details
Full context and explanation
```
Use v2 (instincts) for behavioral patterns, v1 (markdown) for complex incident analysis.
---
## Instinct-Based Learning (v2)
### The Instinct Model
An instinct is a small, atomic learned behavior:
**Properties:**
- **Atomic** — one trigger, one action
- **Confidence-weighted** — 0.3 = tentative, 0.9 = near certain
- **Domain-tagged** — code-style, testing, git, debugging, workflow, security, etc.
- **Evidence-backed** — tracks what observations created it
- **Scope-aware** — `project` (default) or `global`
### Confidence Scoring
| Score | Meaning | Behavior |
|-------|---------|----------|
| 0.3 | Tentative | Suggested but not enforced |
| 0.5 | Moderate | Applied when relevant |
| 0.7 | Strong | Auto-approved for application |
| 0.9 | Near-certain | Core behavior |
**Confidence increases when:**
- Pattern is repeatedly observed
- User doesn't correct the suggested behavior
- Similar instincts from other sources agree
**Confidence decreases when:**
- User explicitly corrects the behavior
- Pattern isn't observed for extended periods
- Contradicting evidence appears
### Scope Decision Guide
| Pattern Type | Scope | Examples |
|-------------|-------|---------|
| Language/framework conventions | **project** | "Use React hooks", "Follow Django REST patterns" |
| File structure preferences | **project** | "Tests in `__tests__`/", "Components in src/components/" |
| Code style | **project** | "Use functional style", "Prefer dataclasses" |
| Security practices | **global** | "Validate user input", "Sanitize SQL" |
| General best practices | **global** | "Write tests first", "Always handle errors" |
| Tool workflow preferences | **global** | "Grep before Edit", "Read before Write" |
| Git practices | **global** | "Conventional commits", "Small focused commits" |
### Project Detection
The system automatically detects your current project:
1. **`CLAUDE_PROJECT_DIR` env var** (highest priority)
2. **`git remote get-url origin`** — hashed to create a portable project ID
3. **`git rev-parse --show-toplevel`** — fallback using repo path
4. **Global fallback** — if no project detected, instincts go to global scope
Each project gets a 12-character hash ID (e.g., `a1b2c3d4e5f6`).
## v2 Commands
| Command | Description |
|---------|-------------|
| `/instinct-status` | Show all instincts (project-scoped + global) with confidence |
| `/evolve` | Cluster related instincts into skills/commands, suggest promotions |
| `/instinct-export` | Export instincts (filterable by scope/domain) |
| `/instinct-import <file>` | Import instincts with scope control |
| `/promote [id]` | Promote project instincts to global scope |
| `/projects` | List all known projects and their instinct counts |
### /instinct-status Example
```
Project: my-react-app (a1b2c3d4e5f6)
├─ prefer-functional-style.yaml (0.7) [project]
├─ use-react-hooks.yaml (0.9) [project]
└─ jest-testing-patterns.yaml (0.6) [project]
Global Instincts:
├─ always-validate-input.yaml (0.85) [global]
├─ grep-before-edit.yaml (0.6) [global]
└─ conventional-commits.yaml (0.75) [global]
```
### /evolve Workflow
Clusters related instincts and generates:
- **Skills** — domain-specific workflows
- **Commands** — slash commands for common tasks
- **Agents** — specialized sub-agents
```bash
/evolve
# Analyzes instincts and suggests:
# - "Create skill: react-testing-workflow.md"
# - "Create command: /test-component"
# - "Promote prefer-functional-style to global (seen in 3 projects)"
```
### /promote Workflow
Promote project-scoped instincts to global when proven across projects:
```bash
/promote prefer-explicit-errors
# Promotes the instinct from current project to global scope
```
**Auto-promotion criteria:**
- Same instinct ID in 2+ projects
- Average confidence >= 0.8
## File Structure (v2)
```
~/.claude/homunculus/
├── identity.json # Your profile, technical level
├── projects.json # Registry: project hash → name/path/remote
├── observations.jsonl # Global observations (fallback)
├── instincts/
│ ├── personal/ # Global auto-learned instincts
│ └── inherited/ # Global imported instincts
├── evolved/
│ ├── agents/ # Global generated agents
│ ├── skills/ # Global generated skills
│ └── commands/ # Global generated commands
└── projects/
├── a1b2c3d4e5f6/ # Project hash
│ ├── observations.jsonl
│ ├── observations.archive/
│ ├── instincts/
│ │ ├── personal/ # Project-specific auto-learned
│ │ └── inherited/ # Project-specific imported
│ └── evolved/
│ ├── skills/
│ ├── commands/
│ └── agents/
└── f6e5d4c3b2a1/ # Another project
```
## Enabling Observation Hooks (v2)
Add to your `~/.claude/settings.json`:
```json
{
"hooks": {
"PreToolUse": [{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "~/.claude/skills/self-improving-agent/hooks/observe.sh"
}]
}],
"PostToolUse": [{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "~/.claude/skills/self-improving-agent/hooks/observe.sh"
}]
}]
}
}
```
**Why hooks?** Hooks fire **100% of the time**, deterministically. Skills fire ~50-80% based on Claude's judgment.
---
OpenClaw is the primary platform for this skill. It uses workspace-based prompt injection with automatic skill loading.
### Installation
**Via ClawdHub (recommended):**
```bash
clawdhub install self-improving-agent
```
**Manual:**
```bash
git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent
```
Remade for openclaw from original repo : https://github.com/pskoett/pskoett-ai-skills - https://github.com/pskoett/pskoett-ai-skills/tree/main/skills/self-improvement
### Workspace Structure
OpenClaw injects these files into every session:
```
~/.openclaw/workspace/
├── AGENTS.md # Multi-agent workflows, delegation patterns
├── SOUL.md # Behavioral guidelines, personality, principles
├── TOOLS.md # Tool capabilities, integrati