Gemini 2.5 Computer Use 终极指南:从入门到实作,打造你的 AI 自动化助理
Google DeepMind 推出的 Gemini 2.5 Computer Use 模型,让 AI 真正学会「操作电脑」。这不仅是技术突破,更是自动化的未来。本文将从核心概念、应用场景,到手把手的 Python 实作教学,带你全面掌握这项强大工具。
你有没有想过,如果 AI 不仅能跟你对话,还能像一位真人助理,亲手「操作」你的电脑或手机应用程式,那会是什么样子?它不再只是透过冷冰冰的程式码传递指令,而是能直接看懂画面,然后点击按钮、填写表单、拖曳档案。
这听起来像是科幻电影的情节,但 Google DeepMind 最新发布的 Gemini 2.5 Computer Use 模型,正让这一切成为现实。这是一个基于 Gemini 2.5 Pro 强大视觉理解与推理能力所打造的特化模型,它的目标很明确:赋予 AI 代理(Agent)一双能看懂并操作使用者介面(UI)的「手」。
为何我们需要一个会「用电脑」的 AI?
过去的 AI 与软体互动,大多依赖 API(应用程式介面)。你可以把 API 想像成一个软体的「点餐单」,AI 只能根据上面写好的选项来下指令。这种方式虽然高效,但限制非常大。
现实世界中,无数的数位任务——从线上预订餐厅、填写复杂的申请表,到管理专案看板——都需要直接与图形使用者介面(GUI)互动。我们需要点击、输入、滚动、选择下拉选单。这些对人类来说再自然不过的动作,对传统 AI 而言却像一道难以跨越的鸿沟。
Gemini 2.5 Computer Use 的出现,就是为了解决这个根本问题。它能让 AI 代理真正做到:
- 自动化重复性资料输入: 不再需要手动复制贴上,让 AI 为你填写网站上的各种表单。
- 执行自动化测试: 模拟真实使用者的操作流程,对网页应用程式进行端对端的测试。
- 跨网站研究与资讯整合: 让 AI 代理浏览多个电商网站,搜集产品资讯、价格和评论,帮助你做出购买决策。
这一步,对于建立更强大、更通用的 AI 代理至关重要。
它是如何运作的?解密幕后的「代理回圈」
那么,这个模型究竟是如何像人一样「看」和「做」的呢?它的核心运作机制,是一个不断循环的「代理回圈」(Agent Loop)。整个流程可以简化成以下四个步骤:
- 发送请求 (Send a request to the model): 你给 AI 一个任务(例如「帮我找找评分最高的智慧冰箱」),同时附上当前萤幕的截图。
- 接收模型回应 (Receive the model response): 模型会「看到」截图,分析你的请求,然后决定下一步该做什么。它会回传一个具体的 UI 操作指令,例如「在座标 (371, 470) 的搜寻框输入文字」。这个回应还可能包含一个安全决策,提醒你此操作是否存在风险。
- 执行收到的动作 (Execute the received action): 你的应用程式(用户端程式码)接收到这个指令后,便会实际执行这个点击或输入的动作。如果模型要求使用者确认,你的程式就需要先跳出提示,等待使用者同意。
- 撷取新的环境状态 (Capture the new environment state): 动作完成后,你的程式会撷取一张新的萤幕截图,连同操作结果一起回传给模型。
接着,这个过程会从第 2 步重新开始,模型会根据新的画面决定下一步动作,如此循环往复,直到整个任务完成。
手把手教学:用 Python 和 Playwright 打造你的第一个 AI 代理
理论听起来很酷,但怎么实际动手做呢?接下来,我们将使用 Python 和 Playwright(一个强大的浏览器自动化工具)来建立一个简单的 AI 代理。
第 0 步:环境准备
在开始之前,你需要两样东西:
- 安全的执行环境: 由于 AI 代理会实际操作浏览器,强烈建议在一个受控的环境中执行,例如沙盒化的虚拟机器、容器(Docker),或是一个权限受限的浏览器设定档。
- 用户端动作处理器: 你需要编写程式码来执行模型产生的指令(例如点击、输入)并撷取萤幕画面。这就是 Playwright 要发挥作用的地方。
第 1 步:安装必要套件
打开你的终端机,输入以下指令来安装 Google Generative AI 和 Playwright 的 Python 函式库。
pip install google-genai playwright
playwright install chromium
第 2 步:初始化 Playwright 浏览器
我们需要建立一个 Python 脚本,并初始化一个由 Playwright 控制的浏览器视窗。这将是-我们 AI 代理的工作空间。
from playwright.sync_api import sync_playwright
# 1. 设定目标环境的萤幕尺寸
SCREEN_WIDTH = 1440
SCREEN_HEIGHT = 900
# 2. 启动 Playwright 浏览器
# 在生产环境中,请使用沙盒环境
playwright = sync_playwright().start()
# 设定 headless=False 可以在萤幕上看到 AI 的操作过程
browser = playwright.chromium.launch(headless=False)
# 3. 建立具有指定尺寸的上下文和页面
context = browser.new_context(
viewport={"width": SCREEN_WIDTH, "height": SCREEN_HEIGHT}
)
page = context.new_page()
# 4. 导航到一个初始页面开始任务
page.goto("https://www.google.com")
print("浏览器已初始化,准备开始任务。")
第 3 步:建构代理回圈
这是整个专案的核心。我们将实作前面提到的四步回圈,让 AI 能够持续与浏览器互动。
首先,我们需要一些辅助函式来执行模型的回应并回传结果。
# 辅助函式:将模型回传的正规化座标 (0-999) 转换为实际像素座标
def denormalize_x(x, screen_width):
return int(x / 1000 * screen_width)
def denormalize_y(y, screen_height):
return int(y / 1000 * screen_height)
# 辅助函式:执行模型回传的 function calls
def execute_function_calls(candidate, page, screen_width, screen_height):
results = []
for part in candidate.content.parts:
if not part.function_call:
continue
fname = part.function_call.name
args = part.function_call.args
print(f"-> 正在执行: {fname},参数: {args}")
try:
if fname == "click_at":
x = denormalize_x(args["x"], screen_width)
y = denormalize_y(args["y"], screen_height)
page.mouse.click(x, y)
elif fname == "type_text_at":
x = denormalize_x(args["x"], screen_width)
y = denormalize_y(args["y"], screen_height)
page.mouse.click(x, y)
page.keyboard.type(args["text"])
if args.get("press_enter", False):
page.keyboard.press("Enter")
# ... 在此处实现其他支援的动作 ...
else:
print(f"警告: 未实现的函式 {fname}")
# 等待页面加载
page.wait_for_load_state(timeout=5000)
results.append((fname, {"status": "success"}))
except Exception as e:
print(f"错误: 执行 {fname} 时发生错误: {e}")
results.append((fname, {"error": str(e)}))
return results
# 辅助函式:撷取新的萤幕状态并打包成回传格式
def get_function_responses(page, results):
screenshot_bytes = page.screenshot(type="png")
current_url = page.url
function_responses = []
for name, result in results:
response_data = {"url": current_url, **result}
function_responses.append({
"name": name,
"response": response_data,
"screenshot": screenshot_bytes
})
return function_responses
现在,将所有部分组合起来,形成完整的代理回圈。
# (请确保您已设定好您的 genai API 金钥)
import google.genai as genai
from google.genai import types
# --- 完整的代理回圈主程式 ---
try:
# 1. 设定模型
model = genai.GenerativeModel(
'gemini-2.5-computer-use-preview-10-2025',
tools=[types.Tool(
computer_use=types.ComputerUse(
environment=types.Environment.ENVIRONMENT_BROWSER
)
)]
)
chat = model.start_chat()
# 2. 初始化任务
USER_PROMPT = "前往 aistudio.google.com 并搜寻关于 agents 的文件"
print(f"目标: {USER_PROMPT}")
initial_screenshot = page.screenshot(type="png")
# 3. 进入代理回圈
turn_limit = 10
for i in range(turn_limit):
print(f"\n--- 第 {i+1} 轮 ---")
# 发送请求给模型
if i == 0:
response = chat.send_message(
[USER_PROMPT, initial_screenshot],
)
else:
response = chat.send_message(function_responses)
# 接收并执行模型的回应
candidate = response.candidates[0]
if not any(part.function_call for part in candidate.content.parts):
print("代理完成:", candidate.content.parts[0].text)
break
results = execute_function_calls(candidate, page, SCREEN_WIDTH, SCREEN_HEIGHT)
# 撷取新状态并准备下一轮
print("-> 正在撷取新状态...")
function_responses = get_function_responses(page, results)
finally:
# 清理资源
print("\n任务结束,关闭浏览器...")
browser.close()
playwright.stop()
AI 的工具箱:支援的 UI 动作
Gemini 2.5 Computer Use 模型可以生成多种 UI 操作指令,以下是一些最常用的:
click_at(x, y): 在指定的座标点击滑鼠。type_text_at(x, y, text, ...): 在指定座标点击后输入文字。drag_and_drop(from_x, from_y, to_x, to_y): 拖曳一个元素到另一个位置。scroll_document(direction): 向特定方向滚动整个页面。navigate(url): 直接导航到指定的 URL。key_combination(keys): 按下组合键,如 “Control+C”。
安全性:赋予 AI 强大能力,更要套上「缰绳」
让 AI 掌握电脑的控制权是一把双面刃。恶意使用、网路钓鱼、误操作等风险也随之而来。因此,从一开始就建立完善的安全护栏至关重要。 Google 提供了多层次的防护措施:
- 人类参与回圈 (Human-in-the-Loop): 当模型的回应中包含
require_confirmation的安全决策时,你的程式必须暂停并请求使用者确认,才能继续执行。你不能编写程式码绕过这个请求。 - 自订安全指令: 开发人员可以提供自订的系统指令,来限制模型的行为。例如,你可以设定规则,禁止 AI 点击任何「同意服务条款」的按钮,或是在进行任何金融交易前都必须获得使用者授权。
- 安全执行环境: 再次强调,在沙盒化的环境中执行代理,可以大幅限制潜在的负面影响。
开发人员有责任谨慎对待这些风险,并实施适当的安全措施。
demo影片
结论与下一步
Gemini 2.5 Computer Use 的推出,不仅是 AI 技术的一大步,也为人机互动的未来开启了全新的想像空间。一个真正能理解我们、并为我们分担数位世界繁琐任务的通用 AI 代理,或许已经离我们不远了。
准备好开始打造你的 AI 助理了吗?
- 立即试用: 前往由 Browserbase 托管的展示环境,亲身体验它的操作。
- 查看范例程式码: 在 GitHub 参考实作 中找到更完整的程式码范例。
- 加入社群: 在 开发人员论坛 中分享你的想法和回馈,与全球的开发人员一同塑造这项技术的未来。
- 文档: https://ai.google.dev/gemini-api/docs/computer-use


