Дата публикации
ai_products

Как подружить Claude с вашим компьютером и браузером: практическое руководство для разработчиков

Что нового

Anthropic прокачала линейку Claude 4 для сценариев «компьютер как инструмент»: клик по экрану, работа в браузере, автоматизация десктопных и веб‑интерфейсов.

Ключевые обновления и цифры:

  • Поддержка компьютерного и браузерного использования в:
    • Claude Opus 4.6
    • Claude Sonnet 4.6
    • Claude Haiku 4.5
    • Claude Opus 4.7 (с отдельными, более высокими лимитами по картинкам)
  • Жёсткие, но понятные лимиты на размер скриншотов для «компьютерного» API:
    • Для семейства 4.6:
      • Максимальная длинная сторона: 1568 пикселей
      • Максимум: 1,15 мегапикселя
    • Для Opus 4.7:
      • Максимальная длинная сторона: 2576 пикселей
      • Максимум: 3,75 мегапикселя
  • Рекомендованные разрешения:
    • Для 4.6: 1280×720 как безопасный дефолт
    • Для Opus 4.7: старт с 1080p (1920×1080), возможна работа до 1440p в пределах лимита 3,75 Мп
  • Появился рекомендуемый паттерн «max API fit»: расчёт максимального разрешения под конкретное соотношение сторон без выхода за лимиты API.
  • Введён флаг enable_zoom в инструменте computer_20251124 — модель может «приближать» участок экрана перед кликом по мелким элементам.
  • Поддержка adaptive thinking (адаптивного объёма размышлений) с уровнями усилия:
    • Для 4.6: low, medium, high, max
    • Для Opus 4.7: low, medium, high, xhigh, max
  • Результаты тестов на UI‑бенчмарках:
    • Opus 4.7 на low усилии показывает качество, сопоставимое с Sonnet 4.6 на max, при этом тратит примерно в 10 раз меньше токенов на задачу.
    • Для 4.6: medium даёт почти максимальный успех задач при примерно в 2 раза меньшем числе токенов, чем high.

Anthropic также выложила демо‑реализацию, которая собирает эти практики воедино: предобработка скриншотов, масштабирование координат, правильный порядок контента, использование zoom и adaptive thinking.

Как это работает

Координаты и масштаб

Claude получает скриншот через Computer Use API и возвращает координаты клика в системе координат, которую вы сами задаёте параметрами display_width_px и display_height_px в описании инструмента computer_20251124.

Важный нюанс: внутри API действует собственный лимит на размер изображения. Если вы отправляете картинку больше лимитов, API молча даунскейлит её до разрешения, которое модель реально видит. Координаты же считаются относительно display_width_px/display_height_px. Если вы указали туда нативное разрешение, а картинка внутри уменьшилась, клики «уплывают».

Отсюда базовый принцип:

  1. Сами уменьшаете скриншот до размеров, которые точно попадают в лимиты.
  2. Передаёте в display_width_px/display_height_px именно размер уменьшенного скриншота.
  3. После ответа масштабируете координаты обратно к реальному разрешению экрана.

Пример масштабирования:

# Your screen is screen_w x screen_h
# You sent a screenshot resized to display_w x display_h

scale_x = screen_w / display_w
scale_y = screen_h / display_h

screen_x = int(api_returned_x * scale_x)
screen_y = int(api_returned_y * scale_y)

Рекомендованные разрешения и «max API fit»

Для большинства задач Anthropic предлагает простой дефолт:

  • 1280×720 — для Sonnet 4.6, Opus 4.6, Haiku 4.5.
  • 1080p — стартовая точка для Opus 4.7: выше детализация, при этом укладывается в 3,75 Мп.

Если хочется выжать максимум информации из каждого пикселя, предлагается функция compute_max_api_fit, которая:

  • сохраняет соотношение сторон исходного экрана;
  • укладывается в ограничение по длине стороны и общему числу пикселей;
  • не делает апскейл — итоговое разрешение не превышает исходное.

Код:

import math

# 1568 for 4.6 family, 2576 for Opus 4.7
MAX_LONG_EDGE = 1568

# 1.15MP for 4.6 family, 3.75MP for Opus 4.7
MAX_PIXELS = 1_150_000

def compute_max_api_fit(native_w, native_h):
 """Compute the largest resolution that fits API limits
 while preserving aspect ratio."""
 aspect = native_w / native_h

 # Compute max dimensions from pixel budget
 h_from_pixels = math.sqrt(MAX_PIXELS / aspect)
 w_from_pixels = h_from_pixels * aspect

 # Apply long edge constraint
 if native_w >= native_h:
 w = min(w_from_pixels, MAX_LONG_EDGE)
 h = w / aspect
 else:
 h = min(h_from_pixels, MAX_LONG_EDGE)
 w = h * aspect

 # Never upscale beyond native
 w = min(w, native_w)
 h = min(h, native_h)

 return int(w), int(h)

