Introducing branched experiments
Describe a comparison and Clusy forks one branch of your notebook per variant, runs them side by side on their own kernels, and brings the results back as a single comparison.
Today we're introducing branched experiments in Clusy: describe a comparison and the agent forks one branch of your notebook per variant, runs them side by side on their own kernels, and brings the results back as a single comparison.
Comparing three learning rates in a notebook has always meant choosing which kind of mess
you prefer. You can run them one after another in the same kernel and hope nothing from the
first run leaked into the third, or you can copy the notebook three times and reconcile four
results dictionaries by eye an hour later. Neither one leaves you with the thing you
actually wanted, which was never three notebooks — it was one comparison.
So you describe the comparison instead of the runs. Say "compare a frozen backbone, a partially unfrozen one, and full fine-tuning," and the agent first writes a plan — the cells it intends to add, the arms it intends to run, what it will measure — which you can revise or drop an arm from before anything is written or run. When you approve, the notebook forks at the last shared cell, each arm gets its own branch and its own kernel, and the arms execute concurrently rather than queueing behind one another. The losing branches stay in your tree afterwards, so you can open them and read what actually happened.
Branched experiments are available to everyone. A single sweep can fan out to eight variants, and because those variants share one sandbox they also share its CPU, memory and GPU — so keep the fan-out small when each arm is expensive.
The plan comes first
Ask for something substantial and the agent does not start typing cells into your notebook. It writes a plan document, which opens as its own tab on the canvas: the cells it intends to add, the arms it intends to run, and what it will measure on each.
You read it. You can revise a step, drop an arm you don't care about, or throw the whole thing away. Nothing is written to your notebook and nothing is executed until you give a verdict.
The part that matters is where that gate lives. It is not an instruction in the prompt asking the model to please wait — it is a refusal in the tool executor. The agent cannot write or run a cell while a plan is awaiting your approval, however much it would like to get on with it.
Variants run side by side, not one after another
When you approve, the notebook forks at the last shared cell. Each arm gets its own branch and its own kernel, and the arms execute concurrently rather than queueing behind a single execution slot.
Be aware of what that concurrency is and isn't. The branch kernels are separate kernels, but they live inside one sandbox — so eight arms share that sandbox's CPU, its memory, and, on a GPU project, its GPU. Eight simultaneous fine-tunes on one card will contend for VRAM. The parallelism is real, and the hardware underneath it is not eight machines. Keep the fan-out modest when each arm is expensive, and large when each arm is cheap.
The results come back as one comparison
Each arm reports back into a single card in the chat: its status, how long it took, and the metric you asked for. The agent reads across them and makes its call in the chat, with its reasoning.
The losing branches are not deleted. They stay in your tree, so the arm that didn't win is still there to open and inspect — which is usually where the actual finding is.
What this doesn't do yet
Variants share one sandbox, so training-heavy arms contend for the same hardware. The tree does not tidy itself after a comparison — every arm you ran is still a branch, and you clean them up by hand. And the agent offers the branched shape when you use comparative language, but it will not always spot that a request is really a comparison; when it doesn't, you can just say "run these as branches."
Availability
Branched experiments are live for everyone. A sweep can fan out to eight variants, and they run in your project's sandbox — the same one your notebook is already using. Plan Mode is a toggle on the composer.
What's next
Two things we are building now: comparison cards ranked on the metric you declared rather than on wall-clock, and automatic cleanup of the branches you didn't keep after a comparison.
Everything else we shipped this month is on the changelog.