使用 Google 构建 Agent的开发者指南:Antigravity、Agents API 和 ADK
使用 Google 构建 Agent的开发者指南:Antigravity、Agents API 和 ADK
使用 Google 构建 Agent的开发者指南:Antigravity、Agents API 和 ADK 使用 Google 构建 Agent的开发者指南:Antigravity、Agents API 和 ADK Modified May 23 Code block Python Copy client.agents.create( id="bug fixer", base agent="antigravity preview 05 2026", description="Reproduces, diagnoses, and fixes software bugs.", system instruction="You are a senior software engineer. Reproduce bugs, " "identify root causes, write fixes, and verify with tests.", tools=[ {"type": "code execution"}, {"type": "filesystem"}, {"type": "google search"}, {"type": "url context"}, ], base environment={ "type": "remote", "network": {"allowlist": [{"domain": " "}]}, }, ) 第 2 步:开始一次交互 这一步 Agent 会真正开始工作。你发送一条用户消息,然后 Antigravity harness 接管:它会规划、执行工具、验证结果,并自主从错误中恢复。Agent 会启动一个托管 Linux 沙箱,运行代码,读写文件,并按需搜索网页。你可以把结果流式返回。 background=True 让 Agent 能够异步运行多步骤任务;stream=True 则让你实时看到它正在做什么。Agent 工作时会发出逐步事件,也就是说,你能看到它的推理、工具调用和输出如何发生。 设置 store=True 可以确保这次交互被持久化到平台上。 Code block Python Copy stream = client.interactions.create( agent="bug fixer", input="The parse csv function throws an IndexError when the header " "contains empty columns. Clone the repo, find the bug, fix it " "and run the tests.", background=True, stream=True, store=True ) for event in stream: if hasattr(event, 'delta') and hasattr(event.delta, 'text'): print(event.delta.text, end='') elif hasattr(event, 'interaction') and event.event type == 'interaction.completed': print(f"\nStatus: {event.interaction.status}") print(f"Environment ID: {event.interaction.environment id}") 就这样。Agent 会克隆仓库,复现 bug,写修复,运行测试套件,并把结果说明流式返回给你。你没有写编排循环,没有供应沙箱,也没有管理任何状态。 当流结束时,interaction.completed 事件会包含一个 environment id。把它留好。下一次调用时传回去,Agent 就会从上次的位置继续,完整的文件系统和会话状态都会保留。 你会得到: • Antigravity Agent harness:Google 的生产级 Agent 循环,与 Gemini 共同优化,也是 Google 自身许多 Agent 背后的同一套循环。 • 托管 Linux 沙箱:三秒内完成供应,并原生挂接到 Agent。 • 开箱即用的服务端工具:代码执行、文件系统、搜索。 • 技能支持:把 Skill Registry 或 Cloud Storage bucket 里的技能挂载到 Agent 环境中,就能用领域专业能力扩展它。 你写指令。harness 负责多步骤规划、工具执行和验证。面对“修复这个 GitHub issue”或“分析这个客户文件并建议削减项”这样的输入,Agent 会自己处理其中步骤,不需要你管理中间过程。 过去需要一个小型平台团队才能构建的东西,现在变成了一次 HTTP 请求。 它有两个可用入口: • Gemini API 中的 Managed Agents,面向所有基于 Gemini 构建的开发者。 • Agent Platform 上的 Managed Agents API,面向在 Gemini Enterprise Agent Platform 上构建的企业开发者。后续路线图包括与 Agent Platform 的注册表、身份、网关策略和可观测性集成。 同一个 Agents API。同一个 Antigravity harness。两个入口,按你已经所在的位置选择。 Antigravity SDK:本地运行同一个 harness Agents API 把 harness 作为托管服务提供给你。Antigravity SDK(pip install google antigravity)则把同一个 harness 作为 Python 库交给你,在本地运行。 Code block Python Copy import asyncio import sys from google.antigravity import Agent, LocalAgentConfig, CapabilitiesConfig async def main(): config = LocalAgentConfig( system instructions="You are a senior software engineer.", api key="your api key here", capabilities=CapabilitiesConfig(), ) async with Agent(config) as agent: response = await agent.chat("Find and fix the memory leak in server.py") async for token in response: sys.stdout.write(token) sys.stdout.flush() print() if name == " main ": asyncio.run(main()) 同样的规划循环,同样的工具执行,同样的验证和恢复。SDK 还给你一些托管 API 没有的能力:内部推理流(response.thoughts)、工具调用拦截(response.tool calls)、自定义 Python 工具、MCP server 集成,以及一个声明式策略系统(deny(" ")、allow("view file")、ask user("run command")),用于精细控制 Agent 能做什么。 Agent 默认以只读模式运行。CapabilitiesConfig() 用来开启写入能力。SDK 遵循三层架构:Agent 负责 batteries included 的使用方式,Conversation 负责有状态会话管理,Connection 负责传输抽象。 Agent Development Kit:掌控编排 如果你已经在用 ADK 构建,原有方式不变。ADK 仍然是面向这些团队的高代码框架:想自己定义 Agent 图、确定性移交、共享状态和显式控制流。新的地方在于 ADK 如何连接到这套技术栈的其他部分: • Antigravity 现在是一等 ADK Agent 类型。你可以把它放进图里,和 LlmAgent、SequentialAgent 节点并列。harness 处理自主推理步骤,ADK 处理流程。 • Agents API 可以从 ADK 内部调用。有一个 ADK 工作流,但其中某个子任务是结果驱动型?把 Agents API 作为子 Agent 调用。ADK 管编排,Antigravity 管自主执行的那一段。 • A2A 是桥梁。ADK Agent 和 Agents API Agent 都原生支持 A2A。会说 A2A 的第三方 Agent 也能组合进来。 模型只是你塑造的系统里的一个组件。当你的工作流包含多个专职角色、对“何时调用什么”有监管约束,或者需要独立测试协调模式时,ADK 就是你该使用的地方。 为组合而设计 让这成为一条谱系,而不是一排彼此分离产品的关键,是互操作性。无论从哪里开始,你都可以扩展、嵌入或迁移,不必重建。 从 ADK 内部调用 Agents API。 如果 ADK 工作流需要一个结果驱动型子任务,就把 Agents API 作为子 Agent 调用。Antigravity harness 负责那一段,其余自定义编排按你写的方式运行。 把 Antigravity 直接嵌入为一等 ADK Agent。 ADK 原生带有 Antigravity harness 作为 Agent 类型。你可以把它放进图里,和自定义代码 Agent 并列。 自带容器。 已经有一个自定义 Agent 或基于 ADK 的 Agent?把它包成容器,把 URI 传给 Agents API,就能托管在 Google 的基础设施上,并获得和编队里其他 Agent 一样的注册表、身份和网关处理。 使用 A2A。 Agent2Agent(A2A)协议让不同框架的 Agent 可以对话。ADK Agent 和 Agents API Agent 都原生支持 A2A。会说 A2A 的第三方 Agent 也能加入。 双向桥接。 对于那些在 Agent Engine 上运行自定义 Agent、但想利用 Agents API 的客户,反过来也一样,有一个 dataplane bridge 可以在 Interactions API 调用和 A2A 调用之间转换。 关键点是:你不会走到一个必须永久承诺的岔路口。为了速度,可以从 Agents API 开始。如果工作负载里的某一段超出了结果模式,需要显式编排,就把那一段拉进 ADK,不影响其他部分。如果 ADK 系统里的某一段用托管 Antigravity 调用更简单,也可以替换。底层 harness 无论哪种方式都是同一个。 选择起点的实用指南 适合从 Agents API 开始的情况: • 你想在一个下午跑起真正的 Agent,而不是花一个 sprint。 • 工作可以很好地用结果描述:“修复这个 issue”、“分析这个文件夹”、“写这份报告”、“研究这个主题”。 • 你希望代码执行、文件系统访问和搜索自动挂好,不想自己搭沙箱基础设施。 • 你在构建 vibe coding 或生成式 Agent 构建体验:用户描述目标,然后系统代表用户供应一个 Agent。 • 你想以最快路径获得带 Google 工具的生产级 harness。 适合使用 ADK 的情况: • 你的工作流最适合被描述成一张图:多个专职角色、确定性移交、跨 Agent 共享状态。 • 你需要对“什么时候调用哪些工具”拥有显式、可测试的控制。 • 合规或审计要求你证明系统究竟如何行为。 • 你在编排长时间运行、跨多天的工作流,包含 checkpoint and resume、委派审批或编队协调模式。 • 你想拥有完整架构控制权,也愿意自己写编排,同时仍希望 Antigravity harness 作为图中的一个 Agent 可用。 适合两者都用的情况: • 你的系统有一个控制模式骨架,同时里面有结果模式的小块任务。这也是大多数真实生产系统的样子。用 ADK 做编排;用 Antigravity(通过 Agents API,或作为一等 ADK Agent)处理那些受益于自主推理的部分。 速览 • Antigravity 是 agentic harness:Google 的生产级 Agent 循环,与 Gemini 共同优化。 • Agents API 是轻量级、单次调用的入口,提供一个带 Antigravity harness、托管沙箱和内置工具的完整 Agent。可通过 Gemini API 中的 Managed Agents,以及 Vertex / Agent Platform 使用。 • ADK 是面向想掌控编排的团队的高代码框架,并且内置 Antigravity 作为一等 Agent。 • Agent Platform 是把这一切部署、治理并扩展到生产环境的地方。 第 2 步:开始一次交互 这一步 Agent 会真正开始工作。你发送一条用户消息,然后 Antigravity harness 接管:它会规划、执行工具、验证结果,并自主从错误中恢复。Agent 会启动一个托管 Linux 沙箱,运行代码,读写文件,并按需搜索网页。你可以把结果流式返回。 background=True 让 Agent 能够异步运行多步骤任务;stream=True 则让你实时看到它正在做什么。Agent 工作时会发出逐步事件,也就是说,你能看到它的推理、工具调用和输出如何发生。 设置 store=True 可以确保这次交互被持久化到平台上。 就这样。Agent 会克隆仓库,复现 bug,写修复,运行测试套件,并把结果说明流式返回给你。你没有写编排循环,没有供应沙箱,也没有管理任何状态。 当流结束时,interaction.completed 事件会包含一个 environment id。把它留好。下一次调用时传回去,Agent 就会从上次的位置继续,完整的文件系统和会话状态都会保留。 你会得到: • Antigravity Agent harness:Google 的生产级 Agent 循环,与 Gemini 共同优化,也是 Google 自身许多 Agent 背后的同一套循环。 • 托管 Linux 沙箱:三秒内完成供应,并原生挂接到 Agent。 • 开箱即用的服务端工具:代码执行、文件系统、搜索。 • 技能支持:把 Skill Registry 或 Cloud Storage bucket 里的技能挂载到 Agent 环境中,就能用领域专业能力扩展它。 你写指令。harness 负责多步骤规划、工具执行和验证。面对“修复这个 GitHub issue”或“分析这个客户文件并建议削减项”这样的输入,Agent 会自己处理其中步骤,不需要你管理中间过程。 过去需要一个小型平台团队才能构建的东西,现在变成了一次 HTTP 请求。 它有两个可用入口: • Gemini API 中的 Managed Agents,面向所有基于 Gemini 构建的开发者。 • Agent Platform 上的 Managed Agents API,面向在 Gemini Enterprise Agent Platform 上构建的企业开发者。后续路线图包括与 Agent Platform 的注册表、身份、网关策略和可观测性集成。 同一个 Agents API。同一个 Antigravity harness。两个入口,按你已经所在的位置选择。 Antigravity SDK:本地运行同一个 harness Agents API 把 harness 作为托管服务提供给你。Antigravity SDK(pip install google antigravity)则把同一个 harness 作为 Python 库交给你,在本地运行。 同样的规划循环,同样的工具执行,同样的验证和恢复。SDK 还给你一些托管 API 没有的能力:内部推理流(response.thoughts)、工具调用拦截(response.tool calls)、自定义 Python 工具、MCP server 集成,以及一个声明式策略系统(deny(" ")、allow("view file")、ask user("run command")),用于精细控制 Agent 能做什么。 Agent 默认以只读模式运行。CapabilitiesConfig() 用来开启写入能力。SDK 遵循三层架构:Agent 负责 batteries included 的使用方式,Conversation 负责有状态会话管理,Connection 负责传输抽象。 Agent Development Kit:掌控编排 如果你已经在用 ADK 构建,原有方式不变。ADK 仍然是面向这些团队的高代码框架:想自己定义 Agent 图、确定性移交、共享状态和显式控制流。新的地方在于 ADK 如何连接到这套技术栈的其他部分: • Antigravity 现在是一等 ADK Agent 类型。你可以把它放进图里,和 LlmAgent、SequentialAgent 节点并列。harness 处理自主推理步骤,ADK 处理流程。 • Agents API 可以从 ADK 内部调用。有一个 ADK 工作流,但其中某个子任务是结果驱动型?把 Agents API 作为子 Agent 调用。ADK 管编排,Antigravity 管自主执行的那一段。 • A2A 是桥梁。ADK Agent 和 Agents API Agent 都原生支持 A2A。会说 A2A 的第三方 Agent 也能组合进来。 模型只是你塑造的系统里的一个组件。当你的工作流包含多个专职角色、对“何时调用什么”有监管约束,或者需要独立测试协调模式时,ADK 就是你该使用的地方。 为组合而设计 让这成为一条谱系,而不是一排彼此分离产品的关键,是互操作性。无论从哪里开始,你都可以扩展、嵌入或迁移,不必重建。 从 ADK 内部调用 Agents API。 如果 ADK 工作流需要一个结果驱动型子任务,就把 Agents API 作为子 Agent 调用。Antigravity harness 负责那一段,其余自定义编排按你写的方式运行。 把 Antigravity 直接嵌入为一等 ADK Agent。 ADK 原生带有 Antigravity harness 作为 Agent 类型。你可以把它放进图里,和自定义代码 Agent 并列。 自带容器。 已经有一个自定义 Agent 或基于 ADK 的 Agent?把它包成容器,把 URI 传给 Agents API,就能托管在 Google 的基础设施上,并获得和编队里其他 Agent 一样的注册表、身份和网关处理。 使用 A2A。 Agent2Agent(A2A)协议让不同框架的 Agent 可以对话。ADK Agent 和 Agents API Agent 都原生支持 A2A。会说 A2A 的第三方 Agent 也能加入。 双向桥接。 对于那些在 Agent Engine 上运行自定义 Agent、但想利用 Agents API 的客户,反过来也一样,有一个 dataplane bridge 可以在 Interactions API 调用和 A2A 调用之间转换。 关键点是:你不会走到一个必须永久承诺的岔路口。为了速度,可以从 Agents API 开始。如果工作负载里的某一段超出了结果模式,需要显式编排,就把那一段拉进 ADK,不影响其他部分。如果 ADK 系统里的某一段用托管 Antigravity 调用更简单,也可以替换。底层 harness 无论哪种方式都是同一个。 选择起点的实用指南 适合从 Agents API 开始的情况: • 你想在一个下午跑起真正的 Agent,而不是花一个 sprint。 • 工作可以很好地用结果描述:“修复这个 issue”、“分析这个文件夹”、“写这份报告”、“研究这个主题”。 • 你希望代码执行、文件系统访问和搜索自动挂好,不想自己搭沙箱基础设施。 • 你在构建 vibe coding 或生成式 Agent 构建体验:用户描述目标,然后系统代表用户供应一个 Agent。 • 你想以最快路径获得带 Google 工具的生产级 harness。 适合使用 ADK 的情况: • 你的工作流最适合被描述成一张图:多个专职角色、确定性移交、跨 Agent 共享状态。 • 你需要对“什么时候调用哪些工具”拥有显式、可测试的控制。 • 合规或审计要求你证明系统究竟如何行为。 • 你在编排长时间运行、跨多天的工作流,包含 checkpoint and resume、委派审批或编队协调模式。 • 你想拥有完整架构控制权,也愿意自己写编排,同时仍希望 Antigravity harness 作为图中的一个 Agent 可用。 适合两者都用的情况: • 你的系统有一个控制模式骨架,同时里面有结果模式的小块任务。这也是大多数真实生产系统的样子。用 ADK 做编排;用 Antigravity(通过 Agents API,或作为一等 ADK Agent)处理那些受益于自主推理的部分。 速览 • Antigravity 是 agentic harness:Google 的生产级 Agent 循环,与 Gemini 共同优化。 • Agents API 是轻量级、单次调用的入口,提供一个带 Antigravity harness、托管沙箱和内置工具的完整 Agent。可通过 Gemini API 中的 Managed Agents,以及 Vertex / Agent Platform 使用。 • ADK 是面向想掌控编排的团队的高代码框架,并且内置 Antigravity 作为一等 Agent。 • Agent Platform 是把这一切部署、治理并扩展到生产环境的地方。 原帖链接:https://x.com/GoogleCloudTech/status/2057496396530438226 原帖链接:https://x.com/GoogleCloudTech/status/2057496396530438226 过去,构建一个生产级 Agent 意味着你要接手大量基础设施工作:自己搭编排循环,自己构建沙箱,让模型能安全地运行代码;还要接工具、管理状态、处理重试,然后祈祷凌晨 3 点不要出故障。真正有意思的工作,也就是 Agent 本身,会被埋在基础设施工作下面。 作者:@addyosmani 和 @Saboo Shubham 现在,一个带托管沙箱、内置工具和生产级推理循环的完整 Agent,只需要一次 API 调用就能创建。如果你的工作负载需要跨多个 Agent 进行显式、可审计的编排,也有对应框架,而且它会和托管 Agent 组合使用,而不是替代托管 Agent。 这篇文章会讲三个组成部分,以及它们如何配合: • Antigravity:Google 的生产级 agentic harness,是所有能力的底层引擎。 Antigravity • Agent Platform 上的 Managed Agents API(Preview):托管入口。描述你想要的结果,就能获得一个可工作的 Agent。 Agent Platform 上的 Managed Agents API(Preview) • ADK(Agent Development Kit):面向想要掌控图结构的团队的高代码框架。 ADK(Agent Development Kit) 你可以用两种方式理解自己该落在这条谱系的哪个位置: 按你想掌控多少循环来判断。 Agents API 会把 Antigravity harness 作为循环运行,你直接使用它。ADK 则让你编写自己的循环、自己的 harness,或者把 Antigravity harness 作为应用的一部分。 按工作形态来判断。 有些 Agent 最适合用结果来描述:“修复这个 issue”、“分析这个数据集”。另一些 Agent 更适合用流程来描述:“给线索打分、补充信息、路由给专职角色、等待审批”。如果你不需要很多自定义约束,Agents API 适合第一种形态;ADK 适合第二种。很多生产系统两者都有,这也是这些工具可以组合使用的原因。 Agents API:一次 API 调用创建完整 Agent 从这里开始。Agents API 是一个完全托管、配置驱动的服务。工作流分两步:先创建 Agent,再与它交互。 第 1 步:创建 Agent 这会在你的项目中注册一个可复用的 Agent 资源。你给它一个 ID,指定 Antigravity harness(base agent),设置指令,并声明它可以使用哪些工具。这个 Agent 会一直存在,直到你删除它。 先安装 Google GenAI SDK 并初始化客户端: 然后创建 Agent: