RSI: how it learns
Recursive self-improvement watches how sessions actually go, turns repeated corrections into rules, and turns evidence into evaluated skill patches. Every change passes a gate first.
Updated
The loop
- Observe. Hooks log bounded, redacted user requests, corrections, “still broken” moments and which skills fired. Feedback is classified as behaviour, requirement, preference or environment. Task identity and explicit skill references guide attribution; ambiguous feedback stays uncertain rather than blaming every recent skill.
- Reflect. After a session with signal, a small model — Haiku via Claude (about $0.002), otherwise Codex — proposes evidence-backed
WHEN → THENrules. - Curate. A rule goes live once two sessions back it. It goes stale after 30 days and is archived after 90.
- Apply. Review mode queues changes for
/rsi review. Autonomous mode applies supported changes after validation.
Tiers
| Tier | Changes | Who decides |
|---|---|---|
| 0 | Learned rules in each session's brief (≤1.5 KB) | Automatic |
| 1 | Instruction edits and known toolkit repairs, with backups | You, or autonomous RSI |
| 2 | Skill patches and new skills that pass regression evaluations | You, or autonomous RSI |
| 3 | Enforced guards (≤1% false positives on replay) | You, or autonomous RSI |
Commands
| Command | Use when |
|---|---|
/rsi autonomy on · off · status | Enable, disable or inspect automatic application. |
/rsi publish on · off · status · run | Publish suggestions as issues and validated skill changes as PRs. |
/rsi improve | Run a due improvement pass and apply eligible proposals. |
/rsi status | Check it's running and what's queued. |
/rsi review | Claude's status line shows rsi:N — decide on proposals. |
/rsi coach | An evidence-based report on what's improving or repeating. |
/rsi bootstrap | Fresh install: seed rules from your existing agent memories. |
/rsi why <id> · forget <id> | Inspect a rule, or reject it for good. |
In Codex, use $rsi … instead of /rsi …. A weekly job also checks upstream toolkits and surfaces only changes that match friction you actually had.
Autonomous mode
honey rsi autonomy on # persists in ~/.honey/config.json
honey rsi autonomy off # back to manual reviewWith autonomy on, session-end and startup catch-up jobs apply up to 20 pending proposals per pass and attempt one evidence-backed skill improvement every 24 hours. There is no background daemon — a session triggers due work. Failures rotate behind other eligible work, so one blocked patch doesn't freeze unrelated skills.
How skill patches are earned
Skill diagnoses route to the patcher using verified user quotes. A brand-new skill needs actual requests from at least two sessions and positive and negative trigger evaluations. Keyword-only suggestions stay pending.
Each evaluation arm includes generated cases, existing name-matched cases and independently maintained behaviour cases for read-only preservation, scoped edits and failed verification. Fixture hashes and exact candidate content are checked before anything applies. Evaluator errors and incomplete results never count as passing.
Safety and reversibility
Instruction edits have conflict-checked honey rsi revert <id> snapshots; toolkit repairs keep installer undo records. Guards stay inspectable with honey rsi guards. RSI never executes a proposal's free-form fix text, and automatic decisions never count as user feedback.
Edited patch targets, runtime drift and diverged branches block application. Run honey sync from the source checkout once to refresh Codex and record the editable source; the plugin cache is never treated as editable.