Self-improvement
How stella learns from its own work. The parts that change what it can do, what each one checks before a change sticks, and how to undo each change.
Most of what people call agent "self-improvement" is recall: a note file the agent writes to and reads back later. stella does that too: see Memory. But writing notes is a different thing from getting better.
This page covers the parts of stella that change what it can do. Each one checks a change before the change sticks, and each change can be undone.
Checked before it sticks
An agent that grades its own work will always look like it's improving. So each part below checks a change against something other than the model's own opinion:
- A new tool has to pass a test that fails without the tool and passes with it.
- A mined skill waits in a queue until its effect has been measured.
- A mined rule publishes on its own only when a measurement shows it helps. Otherwise it waits for you.
stella tunechanges a setting only when one choice beats the other by a clear margin.
The parts
When stella rebuilds the same shell command by hand again and again, the
Tool Foundry notices. After the turn, it writes a typed tool for that
command and a test for the tool. The test has to fail without the tool
and pass with it. A tool that passes is adopted and turned on, and it runs
with network access blocked. On a system where stella can't block network
access, it stops before adoption. Set foundry.autonomy to draft-only
to review each tool yourself, or to off to turn the Tool Foundry off.
See stella tools.
stella looks back on turns that failed or ran into trouble, and mines the
lessons that keep coming back. A lesson that recurs becomes a candidate
skill: a short procedure stella can pull into a later turn. With
context.promotion.skill.require_measured_lift on, which is the default,
a candidate waits in a queue for a measured result. Set it to false to
write mined skills right away. When a skill's trigger matches a turn,
that turn counts as a trial. Every 20th turn leaves a matching skill out,
so there is something to compare against. A skill stella wrote on its own is retired after three negative
results in a row.
The same look-back also proposes project rules. A proposal needs support
from several separate tasks. It publishes on its own only when a
measurement shows the rule helps. Otherwise it waits in
stella proposals for you to keep, edit, or
ignore. A published rule that stops helping is withdrawn.
stella tune compares two loop-bench runs that
differ only in the worker's reasoning effort. You run both yourself, which
needs Docker and a provider key. tune then scores the two result files
offline. It picks a winner only when each side has at least five trials
and the gap passes a 95% confidence test. It applies the winner when you
pass --promote, keeps a record of every run, and
stella tune rollback puts the old setting back.
stella dataset export writes one JSONL record
per accepted turn, plus a manifest.json that records the filter used
(--since / --until / --require-verdict). A turn is accepted when it
finished, changed at least one file, and every model-call transcript
checks out. Every string passes through the secret redactor, and only you
can read the files.
stella self-driving works through a
ranked issue backlog. It claims an issue, runs it through the turn loop,
and opens a draft pull request. When CI turns green, it marks the pull
request ready. It merges only after a person approves the review, unless
you pass --no-review.
stella's own repository runs loop-bench every night on four fixed tasks, using a low-cost model. The job fails when the agent loop itself breaks. It does not require a minimum pass rate.
Guardrails
stella tune rollback restores the previous setting.
stella tools --rollback restores a recorded version of a tool. A retired
skill's file stays on disk. A retired memory comes back with
stella memory reaffirm.
foundry.autonomy decides how far the Tool Foundry goes on its own.
context.promotion.skill.require_measured_lift decides whether a skill
needs a measured result first. Self-driving merges without a review only
when you pass --no-review.
The learning pass redacts secrets from the turn summary, observations, and
evidence before it stores them. stella dataset export redacts every
string it writes.
A tool the Tool Foundry builds runs with network access blocked, and it does nothing until it is both adopted and turned on.
Memory retirement follows the same rule. Retiring a memory
keeps the record, so you can look it up by ID and bring it back with
stella memory reaffirm.
The deck view
Interactive mode shows this work as it happens. The issues tab lists your GitHub backlog.
Starting work on an issue drafts a plan from the issue's checklist, then stops. A sources line names the files the code graph links to the issue and the memory rules those files trigger. Each task that changes files says what "done" means. When the workspace has past calls to price against, the plan shows an estimate of cost, tokens, and time. Nothing changes until you approve the plan.
See also
stella tools: the Tool Foundry's commands and settings.stella tune: scores a reasoning-effort A/B and keeps a rollback record.stella self-driving: the delivery loop.- Memory: the recall layer.
stella scoreboard: measures outcomes without asking the model how it did.