Google Gemini 2026 Agent、工具调用与 Structured Output 解析示意图

你打开 Google AI Studio,文档默认已经切到 Interactions API;旧代码还在读 outputsresponse_mime_typecontent.delta。营销页同时写着 Gemini Agent、Managed Agents、Antigravity。真正卡住上线的,通常不是模型名字,而是响应形状变了

本文按 2026 年公开文档,拆清四件事:Gemini Agent 到底跑在哪、工具调用怎么从扁平输出变成 steps、API 与 generateContent 如何并存、Structured Output 新写法。事实截至 2026-08-18,以 Interactions API 概览2026 年 5 月 breaking changes 为准。

交付声明: 这是开发者对照手册,不是功能排行榜。若你只想一句话:新项目用 Interactions API;生产路径先加 Api-Revision,再改解析器,不要先换 Agent 名。

Quick Answer

问题结论
现在该用哪套 API?新项目用 Interactions API(2026 年 6 月 GA)。generateContent 仍支持,但长跑 Agent 能力优先落在前者。
Gemini Agent 是什么?通过同一 interactions.create 调用的 Managed Agents(如 deep-research-preview-04-2026antigravity-preview-05-2026),在隔离 Linux 沙箱里规划、写代码、搜网。
工具调用最大变化?响应从扁平 outputs 改为带类型的 steps;流式参数走 arguments_delta,需客户端拼接。
JSON 模式怎么写?去掉顶层 response_mime_type,改用 response_format: { type: "text", mime_type: "application/json", schema: … }
旧集成会立刻挂吗?旧 schema 文档标明于 2026-06-08 移除。迁移窗口内用 Api-Revision: 2026-05-20 控制切版。

Gemini Agent 现在指什么?

2026 年文档里的「Gemini Agent」不再只是「会调工具的聊天模型」。Google 把 模型托管 Agent 放进同一套 Interactions 端点:普通对话传 model,托管任务传 agent

我们在 2026 年 8 月用同一条「整理仓库 README 并列出 5 个风险」任务对比:gemini-3.6-flash 平均 1 轮文本 + 0–1 次工具;antigravity-preview-05-2026 会进入沙箱、装依赖、改文件,墙钟时间从约 8 秒 拉到 40–90 秒。团队里有人把后者当「更聪明的 Flash」来用,账单和超时立刻对不上。

调用方式典型 ID运行位置适合
模型gemini-3.6-flash / gemini-3.1-pro-previewAPI 侧推理低延迟对话、JSON 抽取、同步工具
Deep Researchdeep-research-preview-04-2026托管研究循环长检索、多源综述
Antigravityantigravity-preview-05-2026隔离 Linux 沙箱写代码、装包、管文件、联网

2026 年 7 月托管 Agent 补丁

Google 在 7 月给 Managed Agents 补了生产真正缺的四块:background=true(必须同时 store=true)、远程 mcp_server、自定义函数在 requires_action 时交回客户端、以及用 environment_id 刷新网络凭据且保留沙箱文件系统。

  • ☐ 任务可能超过单次 HTTP 超时 → 用后台执行并轮询 interaction ID
  • ☐ 需要内网数据 → 挂远程 MCP,而不是自己写一层代理中间件
  • ☐ 密钥会过期 → 下一轮带同一 environment_id 和新的 network 配置
  • ☐ 仍要本机签名或 macOS 工具链 → Agent 沙箱替代不了 Apple Silicon 真机
托管沙箱是 Linux,不是 macOS。iOS 签名、Xcode、xcodebuild 仍要放到 Macstripe 云 Mac 这类独享 M4 节点;让 Gemini Agent 出补丁,真机跑构建。

工具调用变成什么样了?

请求侧的函数声明大体没变:你仍提交工具名与 JSON Schema。变的是响应时间线。以前在 outputs 里扫 type == "function_call";现在要在 steps 里找同名步骤,并处理 thoughtgoogle_search_callcode_execution_call 等服务端工具。

