Philipp Schmid · 博客

Gemini Managed Agents 底层工作原理

How Gemini Managed Agents Works under the Hood

二〇二六年六月十日 · 英文原文

Google 推出 Gemini Interactions API,允许开发者用五行代码构建可运行 agent。调用 `client.interactions.create()` 时,API 会启动一个隔离的 Linux 沙箱(4 vCPU、16 GB RAM),加载技能,并让 Gemini 3.5 Flash 模型进入推理-工具选择-代码执行-结果读取的循环,直至任务完成。沙箱环境支持持久化,可通过 `environment_id` 跨交互保持文件和状态。预览期间环境计算免费,仅按模型 token 计费。

你可以在五行代码内从零构建一个可运行的 agent。一次 API 调用,返回的结果就包含一份完成的 PDF、图表和摘要。

Python

from google import genai
 
client = genai.Client()
 
interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Analyze the latest lego set data and create a PDF report with charts",
    environment="remote",
)
 
print(interaction.output_text)

大多数人忽略的是: 这并非一次返回文本的单一模型调用。在这背后,一个沙箱被启动,技能被加载,模型进入一个循环——它进行推理、选择工具、执行代码、读取输出,然后重复,直到任务完成。

执行循环,逐步解析

interactions.create() 所做的远不止发送一个 prompt。它会启动一个完整的执行环境。

用户

你的代码

Gemini API

编排器

Gemini 3.5 Flash

推理

沙箱

Linux VM

  1. 你向 Gemini API 发送一个 prompt
  2. API 启动一个沙箱,将你的 prompt 路由到模型,分发工具调用,并收集结果
  3. Gemini 3.5 Flash 进行规划并选择工具,循环直到任务完成
  4. 代码在隔离的 Linux VM 内运行,而非在你的机器上

Prompt

Write a python script that prints hello world and execute it.

探索每一步

请求: 你的 prompt 通过 HTTPS 到达 Interactions API。API 接受它并开始在服务端编排交互。

1 / 10

沙箱内部

每次交互都会获得一个独立的 Linux 容器。agent 可以安装包、运行脚本、读写文件以及浏览网页。沙箱运行 Ubuntu,配备 4 vCPU 和 16 GB RAM。在预览期间,环境计算不收费(你只需为模型 token 付费)。

环境可以在多次交互之间持久化。第一次调用会返回一个 environment_id,你可以将其传回以保持文件和状态的完整性。有关来源、网络和生命周期的详细信息,请参阅环境文档

Python

# 第 1 轮:创建沙箱
i1 = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Install pandas and create analysis.py",
    environment="remote",
)
 
# 第 2 轮:同一沙箱,文件持久化
i2 = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Run analysis.py on the Q1 data",
    environment=i1.environment_id,
    previous_interaction_id=i1.id,
)

从 Prompt 到生产级 Agent

无论你是在实验还是投入生产,执行循环都是相同的。区别在于你希望预先提供多少配置。

  1. 即席调用: 使用 environment="remote" 发送一个 input。

Python

interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Write a Python script that prints hello world",
    environment="remote",
)
  1. 添加指令和技能: 使用 system_instructionAGENTS.md 自定义行为,并通过 sources 提供技能。

Python

interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Analyze Q1 revenue and create a slide deck.",
    system_instruction="You are a data analyst. Export results as PDF.",
    environment={
        "type": "remote",
        "sources": [
            {"type": "inline", "target": ".agents/AGENTS.md",
             "content": "Always use matplotlib for charts."},
            {"type": "inline", "target": ".agents/skills/slides/SKILL.md",
             "content": "---\nname: slides\n---\n# Slide Maker\nCreate HTML decks."},
        ],
    },
)
  1. 保存为托管 agent: 一旦你的设置稳定,使用 client.agents.create() 将其持久化。每次调用都会从基础环境 fork 出一个新的沙箱。

Python

agent = client.agents.create(
    id="data-analyst",
    base_agent="antigravity-preview-05-2026",
    system_instruction="You are a data analyst. Export results as PDF.",
    base_environment={
        "type": "remote",
        "sources": [
            {"type": "repository", "source": "https://github.com/my-org/templates",
             "target": "/workspace/templates"},
        ],
    },
)
  1. 通过 ID 调用: 在每次调用中引用 agent ID。相同的循环,无需重复配置。

Python

result = client.interactions.create(
    agent="data-analyst",
    input="Analyze Q1 revenue data and create a slide deck.",
    environment="remote",
)
print(result.output_text)

下一步

译自 Philipp Schmid · 博客 · 录于 二〇二六年六月十日