Five mechanisms that make the skill library grow without retraining the base model.
These skills bypass the LLM at wake time when the task strongly matches their trigger. Compiled from accumulated successful trajectories.
{% if compiled_skills %}| id | name | steps | macro conf | fitness | s/t |
|---|---|---|---|---|---|
| {{ s.id[:8] }} | {{ s.name }} | {{ s.compiled_steps }} | {{ "%.2f"|format(s.compiled_conf) }} | {{ "%.2f"|format(s.fitness_mean) }} | {{ s.successes }}/{{ s.trials }} |
No compiled macros yet — let the library accumulate ≥5 successes per skill, then run sleep.
{% endif %}Alternative strategies the dreamer proposed for skills that kept failing. They compete against their parent for retrieval.
{% if counterfactual_skills %}| cf skill | name | parent | fitness |
|---|---|---|---|
| {{ s.id[:8] }} | {{ s.name }} | {% if s.parent_id %} {{ s.parent_id[:8] }} {% else %} — {% endif %} | {{ "%.2f"|format(s.fitness_mean) }} ({{ s.successes }}/{{ s.trials }}) |
No counterfactuals yet — they only appear when a skill has ≥3 trials and fitness ≤ 0.5.
{% endif %}Skills sharing a domain are clustered into a schema, a meta-skill that picks among its children.
{% if schemas %} {% for sch in schemas %}No schemas yet — they emerge when ≥3 skills share a domain.
{% endif %}Each successful application drifts the skill's trigger embedding toward the task that just succeeded. Skills become magnets for the kind of work they keep solving — without retraining anything.
Total tuned skills: {{ kpi.hebbian }} of {{ kpi.skills_total }}.
Before the wake loop runs, the agent projects the action sequence from past
successful episodes that used the top-retrieved skill, and injects it as a
## PREDICTED PATH block in the user prompt.
Watch the live event stream (/events) for
forward_replay events.