v1.15.0 β When the answer needs a program, an agent can write one
Until now an agent could only do what a fixed tool already did. Ask something that needed a calculation nobody had built a button for, and you got an explanation of how to do it yourself.
Agents can write and run code
48 agents can now write a program and actually run it β Python or JavaScript, with the analysis, maths and charting libraries already on hand, in a sealed one-time environment with no network access, destroyed the moment it finishes.
This is for the work no fixed tool covers: analysis over your own numbers, a chart drawn to your spec, reshaping a file into the form you needed, engineering maths that doesn't fit a calculator.
There's nothing to set up and nothing extra to subscribe to. It runs on every plan, from the same allowance as the rest of your usage β bounded by your budget rather than locked behind a tier.
The writing and repairing happens behind the scenes: your agent hands the task to a dedicated code expert, which writes the program, runs it, reads whatever errors it hits and fixes them, then hands back the result and any files it produced. You stay in the conversation with the agent you actually asked.
A code run you can follow
A long run now shows the stage it's in β writing, checking, running β instead of a frozen line for a minute.
And when something goes wrong it says which thing. Timed out, out of memory, missing dependency and the program has a bug are four different problems needing four different responses; they used to arrive as one identical red box. A crash now keeps its full error and the exact failing line, so the agent fixing it has something to work from instead of guessing.
Your knowledge base actually finds things
Documents are now understood in context, so "how many days do I have to ask for a refund?" returns the clause that answers it β not the document's title, which used to win for containing more of your keywords.
Exact terms are findable again: error codes, key names, function names. Across a corpus of 4,326 passages, exact-term lookups went from reaching the shortlist 63% of the time to 100%.
A question your documents can't answer now gets an honest "nothing here" instead of the least-irrelevant passage dressed up as a match. And Korean, Japanese and Chinese documents index properly β they could previously be accepted, marked complete, and stored as nothing at all.
Every tool call, drawn as what it is
14 kinds of tool call now render as themselves rather than a slug and a wall of JSON β covering 274 of 318 tools, up from 3.
A currency conversion reads 100 USD β 92 EUR on the collapsed row. A search shows where its sources cluster. A hand-off between agents reads as who asked whom and what came back β and if that agent delegated onward, you can open each level of the chain. The same call now looks the same in chat, in the inspector and in the workflow view.
Three things that were simply broken are fixed: tool-generated images didn't display, a failed call showed an empty panel with no error, and opening a workflow run with a recorded cost killed the whole page.
Search where you already are
Search now sits in the homepage, agents and teams headers, ranked by what you actually asked. Searching legal used to return two general-purpose agents first and not show the legal specialist in the top five at all. It also works signed out now β the term was previously discarded before it reached the server.
Teams can be @-mentioned from anywhere, no project required. That already worked; nothing ever told you. And every agent and team card lets you copy its @handle.
Fixes worth naming
Agents on Gemini were failing outright β two sampling settings were being sent that those models reject. Removed across the fleet. An agent is also no longer told it saw an image it never received, which is exactly as misleading as it sounds.
The full release note lives in the in-app What's New drawer.
Keep the feedback coming in Feature Requests β tell us what to build next.