Claude может взаимодействовать с компьютерными средами через инструмент использования компьютера, который предоставляет возможности создания снимков экрана и управления мышью/клавиатурой для автономного взаимодействия с рабочим столом.
Использование компьютера — это бета-функция, которая позволяет Claude взаимодействовать со средами рабочего стола. Этот инструмент предоставляет:
Хотя использование компьютера можно дополнить другими инструментами, такими как bash и текстовый редактор, для более комплексных рабочих процессов автоматизации, термин «использование компьютера» относится именно к способности инструмента использования компьютера видеть среды рабочего стола и управлять ими.
Информацию о поддержке моделей см. в Справочнике по инструментам.
Использование компьютера — это бета-функция с уникальными рисками, отличными от стандартных функций API. Эти риски возрастают при взаимодействии с интернетом.
В некоторых обстоятельствах Claude будет следовать командам, найденным в контенте, даже если они противоречат вашим инструкциям. Например, инструкции на веб-страницах или содержащиеся в изображениях могут переопределить ваши инструкции или привести к ошибкам Claude. Примите меры предосторожности, чтобы изолировать Claude от конфиденциальных данных и действий во избежание рисков, связанных с инъекцией подсказок.
Anthropic обучила модель противостоять таким инъекциям подсказок и добавила дополнительный уровень защиты. Если вы используете инструменты использования компьютера, классификаторы будут автоматически запускаться на ваших подсказках, чтобы помечать потенциальные случаи инъекций подсказок. Когда эти классификаторы выявляют потенциальные инъекции подсказок в снимках экрана, они автоматически направляют модель запросить подтверждение пользователя, прежде чем перейти к следующему действию. Эта дополнительная защита подходит не для каждого сценария использования (например, для сценариев без участия человека в цикле), поэтому, если вы хотите отказаться от неё и отключить её, обратитесь в службу поддержки.
Эти меры предосторожности остаются важными даже при наличии уровня защиты на основе классификаторов.
Информируйте конечных пользователей о соответствующих рисках и получайте их согласие, прежде чем включать использование компьютера в ваших собственных продуктах.
Начните работу с эталонной реализацией использования компьютера, которая включает веб-интерфейс, контейнер Docker, примеры реализаций инструментов и агентный цикл.
Вот как начать работу с использованием компьютера:
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-5", # or another compatible model
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."}],
betas=["computer-use-2025-11-24"],
)
print(response)Предоставьте Claude инструмент использования компьютера и пользовательскую подсказку
Claude выбирает инструмент использования компьютера
stop_reason со значением tool_use, сигнализирующим о запросе на использование инструмента.Извлеките входные данные инструмента, выполните инструмент на компьютере и верните результаты
user, содержащим блок контента tool_result.Claude продолжает вызывать инструменты использования компьютера, пока не выполнит задачу
stop_reason tool_use, и вам следует вернуться к шагу 3.Повторение шагов 3 и 4 без участия пользователя называется «агентным циклом» (то есть Claude отвечает запросом на использование инструмента, а ваше приложение отвечает Claude результатами выполнения этого запроса).
Использование компьютера требует изолированной вычислительной среды, в которой Claude может безопасно взаимодействовать с приложениями и интернетом. Эта среда включает:
Виртуальный дисплей: виртуальный сервер дисплея X11 (с использованием Xvfb), который отрисовывает интерфейс рабочего стола, который Claude будет видеть через снимки экрана и которым будет управлять с помощью действий мыши/клавиатуры.
Среда рабочего стола: лёгкий пользовательский интерфейс с оконным менеджером (Mutter) и панелью (Tint2), работающий на Linux, который предоставляет согласованный графический интерфейс для взаимодействия Claude.
Приложения: предустановленные приложения Linux, такие как Firefox, LibreOffice, текстовые редакторы и файловые менеджеры, которые Claude может использовать для выполнения задач.
Реализации инструментов: интеграционный код, который преобразует абстрактные запросы инструментов Claude (такие как «переместить мышь» или «сделать снимок экрана») в реальные операции в виртуальной среде.
Агентный цикл: программа, которая обрабатывает взаимодействие между Claude и средой, отправляя действия Claude в среду и возвращая результаты (снимки экрана, вывод команд) обратно Claude.
Когда вы используете использование компьютера, Claude не подключается к этой среде напрямую. Вместо этого ваше приложение:
Для безопасности и изоляции эталонная реализация запускает всё это внутри контейнера Docker с соответствующими сопоставлениями портов для просмотра среды и взаимодействия с ней.
Доступна эталонная реализация, которая включает всё необходимое для начала работы с использованием компьютера:
Основой использования компьютера является «агентный цикл»: цикл, в котором Claude запрашивает действия инструментов, ваше приложение выполняет их и возвращает результаты Claude. Цикл использует клиент, который вы создали в разделе Быстрый старт, список инструментов, оформленный как массив tools из раздела «Быстрый старт», и вспомогательную функцию обработки вызовов инструментов, определённую в разделе Обработка вызовов инструментов Claude. Вот упрощённый пример:
def sampling_loop(model, messages, max_iterations=10):
"""
Run the computer-use agent loop until Claude stops requesting tools
or the iteration limit is reached.
"""
for _ in range(max_iterations):
response = client.beta.messages.create(
model=model,
max_tokens=4096,
messages=messages,
tools=TOOLS,
betas=["computer-use-2025-11-24"],
)
# Добавьте ответ Claude в историю диалога
messages.append({"role": "assistant", "content": response.content})
# Запустите все инструменты, запрошенные Claude, и соберите результаты
tool_results = process_tool_calls(response)
if not tool_results:
return messages # No more tool use; task complete
# Отправьте результаты инструментов обратно Claude для следующей итерации
messages.append({"role": "user", "content": tool_results})
return messagesЦикл продолжается до тех пор, пока 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>. Использование компьютера в приложениях, требующих входа в систему, повышает риск негативных последствий в результате инъекции подсказок. Ознакомьтесь с разделом Предотвращение джейлбрейков и инъекций подсказок, прежде чем предоставлять модели учётные данные для входа.content для хода пользователя размещайте текст инструкции перед изображением снимка экрана. Предоставление описания цели до обработки изображения повышает точность нажатий.computer_20251124 с установленным enable_zoom: true Claude увеличивает область, когда его спрашивают о мелком тексте или конкретных элементах пользовательского интерфейса, которые неразборчивы при разрешении снимка экрана по умолчанию, таких как имена файлов в боковой панели, заголовки вкладок, текст строки состояния, номера строк или подписи кнопок. Если Claude не увеличивает изображение, когда вы этого ожидаете, спросите о конкретной области или элементе, а не об экране в целом.Когда один из инструментов со схемой Anthropic запрашивается через Claude API, генерируется системная подсказка, специфичная для использования компьютера. Она похожа на системную подсказку для использования инструментов, но начинается с:
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 по-прежнему учитывается и используется при построении объединённой системной подсказки.
Инструмент использования компьютера поддерживает следующие действия:
Базовые действия (все версии)
[x, y]Расширенные действия (computer_20250124 и более поздние версии)
Доступны в computer_20250124 и computer_20251124:
Расширенные действия (computer_20251124)
Доступны в Claude Opus 5, Claude Sonnet 5, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6 и Claude Opus 4.5:
computer_20250124enable_zoom: true в определении инструмента. Принимает параметр region с координатами [x1, y1, x2, y2], определяющими верхний левый и нижний правый углы области для просмотра.| Параметр | Обязательный | Описание |
|---|---|---|
type | Да | Версия инструмента (computer_20251124 или computer_20250124) |
name | Да | Должно быть «computer» |
display_width_px | Да | Ширина дисплея в пикселях |
display_height_px | Да | Высота дисплея в пикселях |
display_number | Нет | Номер дисплея для сред X11 |
enable_zoom | Нет | Включить действие увеличения (только computer_20251124). Установите true, чтобы разрешить Claude увеличивать определённые области экрана. По умолчанию: false |
О сочетании использования компьютера с мышлением см. в разделе Мышление.
Чтобы добавить другие инструменты наряду с использованием компьютера, включите их в тот же массив tools. В разделе Быстрый старт показан этот шаблон с инструментом bash и инструментом текстового редактора. Вы можете добавить собственные определения пользовательских инструментов таким же образом.
Эталонная реализация предназначена для того, чтобы помочь вам начать работу с использованием компьютера. Она включает все компоненты, необходимые для того, чтобы Claude использовал компьютер. Однако вы можете создать собственную среду для использования компьютера в соответствии с вашими потребностями. Вам понадобится:
tool_use с использованием ваших реализаций инструментовИнструмент использования компьютера реализован как инструмент без схемы. При использовании этого инструмента вам не нужно предоставлять входную схему, как для других инструментов; схема встроена в модель Claude и не может быть изменена.
Настройте вашу вычислительную среду
Создайте виртуальный дисплей или подключитесь к существующему дисплею, с которым будет взаимодействовать Claude. Обычно это включает настройку Xvfb (X Virtual Framebuffer) или аналогичной технологии.
Реализуйте обработчики действий
Создайте функции для обработки каждого типа действия, которое может запросить Claude:
def capture_screenshot():
return "<screenshot data>"
def click_at(x, y):
return f"clicked at ({x}, {y})"
def type_text(text):
return f"typed: {text}"
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"])
# Обработайте другие действия по мере необходимости
return f"unhandled action: {action_type}"Обработайте вызовы инструментов Claude
Извлеките и выполните вызовы инструментов из ответов Claude:
def process_tool_calls(response):
tool_results = []
for block in response.content:
if block.type == "tool_use":
action = block.input["action"]
result = handle_computer_action(action, block.input)
tool_results.append(
{
"type": "tool_result",
"tool_use_id": block.id,
"content": result,
}
)
return tool_resultsРеализуйте агентный цикл
Создайте цикл, который продолжается до тех пор, пока Claude не выполнит задачу:
def sampling_loop(model, messages, max_iterations=10):
"""
Run the computer-use agent loop until Claude stops requesting tools
or the iteration limit is reached.
"""
for _ in range(max_iterations):
response = client.beta.messages.create(
model=model,
max_tokens=4096,
messages=messages,
tools=TOOLS,
betas=["computer-use-2025-11-24"],
)
# Добавьте ответ Claude в историю диалога
messages.append({"role": "assistant", "content": response.content})
# Запустите все инструменты, запрошенные Claude, и соберите результаты
tool_results = process_tool_calls(response)
if not tool_results:
return messages # No more tool use; task complete
# Отправьте результаты инструментов обратно Claude для следующей итерации
messages.append({"role": "user", "content": tool_results})
return messagesПри реализации инструмента использования компьютера могут возникать различные ошибки. Вот как их обрабатывать:
Снимки экрана, отправляемые инструменту компьютера, должны укладываться в ограничения размера изображений Claude (см. ограничения размера изображений). API уменьшает слишком большие изображения до того, как Claude их увидит, а Claude возвращает координаты для изображения, которое он видит, поэтому, полагаясь на серверное уменьшение, вы остаётесь без коэффициента масштабирования, необходимого для сопоставления этих координат с вашим экраном. Только изображения, превышающие отдельные ограничения запросов API (например, более 8 000 пикселей по одной стороне), отклоняются с ошибкой валидации, а не уменьшаются.
Если ваш экран больше ограничения, измените размер снимка экрана перед отправкой, установите display_width_px/display_height_px в соответствии с изменёнными размерами и масштабируйте возвращённые Claude координаты обратно в исходное пространство экрана:
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)
# При захвате снимка экрана
scale = get_scale_factor(screen_width, screen_height)
scaled_width = int(screen_width * scale)
scaled_height = int(screen_height * scale)
# Измените размер изображения до масштабированных размеров перед отправкой в Claude
screenshot = capture_and_resize(scaled_width, scaled_height)
# При обработке координат от Claude масштабируйте их обратно до исходных
def execute_click(x, y):
screen_x = x / scale
screen_y = y / scale
perform_click(screen_x, screen_y)Если нажатия не попадают в цель, причина обычно одна из следующих:
| Симптом | Вероятная причина | Попробуйте |
|---|---|---|
| Нажатия постоянно смещены в одном направлении | display_width_px/display_height_px не соответствуют фактически отправленным размерам изображения | Убедитесь, что размеры дисплея точно соответствуют отправляемому снимку экрана |
| Нажатия попадают в нужную область, но не в цель | Цель очень маленькая, детали потеряны при уменьшении исходника 4K+ или искажено соотношение сторон | Установите enable_zoom: true; захватывайте с меньшим DPI или обрезайте до нужной области; сохраняйте соотношение сторон при изменении размера |
| Claude нажимает совершенно не на тот элемент | Неоднозначная инструкция или визуально похожие элементы рядом | Используйте позиционные подсказки («синяя кнопка Submit в правом нижнем углу»); разбейте взаимодействие на более мелкие шаги |
| Точность стабильно низкая | Слишком низкое разрешение | Попробуйте 1280x720 в качестве базового варианта |
Использование компьютера находится в стадии бета-тестирования. Учитывайте следующие ограничения:
Задержка: текущая задержка использования компьютера для взаимодействий человек-ИИ может быть слишком большой по сравнению с обычными действиями на компьютере, выполняемыми человеком. Сосредоточьтесь на сценариях использования, где скорость не критична (например, фоновый сбор информации, автоматизированное тестирование программного обеспечения) в доверенных средах.
Точность и надёжность компьютерного зрения: Claude может допускать ошибки или галлюцинировать при выводе конкретных координат во время генерации действий. Расширенное мышление может помочь вам понять рассуждения модели и выявить потенциальные проблемы.
Точность и надёжность выбора инструментов: Claude может допускать ошибки или галлюцинировать при выборе инструментов во время генерации действий или предпринимать неожиданные действия для решения проблем. Кроме того, надёжность может быть ниже при взаимодействии с нишевыми приложениями или несколькими приложениями одновременно. Тщательно формулируйте подсказки модели при запросе сложных задач.
Надёжность прокрутки: действие прокрутки поддерживает управление направлением (вверх, вниз, влево, вправо) и указанную величину. В приложениях, где прокрутка не срабатывает, могут помочь клавиатурные альтернативы, такие как Page Down.
Взаимодействие с электронными таблицами: используйте действия точного управления мышью (left_mouse_down, left_mouse_up) и комбинации клавиш-модификаторов для выбора отдельных ячеек. Сложные операции с электронными таблицами всё ещё могут требовать нескольких попыток.
Создание учётных записей и генерация контента на социальных и коммуникационных платформах: хотя Claude будет посещать веб-сайты, способность Claude создавать учётные записи или генерировать и публиковать контент, а также иным образом выдавать себя за человека на веб-сайтах и платформах социальных сетей ограничена. Эта возможность может быть обновлена в будущем.
Уязвимости: уязвимости, такие как джейлбрейк или инъекция подсказок, могут сохраняться в передовых системах ИИ, включая бета-версию API использования компьютера. В некоторых обстоятельствах Claude будет следовать командам, найденным в контенте, иногда даже когда они противоречат вашим инструкциям. Например, инструкции на веб-страницах или содержащиеся в изображениях могут переопределить ваши инструкции или привести к ошибкам Claude. Рассмотрите следующее:
Неприемлемые или незаконные действия: согласно Условиям обслуживания Anthropic, вы не должны использовать использование компьютера для нарушения каких-либо законов или Политики допустимого использования.
Всегда тщательно проверяйте и верифицируйте действия и журналы использования компьютера Claude. Не используйте Claude для задач, требующих идеальной точности или конфиденциальной информации пользователей, без надзора человека.
Использование компьютера — это инструмент на стороне клиента. Все снимки экрана, действия мыши, ввод с клавиатуры и любые файлы, задействованные в сессии, захватываются и хранятся в вашей среде, а не у Anthropic. Anthropic обрабатывает изображения снимков экрана и запросы действий в реальном времени как часть вызова API. Хранение этих запросов API регулируется разделом API и хранение данных.
Поскольку ваше приложение контролирует, где и как хранятся данные использования компьютера, использование компьютера соответствует требованиям ZDR. О соответствии ZDR для всех функций см. в разделе API и хранение данных.
Использование компьютера следует стандартному ценообразованию для использования инструментов. При использовании инструмента управления компьютером:
Накладные расходы системной подсказки: Бета-версия использования компьютера добавляет 466–499 токенов к системной подсказке
Использование токенов инструментом управления компьютером:
| Модель | Входные токены на определение инструмента |
|---|---|
| Модели Claude 4.x | 735 токенов |
Дополнительное потребление токенов:
Исправляйте наиболее распространённые ошибки использования инструментов с помощью диагностических таблиц «симптом — решение».
Начните работу с полной реализацией на основе Docker
Подключайте Claude к внешним инструментам и API. Узнайте, где выполняются инструменты, когда Claude их вызывает и какой инструмент подходит для вашей задачи.
Проверенные на бенчмарках рекомендации по разрешению, усилию мышления и управлению контекстом
| Supported models |
|
|---|---|
| Supported platforms |
|
Was this page helpful?