Порядок контента в сообщении

Claude лучше кликает, если сначала получает текстовую инструкцию, а потом картинку. Тогда модель уже понимает, что искать, когда «смотрит» на скриншот.

Рекомендуемый формат:

# RECOMMENDED — text instruction first, then screenshot:
content = [
 {"type": "text", "text": "Click on the Submit button"},
 {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": screenshot_b64}},
]

# NOT RECOMMENDED — image first, then text:
content = [
 {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": screenshot_b64}},
 {"type": "text", "text": "Click on the Submit button"},
]

Zoom для мелких элементов

Инструмент computer_20251124 поддерживает опцию enable_zoom. Claude может запросить увеличение отдельного участка экрана, чтобы точнее попасть по чекбоксу, иконке или маленькому тогглу.

Пример конфигурации:

{
 "type": "computer_20251124",
 "name": "computer",
 "display_width_px": 1280,
 "display_height_px": 720,
 "enable_zoom": True
}

Adaptive thinking: сколько «думать» перед кликом

Anthropic внедрила режим, когда модель сама решает, сколько промежуточных рассуждений использовать перед действием. Вы задаёте только уровень thinking.effort: low, medium, high, xhigh (только для Opus 4.7) или max.

Что происходит под капотом:

  • при низком уровне модель делает меньше промежуточных шагов, кликает быстрее и дешевле, но может ошибаться чаще;
  • при высоком уровне она строит более детальный план, проверяет себя, но генерирует больше токенов и работает медленнее.

Результаты тестов Anthropic на наборах задач по автоматизации UI (десктоп, браузер, мульти‑приложения):

  • Для Opus 4.7:
    • На бенчмарке OSWorld Verified Opus 4.7 обгоняет все модели семейства 4.6 при одинаковых настройках усилия и примерно равном числе токенов.
    • Opus 4.7 на low показывает результат, сопоставимый с Sonnet 4.6 на max, при этом тратит около 1/10 токенов.
    • Уровень high даёт почти максимальный успех задач при примерно вдвое меньшем числе токенов, чем max.
  • Для семейства 4.6:
    • medium — оптимальный баланс: почти максимальный успех задач, примерно в 2 раза меньше токенов, чем high.
    • low неожиданно силён: за счёт меньшего числа ошибок суммарное потребление токенов (с учётом ретраев) оказывается ниже, чем при полном отключении «thinking».

Что это значит для вас

Где Claude с компьютерным доступом полезен

  1. Автоматизация рутины в браузере:

    • заполнение форм;
    • навигация по личным кабинетам и админкам;
    • скачивание отчётов;
    • простые e2e‑тесты UI.
  2. Работа с десктопными приложениями:

    • клики по меню и кнопкам в IDE, офисных пакетах, клиентах БД;
    • сценарии «открой файл → экспортируй → залей в браузер».
  3. Мульти‑приложенческие сценарии:

    • собрать данные из браузера, обработать в локальном приложении, загрузить результат обратно;
    • связать несколько корпоративных систем, у которых нет API, через UI‑автоматизацию.
  4. Инструменты для разработчиков:

    • прототипы агентных систем, которые сами кликают по UI;
    • вспомогательные агенты для QA, которые повторяют пользовательские сценарии.

Практические советы по настройке

  1. Начните с правильного разрешения:

    • Для Sonnet 4.6 / Opus 4.6 / Haiku 4.5: ставьте 1280×720.
    • Для Opus 4.7: пробуйте 1080p, если интерфейс плотный — можно подняться выше, но не выходите за 3,75 Мп.
  2. Всегда предобрабатывайте скриншоты:

    • не отправляйте нативные 4K‑скрины — это почти гарантированная потеря точности;
    • особенно аккуратно с macOS: при devicePixelRatio = 2 реальные пиксели в два раза больше логических, скриншоты легко вылетают за лимиты.
  3. Масштабируйте координаты обратно:

    • храните реальное разрешение экрана;
    • используйте формулу пересчёта координат из «картинки для модели» в «экран пользователя».
  4. Пишите инструкции конкретно:

    • плохо: Click Submit при трёх похожих кнопках;
    • лучше: Click the blue "Submit" button in the bottom-right of the form.
  5. Используйте zoom на плотных интерфейсах:

    • если у вас много чекбоксов, маленьких иконок, стрелочек раскрытия дерева — включайте enable_zoom: True.
  6. Подбирайте усилие thinking под задачу:

    • сложные «одноразовые» сценарии: Opus 4.7 с high или max;
    • массовые, дешёвые задачи: Opus 4.7 с low или Sonnet 4.6 с medium;
    • если важна минимальная задержка: Haiku 4.5, либо Sonnet 4.6 с low.

Где Claude с компьютерным доступом пока не идеален

  • Очень мелкие элементы (системный трей, крошечные чекбоксы, пиксельные иконки):
    • точность падает по мере уменьшения размера цели;
    • если вы контролируете UI — увеличьте кликабельную область, снизьте DPI, увеличьте масштаб интерфейса.
  • Системные выпадающие меню и контекстные меню ОС:
    • если меню не попадает в скриншот (например, это системный оверлей), модель его просто не видит;
    • в таких случаях лучше использовать горячие клавиши, JavaScript или работу с DOM, а не клик.
  • Сверхвысокие разрешения (4K+):
    • при сильном даунскейле, например с 3840×2160 до 1280×720, чекбокс в 16 пикселей превращается примерно в 5 пикселей;
    • это сильно усложняет точный клик, даже с zoom.

Доступность из России

Anthropic официально ориентируется на рынок США и ряда других стран. Для работы с Claude через облачный API может понадобиться зарубежный аккаунт и, в некоторых случаях, VPN. Конкретные юридические и технические ограничения зависят от вашего провайдера и юрисдикции, это нужно учитывать при планировании продакшн‑интеграции.

Место на рынке

Anthropic в этом материале не даёт прямых сравнений с OpenAI или Google по скорости и цене, но несколько ориентиров по самим моделям Claude есть.

Внутри линейки Claude 4:

  • Opus 4.7:

    • лучшая «мозговая мощность» для сложных задач UI‑автоматизации;
    • на low по качеству сопоставим с Sonnet 4.6 на max, при этом расходует примерно в 10 раз меньше токенов на задачу;
    • поддерживает более высокое разрешение картинок (до 2576 пикселей по длинной стороне и 3,75 Мп).
  • Sonnet 4.6:

    • по механической точности кликов (пространственная точность, меньше промахов рядом с целью) даже немного лучше Opus 4.6;
    • устойчивее к сильному даунскейлу, если вы вынуждены сжимать 4K‑скрины до 720p;
    • оптимальный выбор по соотношению «клик‑точность / рассуждение / стоимость» для большинства задач.
  • Opus 4.6:

    • сильнее в рассуждении, чем Sonnet 4.6, но менее устойчив к агрессивному даунскейлу;
    • для задач, где важнее логика, чем идеальная точность клика, может быть уместен, но Opus 4.7 выглядит предпочтительнее.
  • Haiku 4.5:

    • наиболее быстрая и лёгкая модель;
    • хороша там, где важна латентность и большой объём однотипных запросов, а сценарии простые и предсказуемые.

Anthropic отдельно рекомендует продвинутый паттерн «оркестратор + суб‑агенты»:

  • «умная» модель (например, Opus 4.7) строит план, принимает решения, обрабатывает ошибки;
  • Sonnet 4.6 или Haiku 4.5 выполняют «механическую» часть — клики, ввод текста, навигацию.

Это особенно полезно в сложных корпоративных сценариях, где одна сессия может включать десятки шагов и несколько разных интерфейсов.

Как запустить

Ниже — готовый набор функций на Python для подготовки скриншотов, пересчёта координат и вызова Claude через API Anthropic. Код взят полностью из руководства Anthropic, его можно использовать как основу для собственного рантайма.

Подготовка скриншота

import math
from PIL import Image
import base64
import io

# 1568 for 4.6 family, 2576 for Opus 4.7
MAX_LONG_EDGE = 1568

# 1.15MP for 4.6 family, 3.75MP for Opus 4.7
MAX_PIXELS = 1_150_000

def prepare_screenshot(screenshot: Image.Image, native_w: int, native_h: int) -> tuple[str, int, int]:
 """Resize a screenshot to fit API limits and return base64 + display dimensions."""

 # Option A: Fixed 720p (simple, reliable)
 display_w, display_h = 1280, 720

 # Option B: Max API fit (maximizes fidelity)
 # display_w, display_h = compute_max_api_fit(native_w, native_h)

 resized = screenshot.resize((display_w, display_h), Image.LANCZOS)
 buffer = io.BytesIO()
 resized.save(buffer, format="PNG")
 b64 = base64.standard_b64encode(buffer.getvalue()).decode()

 return b64, display_w, display_h

def scale_coordinates(api_x: int, api_y: int, display_w: int, display_h: int,
 screen_w: int, screen_h: int) -> tuple[int, int]:
 """Scale API-returned coordinates back to native screen space."""

 screen_x = int(api_x * (screen_w / display_w))
 screen_y = int(api_y * (screen_h / display_h))

 return screen_x, screen_y

def compute_max_api_fit(native_w: int, native_h: int) -> tuple[int, int]:
 """Compute the largest resolution that fits API limits while preserving aspect ratio."""

 aspect = native_w / native_h

 h_from_pixels = math.sqrt(MAX_PIXELS / aspect)
 w_from_pixels = h_from_pixels * aspect

 if native_w >= native_h:
 w = min(w_from_pixels, MAX_LONG_EDGE)
 h = w / aspect
 else:
 h = min(h_from_pixels, MAX_LONG_EDGE)
 w = h * aspect

 w = min(w, native_w)
 h = min(h, native_h)

 return int(w), int(h)

Вызов Claude с компьютерным инструментом

import anthropic
from PIL import Image

client = anthropic.Anthropic()

# Capture screenshot (your method here)
screenshot = Image.open("screenshot.png")
native_w, native_h = screenshot.size

# Prepare for API
b64, display_w, display_h = prepare_screenshot(screenshot, native_w, native_h)

# Send to Claude — text before image
response = client.beta.messages.create(
 model="claude-sonnet-4-6",
 max_tokens=4096,
 betas=["computer-use-2025-11-24"],
 messages=[{
 "role": "user",
 "content": [
 {"type": "text", "text": "Click on the Submit button"},
 {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": b64}},
 ]
 }],
 tools=[{
 "type": "computer_20251124",
 "name": "computer",
 "display_width_px": display_w,
 "display_height_px": display_h,
 }],
)

# Scale coordinates back for execution
api_x, api_y = extract_click_coords(response) # your parsing logic
screen_x, screen_y = scale_coordinates(api_x, api_y, display_w, display_h, native_w, native_h)

Диагностика проблем с кликами

Anthropic предлагает простой чек‑лист.

1. Клики стабильно смещены в одну сторону

Вероятные причины:

  • display_width_px/display_height_px не совпадают с фактическим размером отправленной картинки;
  • скриншот превысил лимиты API и был даунскейлен внутри;
  • вы отправили сначала картинку, а потом текст.

Что делать:

  • убедиться, что размеры дисплея в инструменте равны размеру уменьшенного скриншота, а не нативному разрешению экрана;
  • предобрабатывать скрины до 1280×720 или через compute_max_api_fit;
  • переставить текстовую инструкцию перед картинкой.

2. Клик попадает «примерно туда», но мажет по цели

Причины:

  • очень маленькая цель (чекбокс, иконка, тоггл);
  • исходное изображение с очень высоким разрешением, сильный даунскейл убил детали;
  • вы исказили соотношение сторон при ресайзе.

Решения:

  • включить enable_zoom: True для плотных интерфейсов;
  • снимать скрины с меньшим DPI или кропать только нужную область перед даунскейлом;
  • сохранять исходное соотношение сторон при изменении размера.

3. Модель кликает вообще не тот элемент

Причины:

  • размытая инструкция (Click Submit при нескольких похожих кнопках);
  • рядом много визуально похожих элементов;
  • задача слишком сложная для одного шага.

Решения:

  • давать более точный промпт с цветом, позицией и контекстом;
  • разбивать сценарий на несколько шагов;
  • описывать моделью структуру страницы и только потом просить клик.

4. Точность плохая везде

Причины:

  • вы постоянно отправляете скрины выше лимитов API;
  • сильная компрессия 4K+ источников;
  • слишком низкое разрешение (ниже 960×540).

Решения:

  • всегда даунскейлить изображения до лимитов;
  • для 4K+ источников на 4.6 лучше использовать Sonnet 4.6 — он устойчивее к даунскейлу; на Opus 4.7 используйте повышенный лимит 3,75 Мп, чтобы меньше сжимать;
  • взять 1280×720 как базу; если слишком мыльно — перейти на compute_max_api_fit.

Что не сработало у Anthropic

Команда протестировала несколько популярных «хакингов» и не увидела стабильного прироста точности:

  • Разбиение скрина на тайлы (квадранты, регионы) и отправка по отдельности.
  • Наложение координатной сетки на картинку.
  • Подбор конкретного алгоритма ресайза (PIL LANCZOS, sips и т.п.) — разницы по качеству не обнаружили.

Как разбирать сложные сбои

Если после всех твиков модель ведёт себя странно:

  • логируйте полные диалоги с моделью;
  • сохраняйте исходные скриншоты и координаты кликов;
  • визуально накладывайте предсказанные точки на изображения.

Это помогает понять, видит ли Claude нужный элемент вообще, или ошибка в логике, или проблема в том, что нужное меню не попало в скриншот и находится в системном оверлее.


Если вы строите вокруг Claude агентную систему, которая должна уверенно кликать по реальному UI, эти практики — фактически чек‑лист. Без предобработки скриншотов, правильного порядка контента и настройки thinking‑усилия даже самая мощная модель будет вести себя как неуклюжий пользователь. С ними — становится рабочим инструментом для автоматизации реальных задач.


Читайте также