Narzędzie Computer Use umożliwia tworzenie agentów sterujących przeglądarką, komórką i komputerem, którzy wchodzą w interakcje z użytkownikiem i automatyzują zadania. Na podstawie zrzutów ekranu model może „widzieć” ekran komputera i „działać”, generując określone działania interfejsu, takie jak kliknięcia myszą i wpisywanie z klawiatury. Podobnie jak w przypadku wywoływania funkcji musisz wdrożyć środowisko wykonawcze po stronie klienta, aby otrzymywać i wykonywać działania związane z korzystaniem z komputera.
Gemini 3.5 Flash to zalecany model do użytku na komputerze. Wprowadzamy w nim kilka nowych funkcji:
- Obsługa wielu środowisk: twórz agentów dla środowisk przeglądarki, urządzeń mobilnych i komputerów.
- Uproszczone działania z intencjami: działania zawierają pole
intent, które wyjaśnia uzasadnienie modelu dla każdego kroku. - Konfigurowalne zasady bezpieczeństwa: dostosuj zachowanie związane z bezpieczeństwem za pomocą wbudowanych kategorii zasad i zastąpień.
- Wykrywanie wstrzykiwania promptów: włącz skanowanie zrzutów ekranu, aby wykrywać ukryte instrukcje.
Za pomocą funkcji Korzystanie z komputera możesz tworzyć agentów, którzy:
- automatyzować powtarzające się wprowadzanie danych lub wypełnianie formularzy w witrynach;
- Przeprowadzanie automatycznych testów aplikacji internetowych i ścieżek użytkownika
- prowadzić wyszukiwanie w różnych witrynach (np. zbierać informacje o produktach, cenach i opiniach w witrynach e-commerce, aby podjąć decyzję o zakupie);
Oto minimalny przykład inicjowania klienta i wysyłania prompta do modelu z narzędziem computer_use włączonym w środowisku przeglądarki:
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.6-flash",
input="Search for 'Gemini API' on Google.",
tools=[{"type": "computer_use", "environment": "browser"}]
)
print(interaction)
JavaScript
import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI();
const interaction = await ai.interactions.create({
model: 'gemini-3.6-flash',
input: "Search for 'Gemini API' on Google.",
tools: [{ type: "computer_use", environment: "browser" }]
});
console.log(interaction);
Jak działa korzystanie z komputera
Aby utworzyć agenta z modelem Computer Use, musisz skonfigurować ciągłą pętlę między aplikacją a interfejsem API. Oto, co Twój kod będzie robić na każdym etapie:
- Wysyłanie żądania do modelu
- Aplikacja wysyła żądanie do interfejsu API zawierające narzędzie Computer Use, ustawienia konfiguracji (np. środowisko docelowe), prompt użytkownika i zrzut ekranu.
- Otrzymywanie odpowiedzi od modelu
- Model analizuje ekran i prompt, a następnie zwraca odpowiedź, która zawiera sugerowany
function_callreprezentujący działanie w interfejsie (np. kliknięcie, przewinięcie lub naciśnięcie klawisza). - W przypadku Gemini 3.5 Flash odpowiedź zawiera też uzasadnienie
intentwyjaśniające, dlaczego model wybrał to działanie. - Odpowiedź może też zawierać
safety_decisionz wewnętrznego systemu bezpieczeństwa, który klasyfikuje działanie jako zwykłe/dozwolone,require_confirmation(wymagające zatwierdzenia przez użytkownika) lub zablokowane.
- Model analizuje ekran i prompt, a następnie zwraca odpowiedź, która zawiera sugerowany
- Wykonaj otrzymane działanie
- Jeśli działanie jest dozwolone (lub użytkownik je potwierdzi), kod po stronie klienta analizuje
function_call, skaluje znormalizowane współrzędne, aby dopasować je do widocznego obszaru, i wykonuje działanie w środowisku docelowym za pomocą narzędzi do automatyzacji (takich jak Playwright). Jeśli działanie jest zablokowane, klient powinien wstrzymać wykonanie lub obsłużyć przerwanie.
- Jeśli działanie jest dozwolone (lub użytkownik je potwierdzi), kod po stronie klienta analizuje
- Zapisz stan nowego środowiska
- Po wykonaniu działania aplikacja robi nowy zrzut ekranu i wysyła go z powrotem do modelu w
function_result, aby poprosić o kolejny krok.
- Po wykonaniu działania aplikacja robi nowy zrzut ekranu i wysyła go z powrotem do modelu w
Proces ten powtarza się od kroku 2, stale prosząc model o wykonanie kolejnej czynności, dopóki zadanie nie zostanie ukończone lub przerwane.