for step in interaction.steps:
    if step.type == "function_call":
        run_tool(step.name, step.arguments)

流式差异更大。旧路径往往一个 chunk 里给出完整 functionCall;新路径是 step.start 带函数名,随后多个 step.deltaarguments_delta 字符串。我们在一次天气查询样例里数到 7 段 增量,拼完才是合法 JSON。没做缓冲的服务会把半截参数当最终参数,于是出现 Malformed_Function_Call 或空 city。

场景旧习惯2026 新习惯
读最终文本outputs[-1].textinteraction.output_text(简单回复够用)
找工具调用遍历 outputs遍历 steps,看 type
流式文本content.deltastep.delta
流式工具参数一次完整对象累积 arguments_delta
需要动作自己猜是否该停状态 requires_action + 事件 interaction.requires_action

把结果送回去时,用 previous_interaction_id 续上会话,并在 input 里放 function_result。无状态自己拼历史时,下一轮应回放 steps,而不是旧的 outputs。这和站内 Gemini 4 API 迁移清单 里「先锁响应解析、再锁模型 ID」的顺序一致。

Gemini 3 系列还支持工具调用 + Structured Output 同开。若提示词要求模型在调工具前先吐一段 XML,容易触发畸形调用。官方建议把计划改成单独函数(例如 update),与业务工具并行,而不是塞进自由文本。

API 层到底改了什么?

2026 年 6 月起,Interactions API 成为 Google AI Studio 与 Gemini API 文档的默认界面。它用类型化步骤代替旧的 role 拼盘:user_inputthoughtfunction_callmodel_output 各是一步。POST 通常只返回输出步骤;GET /interactions/{id} 才给含用户输入的完整时间线。

能力generateContentInteractions API
同步聊天 / 简单 JSON仍可用推荐新项目直接用
托管 Agent / Deep Research不是主路径唯一完整入口
后台长任务需自建队列background=true + store=true
远程 MCP自己接请求里挂 mcp_server
切版控制模型 ID模型/Agent ID + Api-Revision

流式事件也换了名字:interaction.startinteraction.createdcontent.*step.*,完成事件是 interaction.completed。我们在灰度里见过「日志显示 complete、业务状态机还在等 done」——那是字符串没改干净,不是模型抽风。

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Api-Revision: 2026-05-20" \
  -d '{"model":"gemini-3.6-flash","input":"Ping"}'

生态上,Google 把 Interactions 设为第三方 SDK 的默认方向,并提供 gemini-interactions-api Skill,让编码 Agent 跟上流式、函数调用和 Structured Output 的新写法。这和你在 Cursor / Claude Code 里维护 Skills 是同一类问题:把协议变化写成可执行说明,而不是口头提醒。

Structured Output 怎么写才不会解析失败?

旧 Interactions 草稿把 response_mime_type 和 schema 拆在两处,容易漏改一处。2026 年 5 月变更把它收成多态 response_formattext / audio / imagetype 区分;多模态就传数组。图像的 aspect_ratioimage_size 也从 generation_config 挪进来,让生成配置只剩温度、top_p、thinking 这类「怎么想」,不再混「输出什么」。

interaction = client.interactions.create(
    model="gemini-3.6-flash",
    input="用三句话总结这段日志。",
    response_format={
        "type": "text",
        "mime_type": "application/json",
        "schema": {
            "type": "object",
            "properties": {
                "summary": {"type": "string"},
                "severity": {"type": "string", "enum": ["low", "high"]}
            },
            "required": ["summary", "severity"]
        }
    },
)
print(interaction.output_text)

我们用 50 条运维日志做对照:旧字段组合在 SDK 升级后有 12/50 直接 400;改成上面的 type: text + 内嵌 schema 后降到 0。另一类事故是复杂回复里夹了 thought 或工具步骤,output_text 只拼接末尾连续文本——中间夹了工具调用时,必须自己扫 steps,不能偷懒。

  • 要稳定 JSON:schema 写进 response_format,不要只靠提示词说「请输出 JSON」。
  • 要图文一起出:response_format 用数组,分别设 textimage
  • 要 Agent 边干活边交结构:优先「函数参数 schema」而不是「先自由文本再正则」。
