Python is the glue
Instead of calling one tool at a time, the model writes short Python steps that use tools together: read a file, reshape its data, open a page, save a result. Each step’s output stays in the session for the next one.
Repeated jobs become small helper functions you can read:
def normalise_id(value):
return value.strip().casefold()
normalise_id(" AB-12 ")
# "ab-12"This one trims spaces and evens out letter case. Try a helper on a few real examples before letting it loose on a whole dataset.
The toolbox
Tools come in three groups. Build covers files, code, shell commands, and running programs. Explore covers the web, the browser, and seeing and using the desktop (on Windows). Operate covers asking you a question when it needs a decision, working with other agents, skills, and connected services.
The model finds the tools it needs as it goes, so you can simply describe the task in plain language.
When tools adapt
Mutation lets the model improve the tools themselves. When it is on, the model can propose a change to how a tool works, test it, and switch it on for that chat. Every change is recorded and can be rolled back.
Mutation is off for new chats. Turn it on from the composer under Session tools → Mutation. It changes code, never the model’s own training.
Turning it off again
Switching mutation off stops new changes, but changes already switched on stay active until you roll them back or reset them. Saved tool code also can’t revive data that disappeared in a restart; see checkpoints.
Judge by results
A changed tool is only better if the output is. Try it on different inputs, including awkward ones, before relying on it. Mutation doesn’t add a sandbox around Python either; the Data & control guide explains what that means.