Jak wdrożyć korzystanie z komputera
Zanim zaczniesz korzystać z narzędzia do używania komputera, musisz skonfigurować:
- Bezpieczne środowisko wykonawcze: uruchamiaj agenta w piaskownicy w maszynie wirtualnej lub kontenerze, aby odizolować go od systemu hosta i ograniczyć jego potencjalny wpływ. Implementacja referencyjna zawiera gotową do użycia piaskownicę opartą na Dockerze, której możesz użyć jako punktu początkowego.
- Obsługa działań po stronie klienta: wdróż logikę po stronie klienta, aby wykonywać działania związane z współrzędnymi, wpisywać tekst i robić zrzuty ekranu.
W przykładach poniżej jako środowiska wykonawczego używamy przeglądarki, a jako modułu obsługi po stronie klienta – Playwright.
0. Konfigurowanie Playwright
Najpierw zainstaluj wymagane pakiety:
pip install google-genai playwright
playwright install chromium
Następnie zainicjuj instancję przeglądarki Playwright, która będzie używana do wykonywania:
from playwright.sync_api import sync_playwright
# 1. Configure screen dimensions for the target environment
SCREEN_WIDTH = 1440
SCREEN_HEIGHT = 900
# 2. Start the Playwright browser
# In production, utilize a sandboxed environment.
playwright = sync_playwright().start()
# Set headless=False to see the actions performed on your screen
browser = playwright.chromium.launch(headless=False)
# 3. Create a context and page with the specified dimensions
context = browser.new_context(
viewport={"width": SCREEN_WIDTH, "height": SCREEN_HEIGHT}
)
page = context.new_page()
# 4. Navigate to an initial page to start the task
page.goto("https://www.google.com")
# The 'page', 'SCREEN_WIDTH', and 'SCREEN_HEIGHT' variables
# will be used in the steps below.
1. Wysyłanie żądania do modelu
Zainicjuj bibliotekę klienta i skonfiguruj narzędzie Computer Use. Pamiętaj, że podczas wysyłania żądania nie musisz określać rozmiaru wyświetlacza. Model przewiduje współrzędne pikseli przeskalowane do wysokości i szerokości ekranu.
Gemini 3.5 Flash (zalecany)
Python
Użyj google-genaipakietu Python SDK (w wersji 2.7.0 lub nowszej), aby skonfigurować żądanie kierowane na środowisko przeglądarki:
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model='gemini-3.6-flash',
input="Find a flight from SF to Hawaii on Jun 30th, coming back on Jul 6th",
tools=[
{
"type": "computer_use",
"environment": "browser",
"enable_prompt_injection_detection": True
}
]
)
print(interaction)
JavaScript
Użyj pakietu @google/genai Node.js SDK, aby skonfigurować żądanie kierowane na środowisko przeglądarki:
import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI();
const interaction = await ai.interactions.create({
model: 'gemini-3.6-flash',
input: "Find a flight from SF to Hawaii on Jun 30th, coming back on Jul 6th",
tools: [
{
type: "computer_use",
environment: "browser",
enable_prompt_injection_detection: true
}
]
});
console.log(interaction);
REST
Użyj polecenia curl, aby wysłać żądanie:
curl -X POST \
"https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.6-flash",
"input": "Find me a flight from SF to Hawaii on Jun 30th, coming back on Jul 6th. Start by navigating directly to flights.google.com",
"tools": [
{
"type": "computer_use",
"environment": "browser",
"enable_prompt_injection_detection": true
}
]
}'
Gemini 2.5 (starsza wersja)
Python
from google import genai
client = genai.Client()
# Specify predefined functions to exclude (optional)
excluded_functions = ["drag_and_drop"]
interaction = client.interactions.create(
model='gemini-2.5-computer-use-preview-10-2025',
input="Search for highly rated smart fridges on Google Shopping.",
tools=[
{
"type": "computer_use",
"environment": "browser",
"excluded_predefined_functions": excluded_functions
}
]
)
print(interaction)
JavaScript
import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI();
// Specify predefined functions to exclude (optional)
const excludedFunctions = ["drag_and_drop"];
const interaction = await ai.interactions.create({
model: 'gemini-2.5-computer-use-preview-10-2025',
input: "Search for highly rated smart fridges on Google Shopping.",
tools: [
{
type: "computer_use",
environment: "browser",
excluded_predefined_functions: excludedFunctions
}
]
});
console.log(interaction);
2. Otrzymywanie odpowiedzi modelu
Model odpowiedzi sugeruje wywołanie funkcji. W przypadku Gemini 3.5 Flash odpowiedź zawiera dostosowany zamiar rozumowania wraz z współrzędnymi. Poniżej znajdziesz przykłady obu odpowiedzi:
Gemini 3.5 Flash
{
"steps": [
{
"type": "function_call",
"name": "click",
"arguments": {
"x": 450,
"y": 120,
"intent": "Click the search box to type the destination."
}
}
]
}
Gemini 2.5 (starsza wersja)
{
"steps": [
{
"type": "model_output",
"content": [
{
"type": "text",
"text": "I will type the search query into the search bar."
}
]
},
{
"type": "function_call",
"name": "type_text_at",
"arguments": {
"x": 371,
"y": 470,
"text": "highly rated smart fridges",
"press_enter": true
}
}
]
}
3. wykonywać otrzymane działania,
Aplikacja musi przeanalizować współrzędne odpowiedzi, wykonać działanie i skalować je ze znormalizowanych współrzędnych 1000 x 1000.
Poniższy kod obsługuje zarówno starsze polecenia narzędzi (click_at, type_text_at), jak i uproszczone polecenia Gemini 3.5 Flash (click, type).
Python
from typing import Any, List, Tuple
import time
def denormalize_x(x: int, screen_width: int) -> int:
"""Convert normalized x coordinate (0-1000) to actual pixel coordinate."""
return int(x / 1000 * screen_width)
def denormalize_y(y: int, screen_height: int) -> int:
"""Convert normalized y coordinate (0-1000) to actual pixel coordinate."""
return int(y /