Was this page helpful?
Claude может взаимодействовать с компьютерными средами через инструмент управления компьютером, который предоставляет возможности захвата снимков экрана и управления мышью/клавиатурой для автономного взаимодействия с рабочим столом. На WebArena, тесте для автономной веб-навигации по реальным сайтам, Claude достигает результатов уровня state-of-the-art среди систем с одним агентом, демонстрируя высокую способность выполнять многошаговые задачи в браузере от начала до конца.
Управление компьютером находится в бета-версии и требует бета-заголовка:
"computer-use-2025-11-24" для Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5"computer-use-2025-01-24" для Sonnet 4.5, Haiku 4.5, Opus 4.1, Sonnet 4, Opus 4 и Sonnet 3.7 (устаревшие)Поделитесь своими отзывами об этой функции через форму обратной связи.
This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
Управление компьютером — это бета-функция, которая позволяет Claude взаимодействовать с настольными средами. Этот инструмент предоставляет:
Хотя управление компьютером может быть дополнено другими инструментами, такими как bash и текстовый редактор, для более комплексных рабочих процессов автоматизации, управление компьютером конкретно относится к возможности инструмента управления компьютером видеть и контролировать настольные среды.
Управление компьютером доступно для следующих моделей Claude:
| Модель | Версия инструмента | Бета-флаг |
|---|---|---|
| Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5 | computer_20251124 | computer-use-2025-11-24 |
| Все остальные поддерживаемые модели | computer_20250124 | computer-use-2025-01-24 |
Claude Opus 4.6, Claude Sonnet 4.6 и Claude Opus 4.5 вводят версию инструмента computer_20251124 с новыми возможностями, включая действие zoom для детального осмотра областей экрана. Все остальные модели (Sonnet 4.5, Haiku 4.5, Sonnet 4, Opus 4, Opus 4.1 и Sonnet 3.7) используют версию инструмента computer_20250124.
Обратная совместимость старых версий инструментов с новыми моделями не гарантируется. Всегда используйте версию инструмента, соответствующую версии вашей модели.
Управление компьютером — это бета-функция с уникальными рисками, отличными от стандартных функций API. Эти риски возрастают при взаимодействии с интернетом.
Для минимизации рисков рассмотрите следующие меры предосторожности:
В некоторых обстоятельствах Claude будет следовать командам, найденным в контенте, даже если они противоречат инструкциям пользователя. Например, инструкции Claude на веб-страницах или содержащиеся в изображениях могут переопределять инструкции или вызывать ошибки Claude. Принимайте меры предосторожности для изоляции Claude от конфиденциальных данных и действий, чтобы избежать рисков, связанных с инъекцией промптов.
Модель обучена противостоять этим инъекциям промптов, и добавлен дополнительный уровень защиты. Если вы используете инструменты управления компьютером, классификаторы будут автоматически запускаться на ваших промптах для выявления потенциальных случаев инъекций промптов. Когда эти классификаторы обнаруживают потенциальные инъекции промптов на снимках экрана, они автоматически направляют модель на запрос подтверждения от пользователя перед выполнением следующего действия. Эта дополнительная защита не будет идеальной для каждого случая использования (например, для случаев без участия человека в процессе), поэтому если вы хотите отказаться от неё и отключить её, пожалуйста, свяжитесь со службой поддержки.
Эти меры предосторожности остаются важными даже при наличии уровня защиты классификатора.
Информируйте конечных пользователей о соответствующих рисках и получайте их согласие перед включением управления компьютером в ваших собственных продуктах.
Быстро начните работу с эталонной реализацией управления компьютером, которая включает веб-интерфейс, контейнер Docker, примеры реализаций инструментов и цикл агента.
Примечание: Реализация была обновлена для включения новых инструментов как для моделей Claude 4, так и для Claude Sonnet 3.7. Обязательно загрузите последнюю версию репозитория для доступа к этим новым функциям.
Используйте эту форму, чтобы предоставить отзыв о качестве ответов модели, самом API или качестве документации.
Вот как начать работу с управлением компьютером:
Бета-заголовок требуется только для инструмента управления компьютером.
В приведённом выше примере показаны все три инструмента, используемые вместе, что требует бета-заголовка, поскольку включает инструмент управления компьютером.
Повторение шагов 3 и 4 без ввода пользователя называется «циклом агента» (то есть Claude отвечает запросом на использование инструмента, а ваше приложение отвечает Claude результатами выполнения этого запроса).
Управление компьютером требует изолированной вычислительной среды, в которой Claude может безопасно взаимодействовать с приложениями и интернетом. Эта среда включает:
Виртуальный дисплей: виртуальный сервер дисплея X11 (с использованием Xvfb), который отображает интерфейс рабочего стола, который Claude будет видеть через снимки экрана и управлять с помощью действий мыши/клавиатуры.
Среда рабочего стола: лёгкий пользовательский интерфейс с оконным менеджером (Mutter) и панелью (Tint2), работающий на Linux, который предоставляет согласованный графический интерфейс для взаимодействия Claude.
Приложения: предустановленные приложения Linux, такие как Firefox, LibreOffice, текстовые редакторы и файловые менеджеры, которые Claude может использовать для выполнения задач.
Реализации инструментов: интеграционный код, который переводит абстрактные запросы инструментов Claude (например, «переместить мышь» или «сделать снимок экрана») в реальные операции в виртуальной среде.
Цикл агента: программа, которая обрабатывает коммуникацию между Claude и средой, отправляя действия Claude в среду и возвращая результаты (снимки экрана, выводы команд) обратно Claude.
При использовании управления компьютером Claude не подключается напрямую к этой среде. Вместо этого ваше приложение:
Для обеспечения безопасности и изоляции эталонная реализация запускает всё это внутри контейнера Docker с соответствующими маппингами портов для просмотра среды и взаимодействия с ней.
Доступна эталонная реализация, которая включает всё необходимое для быстрого начала работы с управлением компьютером:
Основой управления компьютером является «цикл агента» — цикл, в котором Claude запрашивает действия инструментов, ваше приложение выполняет их и возвращает результаты Claude. Вот упрощённый пример:
async def sampling_loop(
*,
model: str,
messages: list[dict],
api_key: str,
max_tokens: int = 4096,
tool_version: str,
thinking_budget: int | None = None,
max_iterations: int = 10, # Add iteration limit to prevent infinite loops
):
"""
A simple agent loop for Claude computer use interactions.
This function handles the back-and-forth between:
1. Sending user messages to Claude
2. Claude requesting to use tools
3. Your app executing those tools
4. Sending tool results back to Claude
"""
# Set up tools and API parameters
client = Anthropic(api_key=api_key)
beta_flag = (
"computer-use-2025-11-24"
if "20251124" in tool_version
else "computer-use-2025-01-24"
if "20250124" in tool_version
else "computer-use-2024-10-22"
)
# Configure tools - you should already have these initialized elsewhere
tools = [
{
"type": f"computer_{tool_version}",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
},
{"type": f"text_editor_{tool_version}", "name": "str_replace_editor"},
{"type": f"bash_{tool_version}", "name": "bash"},
]
# Main agent loop (with iteration limit to prevent runaway API costs)
iterations = 0
while True and iterations < max_iterations:
iterations += 1
# Set up optional thinking parameter (for Claude Sonnet 3.7)
thinking = None
if thinking_budget:
thinking = {"type": "enabled", "budget_tokens": thinking_budget}
# Call the Claude API
response = client.beta.messages.create(
model=model,
max_tokens=max_tokens,
messages=messages,
tools=tools,
betas=[beta_flag],
thinking=thinking,
)
# Add Claude's response to the conversation history
response_content = response.content
messages.append({"role": "assistant", "content": response_content})
# Check if Claude used any tools
tool_results = []
for block in response_content:
if block.type == "tool_use":
# In a real app, you would execute the tool here
# For example: result = run_tool(block.name, block.input)
result = {"result": "Tool executed successfully"}
# Format the result for Claude
tool_results.append(
{"type": "tool_result", "tool_use_id": block.id, "content": result}
)
# If no tools were used, Claude is done - return the final messages
if not tool_results:
return messages
# Add tool results to messages for the next iteration with Claude
messages.append({"role": "user", "content": tool_results})Цикл продолжается до тех пор, пока Claude не ответит без запроса каких-либо инструментов (завершение задачи) или не будет достигнут максимальный лимит итераций. Эта защита предотвращает потенциальные бесконечные циклы, которые могут привести к неожиданным расходам на API.
Попробуйте эталонную реализацию перед чтением остальной части этой документации.
Вот несколько советов о том, как получить наилучшее качество результатов:
After each step, take a screenshot and carefully evaluate if you have achieved the right outcome. Explicitly show your thinking: "I have evaluated step X..." If not correct, try again. Only when you confirm a step was executed correctly should you move on to the next one.<robot_credentials>. Использование управления компьютером в приложениях, требующих входа в систему, увеличивает риск плохих результатов из-за инъекции промптов. Ознакомьтесь с руководством по снижению риска инъекций промптов перед предоставлением модели учётных данных для входа.Если вы регулярно сталкиваетесь с чётким набором проблем или заранее знаете задачи, которые Claude должен будет выполнить, используйте системный промпт для предоставления Claude явных советов или инструкций о том, как успешно выполнять задачи.
Для агентов, охватывающих несколько сессий, запускайте сквозную проверку в начале каждой сессии, а не только после реализации. Проверки на основе браузера выявляют регрессии из предыдущих сессий, которые проверка только на уровне кода упускает. Подробности см. в Effective harnesses for long-running agents.
Когда один из инструментов, определённых Anthropic, запрашивается через API Claude, генерируется системный промпт, специфичный для управления компьютером. Он похож на системный промпт использования инструментов, но начинается с:
You have access to a set of functions you can use to answer the user's question. This includes access to a sandboxed computing environment. You do NOT currently have the ability to inspect files or interact with external resources, except by invoking the below functions.
Как и при обычном использовании инструментов, поле system_prompt, предоставленное пользователем, по-прежнему учитывается и используется при построении объединённого системного промпта.
Инструмент управления компьютером поддерживает следующие действия:
Базовые действия (все версии)
[x, y]Расширенные действия (computer_20250124)
Доступны в моделях Claude 4 и Claude Sonnet 3.7:
Расширенные действия (computer_20251124)
Доступны в Claude Opus 4.6 и Claude Opus 4.5:
computer_20250124enable_zoom: true в определении инструмента. Принимает параметр region с координатами [x1, y1, x2, y2], определяющими верхний левый и нижний правый углы области для осмотра.| Параметр | Обязательный | Описание |
|---|---|---|
type | Да | Версия инструмента (computer_20251124, computer_20250124 или computer_20241022) |
name | Да | Должно быть "computer" |
display_width_px | Да | Ширина дисплея в пикселях |
display_height_px | Да | Высота дисплея в пикселях |
display_number | Нет | Номер дисплея для сред X11 |
Важно: Инструмент управления компьютером должен явно выполняться вашим приложением — Claude не может выполнять его напрямую. Вы несёте ответственность за реализацию захвата снимков экрана, движений мыши, ввода с клавиатуры и других действий на основе запросов Claude.
Claude Sonnet 3.7 представил новую возможность «мышления», которая позволяет вам видеть процесс рассуждения модели при работе над сложными задачами. Эта функция помогает вам понять, как Claude подходит к проблеме, и может быть особенно ценной для отладки или образовательных целей.
Чтобы включить мышление, добавьте параметр thinking в ваш API-запрос:
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}Параметр budget_tokens указывает, сколько токенов Claude может использовать для мышления. Это вычитается из вашего общего бюджета max_tokens.
Когда мышление включено, Claude будет возвращать свой процесс рассуждения как часть ответа, что может помочь вам:
Вот пример того, как может выглядеть вывод мышления:
[Thinking]
I need to save a picture of a cat to the desktop. Let me break this down into steps:
1. First, I'll take a screenshot to see what's on the desktop
2. Then I'll look for a web browser to search for cat images
3. After finding a suitable image, I'll need to save it to the desktop
Let me start by taking a screenshot to see what's available...Инструмент использования компьютера можно комбинировать с другими инструментами для создания более мощных рабочих процессов автоматизации. Это особенно полезно, когда вам нужно:
Эталонная реализация предназначена для того, чтобы помочь вам начать работу с использованием компьютера. Она включает все компоненты, необходимые для того, чтобы Claude мог использовать компьютер. Однако вы можете создать собственную среду для использования компьютера в соответствии с вашими потребностями. Вам понадобится:
tool_use с помощью ваших реализаций инструментовИнструмент использования компьютера реализован как инструмент без схемы. При использовании этого инструмента вам не нужно предоставлять входную схему, как для других инструментов; схема встроена в модель Claude и не может быть изменена.
При реализации инструмента использования компьютера могут возникать различные ошибки. Вот как их обрабатывать:
API ограничивает изображения максимум 1568 пикселями по длинной стороне и приблизительно 1,15 мегапикселями в общей сложности (см. изменение размера изображения для получения подробной информации). Например, экран 1512x982 уменьшается примерно до 1330x864. Claude анализирует это меньшее изображение и возвращает координаты в этом пространстве, но ваш инструмент выполняет клики в пространстве исходного экрана.
Это может привести к тому, что координаты кликов Claude будут промахиваться мимо целей, если вы не обработаете преобразование координат.
Чтобы исправить это, измените размер снимков экрана самостоятельно и масштабируйте координаты Claude обратно:
Функциональность использования компьютера находится в бета-версии. Хотя возможности Claude являются передовыми, разработчики должны знать об его ограничениях:
left_mouse_down, left_mouse_up, и новой поддержки клавиш-модификаторов. Выбор ячеек может быть более надёжным при использовании этих детализированных элементов управления и сочетании клавиш-модификаторов с кликами.Всегда тщательно проверяйте и верифицируйте действия Claude при использовании компьютера и журналы. Не используйте Claude для задач, требующих идеальной точности или конфиденциальной информации пользователей, без человеческого контроля.
Использование компьютера — это клиентский инструмент. Все снимки экрана, действия мыши, ввод с клавиатуры и любые файлы, задействованные в сеансе, захватываются и хранятся в вашей среде, а не Anthropic. Anthropic обрабатывает изображения снимков экрана и запросы действий в режиме реального времени как часть вызова API, но не сохраняет их после возврата ответа.
Поскольку ваше приложение контролирует, где и как хранятся данные использования компьютера, использование компьютера имеет право на ZDR. Для получения информации о праве на ZDR для всех функций см. API и хранение данных.
Computer use follows the standard tool use pricing. When using the computer use tool:
System prompt overhead: The computer use beta adds 466-499 tokens to the system prompt
Computer use tool token usage:
| Model | Input tokens per tool definition |
|---|---|
| Claude 4.x models | 735 tokens |
| Claude Sonnet 3.7 (deprecated) | 735 tokens |
Additional token consumption:
If you're also using bash or text editor tools alongside computer use, those tools have their own token costs as documented in their respective pages.
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: computer-use-2025-11-24" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"tools": [
{
"type": "computer_20251124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
"display_number": 1
},
{
"type": "text_editor_20250728",
"name": "str_replace_based_edit_tool"
},
{
"type": "bash_20250124",
"name": "bash"
}
],
"messages": [
{
"role": "user",
"content": "Save a picture of a cat to my desktop."
}
]
}'Предоставьте Claude инструмент управления компьютером и пользовательский промпт
Claude решает использовать инструмент управления компьютером
stop_reason равный tool_use, сигнализируя о намерении Claude.Извлеките входные данные инструмента, выполните инструмент на компьютере и верните результаты
user, содержащим блок контента tool_result.Claude продолжает вызывать инструменты управления компьютером до завершения задачи
stop_reason равным tool_use, и вам следует вернуться к шагу 3.enable_zoom |
| Нет |
Включить действие zoom (только computer_20251124). Установите true, чтобы позволить Claude масштабировать определённые области экрана. По умолчанию: false |
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: computer-use-2025-11-24" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 2000,
"tools": [
{
"type": "computer_20251124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
"display_number": 1
},
{
"type": "text_editor_20250728",
"name": "str_replace_based_edit_tool"
},
{
"type": "bash_20250124",
"name": "bash"
},
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The unit of temperature, either 'celsius' or 'fahrenheit'"
}
},
"required": ["location"]
}
}
],
"messages": [
{
"role": "user",
"content": "Find flights from San Francisco to a place with warmer weather."
}
],
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}
}'Настройте вычислительную среду
Создайте виртуальный дисплей или подключитесь к существующему дисплею, с которым будет взаимодействовать Claude. Обычно это включает настройку Xvfb (X Virtual Framebuffer) или аналогичной технологии.
Реализуйте обработчики действий
Создайте функции для обработки каждого типа действий, которые может запросить Claude:
def handle_computer_action(action_type, params):
if action_type == "screenshot":
return capture_screenshot()
elif action_type == "left_click":
x, y = params["coordinate"]
return click_at(x, y)
elif action_type == "type":
return type_text(params["text"])
# ... handle other actionsОбрабатывайте вызовы инструментов Claude
Извлекайте и выполняйте вызовы инструментов из ответов Claude:
for content in response.content:
if content.type == "tool_use":
action = content.input["action"]
result = handle_computer_action(action, content.input)
# Return result to Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result,
}Реализуйте цикл агента
Создайте цикл, который продолжается до завершения задачи Claude:
while True:
response = client.beta.messages.create(...)
# Check if Claude used any tools
tool_results = process_tool_calls(response)
if not tool_results:
# No more tool use, task complete
break
# Continue conversation with tool results
messages.append({"role": "user", "content": tool_results})import math
def get_scale_factor(width, height):
"""Calculate scale factor to meet API constraints."""
long_edge = max(width, height)
total_pixels = width * height
long_edge_scale = 1568 / long_edge
total_pixels_scale = math.sqrt(1_150_000 / total_pixels)
return min(1.0, long_edge_scale, total_pixels_scale)
# When capturing screenshot
scale = get_scale_factor(screen_width, screen_height)
scaled_width = int(screen_width * scale)
scaled_height = int(screen_height * scale)
# Resize image to scaled dimensions before sending to Claude
screenshot = capture_and_resize(scaled_width, scaled_height)
# When handling Claude's coordinates, scale them back up
def execute_click(x, y):
screen_x = x / scale
screen_y = y / scale
perform_click(screen_x, screen_y)Узнайте больше об использовании инструментов и создании пользовательских инструментов