Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →If your Gemini Interactions API or Antigravity integration still searches interaction.outputs for function calls, update it to parse typed entries in interaction.steps. Google says the legacy schema was removed on June 8, 2026; its migration guide was last updated September 4, 2026. A parser that only checks the old array can miss calls rather than fail loudly. The migration also touches function-result matching, managed-agent state, and—if your integration uses them—streaming, history, server-side tools, and response formats.
What changes from outputs to steps?
Google’s Interactions API breaking-changes migration guide replaces the legacy outputs array with a typed steps array. Treat steps as a structured interaction timeline, not as a renamed container of final text. Depending on the interaction, entries can represent user input, model output, or tool activity; inspect each step’s type before deciding what to do with it.
As an Amazon Associate I earn from qualifying purchases.
For final text alone, use the SDK’s documented convenience property, such as output_text, where available. For tools or a full interaction flow, parse the steps and their type-specific fields. Also distinguish endpoint responses: POST /interactions returns output steps, while GET /interactions/{id} returns the full step timeline, including the initial user_input. Do not assume the two endpoints contain identical step sets.
The guide states that the legacy schema was removed on June 8, 2026. That date has passed, so new or maintained integrations should not depend on legacy outputs behavior.
#1 Best Overall
How should a client handle a custom function call?
Use both the interaction status and the typed steps. Google’s Antigravity agent guide demonstrates checking for requires_action, identifying function calls without a corresponding result, executing pending custom functions, and returning results in a follow-up interaction.
- Check whether action is required. When the interaction status is
requires_action, inspect its steps forfunction_callentries. - Match calls to results by ID. Collect the
call_idvalues already represented byfunction_resultsteps. Treat a call as pending only if its ID has no matching result. - Dispatch pending custom functions. Route each call to the implementation associated with its function name and arguments. Keep the declared tool schema and dispatcher aligned.
- Submit the result. Send a follow-up input of type
function_resultcontaining the function name, the originalcall_id, and the result.
The ID match is important for more than bookkeeping: it gives the client a concrete way to distinguish completed work from a call it still needs to handle. Do not treat every function_call as a client-executed custom function, however. The documentation says environment-managed filesystem tools such as write_to_file can also appear as function calls and are executed automatically by the environment.
Rank #2
The example does not establish a universal concurrency model, retry policy, idempotency guarantee, or error protocol. Define those rules for your own functions, especially where a repeat execution could cause side effects, and test them in your integration.
What else needs updating in a complete migration?
Google’s migration guide covers more than the location of function calls. Apply the parts relevant to features your integration actually uses.
Rank #3
Step types and tool handling
Handle the step types your application relies on, including user_input and model_output as well as function_call. If you use server-side tools, account for their dedicated step types—for example, google_search_call and google_search_result—instead of assuming every event is ordinary text output.
History and streaming
For stateless history reconstruction, the migration guide says to pass the steps array in the next request’s input. If your client consumes streaming events, update its listeners for the new SSE event types, including interaction.created and step.delta. These changes matter only if you use those history or streaming paths, but existing handlers should not assume the old event structure.
Rank #4
Response formats
The new polymorphic response_format consolidates output-format controls and removes response_mime_type. Migrate configuration according to the formats you use:
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstall- Put
mime_typeinsideresponse_format. - Wrap JSON schemas in a
{"type":"text","schema":...}object. - Move image configuration under an image response-format entry.
- Represent audio output with an audio entry.
Which state should an Antigravity continuation preserve?
Managed-agent continuations have two distinct state dimensions: conversation context and sandbox environment state. The managed-agent quickstart uses previous_interaction_id to continue conversation and tool context, and an environment identifier to refer to sandbox state such as files and installed packages. When resuming in the same sandbox, preserve the identifiers needed for both dimensions; one does not substitute for the other.
Best Value
Custom functions connect the agent to external APIs or databases. Keep the function schema, dispatch code, and follow-up result submission consistent as one contract so that the call the model emits can be executed and its result associated with the correct call.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.How should you separate schema migration from model migration?
The outputs-to-steps change is an API schema migration. Model-specific recommendations are a separate checklist: apply them only if they match the model and SDK used by your integration. For Gemini 3.5 Flash, Google’s model migration guidance recommends google-genai SDK v2.0.0 or later, matching id and name on FunctionResponse parts, replacing thinking_budget with thinking_level, and checking prompts, speed, and cost. These are not all consequences of replacing outputs with steps.
Migration checklist
- Replace reads and loops over
outputswith step-aware parsing and type checks. - Handle relevant
user_input,model_output, and tool steps rather than treating the timeline as plain text. - For custom functions, match each
function_callto afunction_resultbycall_id; execute unmatched custom calls and submit results with the call ID and function name. - Do not execute environment-managed filesystem calls as though they were ordinary client-side custom functions.
- If used, update server-side tool parsing, stateless history reconstruction, and streaming event listeners.
- Replace
response_mime_typewith the newresponse_formatshape and migrate the JSON, image, or audio configuration your integration uses. - For managed-agent continuations, preserve conversation and sandbox state as required.
- Review model-specific SDK and configuration guidance separately for the actual model in use.
Integration checks to run
Google’s documentation describes the schema and examples, not a supplied test suite. Build checks around the paths your client implements, including:
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteQuick Recap
- An ordinary text response.
- A custom function call awaiting action.
- A call that already has a matching result, which should not be treated as pending.
- A tool-result follow-up associated with the original call ID.
- Any server-side tool steps, history reconstruction, or streaming events your integration consumes.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




