进阶 📋 7 个步骤 第 192 / 470 篇

用 Google Gemini Managed Agents 让 AI 在云端后台持续跑长任务

Google 于 2026-07-07 通过 Interactions API 大幅扩展 Gemini Managed Agents(GA)。本教程用 google-genai SDK 在隔离 Linux 沙箱里跑后台长任务、接远程 MCP、刷新凭据,把原型升级成可靠的生产级 Agent。

2026.07.28· 20 分钟阅读· 约 1541 字· ☁️ Gemini Managed Agents / 🤖 云端 Agent

一个在终端关掉就「死掉」的 Agent,称不上生产级 Agent。Google 于 2026-07-07 通过 Interactions API 大幅扩展了 Gemini Managed Agents(自 6 月 GA),把「运行时」直接托管给 Google:隔离 Linux 沙箱、后台执行、远程 MCP、凭据刷新,一次 client.interactions.create() 调用全搞定。本教程面向想从原型走向可靠 Agent 的开发者,用 google-genai SDK 一步步跑通「云端后台长任务」。

☁️ 本教程适合:已会用 Python 调大模型 API、想把 Agent 从「本地脚本」升级成「云端常驻服务」的开发者 / 产品技术团队。

先搞懂:Managed Agents 把什么从你肩上卸下了?

在 Interactions API 之前,做一个自主 Agent 意味着自己拼一套运行时:工具调用循环、代码执行沙箱、会话状态管理、异步任务队列、可观测层。每个团队都在重造轮子。Managed Agents 把运行时交给 Google,你只管「做什么」:

自己搭运行时(旧)Managed Agents(新)
手写 tool-use 循环一个 API 调用跑完 推理→工具→观察 循环
自建沙箱 / 容器每次调用自动开隔离 Linux 沙箱
自己管异步队列background=true 后台跑,不阻塞客户端
自己接 MCPtools 里声明 mcp_server 即可复用

默认 Agent 是 Antigravity(antigravity-preview-05-2026),由 Gemini 3.5 Flash 驱动的托管沙箱。本教程所有示例都用这个默认 Agent,无需自己部署模型。

Step 1:准备 Python 3.10+ 与 google-genai SDK

1 装好 SDK 和 API Key
# google-genai 要求 Python 3.10 起
python3 --version        # 需显示 3.10 / 3.11 / 3.12

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade google-genai requests

# 在 Google AI Studio 创建 Key 并导出(切勿提交到代码库)
export GEMINI_API_KEY="your-api-key"
💡 生产环境请用密钥管理(Vault / GCP Secret Manager / CI 加密变量),别把 Key 写进源码或提交到 Git。

Step 2:第一次交互——在远端沙箱里跑任务

2 一次调用 = 一个隔离 Linux 沙箱

下面这段同步调用会在远端开一个全新沙箱,让 Agent 写脚本、存文件、打印结果:

from google import genai

client = genai.Client()   # 自动读取 GEMINI_API_KEY

interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input=(
        "写一段 Python 生成前 20 个斐波那契数,"
        "存到 fibonacci.txt,然后打印文件内容。"
    ),
    environment="remote",
)

print(f"Interaction ID: {interaction.id}")
print(f"Environment ID: {interaction.environment_id}")
print(f"Status: {interaction.status}")
print(f"Output:\n{interaction.output_text}")
🔑 务必保存 interaction.id(对话上下文)和 environment_id(沙箱状态:文件、已装依赖),多轮对话和断点续跑都靠它们。

Step 3:多轮——对话上下文与沙箱状态分开管

3 两个独立的状态维度

API 把两种状态拆开:对话历史靠 previous_interaction_id,沙箱文件靠 environment_id。这样第一轮生成的文件,第二轮还能继续用:

interaction_2 = client.interactions.create(
    agent="antigravity-preview-05-2026",
    previous_interaction_id=interaction.id,   # 延续对话
    environment=interaction.environment_id,    # 复用沙箱文件
    input="把斐波那契数列画成折线图,存为 chart.png。",
)
print(interaction_2.output_text)

长会话会「上下文腐烂」?Managed Agents 有自动压缩(约 135k token 触发),不用担心超长对话丢失。要拿回 Agent 产出的文件,用 Files API 下载沙箱快照(tar 包)。

Step 4:后台执行——长任务不阻塞客户端

4 background=true + store=true

克隆仓库、跑测试、生成报告可能要好几分钟。同步模式会卡住你的进程、还可能 HTTP 超时。解决:开后台。

interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="克隆我的仓库,跑全套测试,写一份测试报告。",
    environment="remote",
    background=True,   # 立即返回,不阻塞
    store=True,        # 保留沙箱状态,可后续取回
)
print(interaction.id, interaction.status)  # 状态可能是 running

# 之后用 interaction.id 轮询 / 取结果,关掉终端任务也还在跑
🚀 这正是它「生产级」的关键:任务脱离你的终端存活,适合 CI、定时任务、长时间研究型 Agent。

Step 5:接远程 MCP——复用你已有的工具服务器

5 不重写集成,直接声明 mcp_server

如果你已经部署了 MCP 工具服务器,Agent 可以直接连,不用为每个集成重写一遍:

interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="用我们的内部 MCP 查本月销售额,生成图表。",
    environment="remote",
    tools=[{
        "type": "mcp_server",
        "mcp_server": {
            "name": "internal-sales",
            "url": "https://mcp.internal.example.com/sse",
        },
    }],
)
🔌 远程 MCP 让你不用把内网系统暴露到公网——Agent 在沙箱里通过受控通道访问私有 MCP 服务器,企业 IT 最爱这点。

Step 6:自定义函数与凭据刷新

6 requires_action + environment_id

遇到 Google 沙箱里执行不了的内部 API,可以声明自定义函数并标记为 requires_action,由你的服务补执行;令牌过期也不必冷重启沙箱,用 environment_id 刷新凭据:

# 自定义函数:沙箱无法直连时,转交你的后端
tools=[{
    "type": "function",
    "function": {
        "name": "charge_card",
        "status": "requires_action",   # 交给外部执行
    },
}]

# 凭据刷新:同一 environment_id 下换新 token,沙箱状态不丢
client.environments.update(
    environment_id=interaction.environment_id,
    credentials={"api_key": refreshed_token},
)

涉及扣款 / 写操作的函数务必走 requires_action + 人工审批,别让沙箱里的 Agent 自行完成敏感动作。这与本中心《Agent 安全体检》教程的「允许动作最小化」原则一致。

Step 7:真实场景——云端后台持续干活的 Agent

7 把前面拼成一条生产路径

把后台执行 + 远程 MCP + 凭据刷新组合起来,就是一个「下班后还在跑」的研究 / 运维 Agent:

# 场景:每天凌晨拉数据→分析→出报告→存云盘
1. 定时触发 client.interactions.create(background=True, store=True)
2. tools 声明内部 MCP(只读数据库)
3. input: "汇总昨日指标,生成 report.md 和 chart.png"
4. 用 Files API 取回产物,传到云盘 / 发 Slack
5. 令牌临近过期前用 environment_id 刷新,任务不中断
💡 想更省心?Google Cloud 同期的 Agent Runtime / Agent Gateway 把认证、限流、策略执行都包了,适合要规模化运行多 Agent 的团队。

常见问题速查

现象原因 & 解决
SDK 报 Python 版本低升级到 3.10+ 再建 venv
后台任务卡 running长任务正常,用 id 轮询,别反复新建
沙箱文件取不到确认 store=True,再用 Files API 下快照
远程 MCP 连不上检查 URL 可达性与鉴权,别暴露内网端口
← 返回教程中心