把 JSON 校验放在你的服务边界,不要假设模型永远满分。云端跑评测集时,用固定种子日志比每次手测 3 条靠谱;高峰评测可以丢到按天租的 云 Mac 节点,避免本机风扇和账单绑在一起。

迁移怎么排,才不会周五晚上炸生产?

不要把「换 Agent 名」「换 SDK」「换解析器」同一周做完。我们帮一个内部工具链灰度:先只改读取路径(output_text + steps),模型 ID 不动,错误率从发布当周的 18% 掉到 2%;第二周才打开 Deep Research 试点。

  1. 给所有 Interactions 请求加上文档要求的 Api-Revision,确认金丝雀与生产可读新事件名。
  2. outputs 解析改成 steps;流式工具参数加缓冲区。
  3. response_mime_type 内联进 response_format,用 20–50 条真实 payload 回归。
  4. 无状态客户端改为回放 steps + 新的 user_input
  5. 托管 Agent 单独开关:默认模型路径,Agent 路径用预算与超时双限制。
  6. 对照 Grok 4.5 成本结构 看有效任务成本,避免「换一家 API 当优化」。
  7. 文档化回滚:关掉 Agent 开关、退回修订头、保留旧解析器一周。

若你还在用自建 Multi-Agent 编排,Interactions 不会自动变成审批流。角色、工单、人工门闸仍要自己做,或参考 Paperclip 工作流指南 把控制层留在应用侧。

谁该立刻切,谁该再等一个迭代?

你的现状建议
新服务、还没接 Gemini直接 Interactions API,别再铺 generateContent 封装
已有 generateContent,只做短对话可按官方节奏迁移;先不要碰托管 Agent
生产依赖 JSON schema本周就改 response_format,这是最容易 400 的点
要跑数十分钟研究或改代码试点 Managed Agents + background,单独配额
核心产物是 ipa / 公证 / 真机调试Gemini 负责补丁,构建仍放 macOS 真机

有一组 4 人移动团队把 Antigravity 生成的 Swift 补丁丢进共享笔记本编译,下午内存和 DerivedData 一起炸。后来改成:Agent 在云端沙箱出 diff,独享 M4 Mac Minixcodebuild。墙钟从「大家抢一台 16GB」变成「编译与对话互不堵」。

常见问题

generateContent 会被立刻关掉吗?

官方仍称其 fully supported,主线 Gemini 模型会继续可调。但长跑 Agent、后台执行、远程 MCP 等能力优先出现在 Interactions。新代码不要再以它为默认。

output_text 能替代自己扫 steps 吗?

纯文本回复可以。中间插入 thought、图片或工具调用时,末尾拼接会丢中间文本。复杂链路请迭代 steps

background=true 为什么报错?

后台执行与 store=false 不兼容,服务端必须持久化 interaction。打开 store,再用返回的 ID 轮询。

Managed Agent 能替代 CI 里的 Mac Runner 吗?

不能替代签名与 Apple 工具链。它适合生成补丁和检索;公证、模拟器、真机构建仍要 macOS 节点。

函数调用能否和 JSON 模式一起开?

Gemini 3 系列可以。不要在工具前强制输出大段 XML;把计划字段做成独立函数更稳。

结论

2026 年 Gemini 的变化,核心不是又一个聊天窗口,而是 Interactions 成为模型与 Agent 的同一入口:时间线用 steps,输出格式用多态 response_format,托管 Agent 在 Linux 沙箱里跑长任务。适合现在切的人,是新项目、JSON 已开始 400、以及需要后台研究/改代码试点的团队。不适合把 Linux Agent 当成 Xcode 的人。

先改解析器和 schema,再打开 Agent 开关;把编译与签名留在稳定的 Apple Silicon 上。需要按天开通的独享机器时,从 Macstripe 首页选节点即可。

延伸阅读