Weco LogoWeco Docs
Using Weco

Steerability: Branching and Subtrees

Steer a Weco autoresearch run mid-flight. When a run plateaus or you have an idea to try, branch from where it already is instead of starting over. Each steer becomes a new subtree in the search.

A Weco autoresearch run explores the solution space on its own. Steerability lets you take the wheel mid-run, when the curve flattens, or you read a paper, or you just have a hunch, and push the search in a direction you choose. You don't stop the run and start over. You branch from where it already is.

Steering a run creates a new branch in the search: it starts from a node you pick (by default the best solution so far), applies your instruction, and explores from there. That branch shows up as a subtree in the run's tree, so the run keeps its full history and you can see exactly where each idea came from and how the branches compare.

When to steer

  • A run has plateaued. The metric has been flat for a while and you have an idea worth trying. Branch from the current best and give the search a fresh direction.
  • Try an idea from a paper. Read something on arXiv that should help? Describe the technique and let the search implement and evaluate it against your real metric.
  • Explore several directions at once. Start multiple branches in parallel, each with its own step budget, to test competing hypotheses side by side instead of one after another.
  • Inject domain knowledge. You know a constraint, a trick, or a dead end the search hasn't figured out. Tell it, and skip the wasted experiments.

How steering works

Steering creates a new branch from a step of an existing run. Under the hood, that's the weco run derive command: it takes a parent run, a step to branch from, and your instruction, then starts a fresh subtree that explores from that point.

# Illustrative only: your agent runs this for you (see below).
weco run derive <PARENT_RUN_ID> \
     --from-step best \
     --steps 15 \
     --additional-instructions "Ensemble TabPFN (arXiv:2207.01848) with the current model."

You control three things on each branch:

You chooseFlagWhat it does
Where to branch from--from-stepThe starting node: best (the lineage-best, default), run-best, or a step number.
What to try--additional-instructionsA natural-language instruction describing the idea or direction. Omit to inherit the parent's instructions.
How long to explore--stepsA step budget for the branch, so exploratory steers stay cheap. Omit to inherit the parent's budget.

The branch shares lineage with its parent, so its progress shows up in the same tree. Start several from the same node and you've fanned the search out into parallel subtrees, each chasing a different idea, all visible together.

You rarely run weco run derive by hand. The two sections below are the ways you actually steer.

Steer through your agent

The most natural way to steer is to just tell your agent. If you drive Weco from Claude Code or Cursor with the Weco skill installed, describe the idea in plain language and the agent creates the branch for you, picking the starting node, writing the instruction, and setting a step budget.

Start a run with your agent

Steering works best when an agent is driving, so it can create branches for you from plain language. With the Weco skill installed in Claude Code or Cursor, just describe what you want to optimize:

Use the Weco skill to maximize ROC-AUC on the tabular classification task in train.py.

The agent inspects your code, writes the evaluation, and kicks off the run. (You can also start a run directly with weco run from the CLI, but you'll want an agent in the loop to steer.)

Watch it, then steer when you have an idea

Let the run explore. When it plateaus or you want to try something, just say so:

This run has plateaued around 0.81 ROC-AUC. There's a paper, "TabPFN: A Transformer That Solves Small Tabular Classification Problems in a Second" (arXiv:2207.01848), that does strong zero-training inference on tabular data. Branch from the current best and ensemble it with the model we have, give it 15 steps.

The agent translates that into a new branch from the best node, with your instruction and a 15-step budget, and reports back when there's news.

Fan out, if you want

Ask for several directions at once and the agent starts a branch for each:

Try three ideas in parallel from the current best, 10 steps each:
target encoding for the high-cardinality categoricals, a CatBoost model, and stacking the current model with logistic regression on out-of-fold predictions.

Each becomes its own subtree you can compare in the dashboard.

Steer from the dashboard

Prefer to keep everything in the browser? Bridge your local Claude Code session into the Weco dashboard with weco start claude and you can message the agent — and steer the run — from the same place you watch it. See Use Claude Code in the dashboard.

Read the structure, not just the score

Open the run in the dashboard to explore the tree visually, compare subtrees, and view the best solution across the whole process.

See also

On this page