Большую часть эпохи API «использование» софта моделью означало обвязку из инструментов: тут функция поиска, там запрос в БД, иногда скрипт на Playwright, если хватало смелости. Computer use переворачивает эту схему. Вы отдаёте Claude скриншот реального экрана и крошечный набор примитивов (клик, ввод, скролл, клавиша), и модель управляет интерфейсом так же, как это делал бы человек. В 2026 году с Sonnet 4.5+ и Opus 4.7 это наконец работает достаточно стабильно, чтобы ставить в узкие продакшен-сценарии. В этой статье разбираем, что это такое, когда имеет смысл тянуться к этому инструменту, как разворачивать безопасно и сколько это реально стоит.
Что такое computer use на уровне механики
Принцип обманчиво простой. На каждом шаге:
- Ваш харнесс делает скриншот виртуального дисплея.
- Вы отправляете скриншот в Claude как изображение вместе с целью пользователя и историей действий.
- Claude отвечает tool call'ом:
computerс действием вида{ action: "left_click", coordinate: [834, 412] },key,type,screenshot,scrollи т. д. - Харнесс выполняет действие в ОС, делает свежий скриншот, и цикл повторяется.
Модель не запущена на вашей машине. Она занимается визуальным рассуждением по пикселям и выдаёт низкоуровневые намерения. Именно это делает её рабочей на легаси-софте без API, на сайтах, борющихся со скрейперами, и на внутренних инструментах, которые никто и никогда не обернёт в REST.
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.CLAUDEXIA_API_KEY!,
baseURL: "https://api.claudexia.tech/v1",
});
const response = await client.beta.messages.create({
model: "claude-sonnet-4.5",
max_tokens: 1024,
tools: [
{
type: "computer_20250124",
name: "computer",
display_width_px: 1280,
display_height_px: 800,
display_number: 1,
},
],
betas: ["computer-use-2025-01-24"],
messages: [
{ role: "user", content: "Открой дашборд заказов и выгрузи CSV за сегодня." },
],
});
Когда брать (и когда не брать)
Computer use — это инструмент с острыми краями. Сценарии, где он оправдывает себя:
- Легаси без API. Внутренние ERP, терминалы мейнфреймов, портал поставщика 2009 года — всё, где сделать настоящую интеграцию дороже самой работы.
- Сайты за логином, блокирующие скрейперы. Там, где селектор Playwright ломается раз в неделю, модель, читающая отрендеренную страницу, оказывается на порядки устойчивее.
- End-to-end тесты на визуальные регрессии. Не юнит-уровень, а «работает ли ещё чекаут после редизайна корзины».
- Замена RPA. Большинство ботов на UiPath/Automation Anywhere — это хрупкие скрипты «клик по координатам». Computer use заменяет их системой, которая адаптируется, когда кнопка переезжает.
Сценарии, где стоит уйти:
- Всё, где есть нормальный API. Computer use дороже прямого вызова в 100–1000 раз.
- Высоконагруженные пути, чувствительные к latency. Каждый шаг — это round-trip с vision-токенизацией.
- Задачи, где случайный клик по «не той» кнопке катастрофичен (продакшен-движение денег, инфраструктурные изменения, удаления). Используйте API с явными allow-листами.
Песочница: Docker + xvfb + Playwright
Никогда не запускайте computer use против реального десктопа. Рабочий в проде паттерн — одноразовый Docker-контейнер с виртуальным фреймбуфером и браузером, которым может управлять модель:
FROM mcr.microsoft.com/playwright:v1.50.0-jammy
RUN apt-get update && apt-get install -y \
xvfb x11vnc fluxbox imagemagick && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
ENV DISPLAY=:99
CMD ["bash", "-c", "Xvfb :99 -screen 0 1280x800x24 & fluxbox & node harness.js"]
Внутри контейнера ваш харнесс владеет циклом: запускает Chromium через
Playwright, снимает скриншоты страницы (или через import из
ImageMagick), шлёт их Claude, парсит tool call и диспетчит действие
через page.mouse, page.keyboard и навигационные примитивы.
Контейнер должен быть эфемерным — одна задача, один контейнер, жёсткий
таймаут, потом уничтожение. Это и есть ваш blast radius.
Паттерн цикла
Минимально жизнеспособный харнесс короткий:
async function runTask(goal: string, maxSteps = 30) {
const messages: Anthropic.MessageParam[] = [
{ role: "user", content: goal },
];
for (let step = 0; step < maxSteps; step++) {
const screenshot = await takeScreenshot();
messages.push({
role: "user",
content: [
{ type: "image", source: { type: "base64", media_type: "image/png", data: screenshot } },
{ type: "text", text: `Шаг ${step}. Что дальше?` },
],
});
const res = await client.beta.messages.create({
model: "claude-sonnet-4.5",
max_tokens: 1024,
tools: computerTools,
betas: ["computer-use-2025-01-24"],
messages,
});
if (res.stop_reason === "end_turn") return "done";
const toolUse = res.content.find((c) => c.type === "tool_use");
if (!toolUse) return "stuck";
await executeAction(toolUse.input);
messages.push({ role: "assistant", content: res.content });
}
throw new Error("превышен max_steps");
}
Несколько неочевидных деталей. Всегда переносите предыдущие ассистент-
ходы вперёд — Claude нужна история действий, чтобы не повторяться.
Всегда ставьте лимит max_steps; убежавший цикл — самый дорогой режим
отказа. И всегда пишите каждый скриншот и действие на диск: когда что-
то ломается, трейс — единственный доступный отладчик.
Советы по надёжности, которые реально работают
Месяцы прогона этих циклов в проде сходятся к одним и тем же практикам:
- Безжалостно декомпозируйте. «Обработай эту таблицу из 50 строк» падает. «Открой строку 1, скопируй email, вставь в форму, отправь, вернись к таблице» работает, и это запускается 50 раз.
- Явно повторяйте цель на каждом ходу. Повтор «твоя цель — выгрузить CSV» в user-сообщении каждый шаг держит модель в фокусе, когда страница меняется.
- Скриншот на каждый шаг, а не только когда модель просит. Модели иногда действуют по устаревшей памяти. Свежая картинка на ход срезает этот класс ошибок.
- Жёсткий потолок шагов и wall-clock времени. 30 шагов / 5 минут на задачу дёшево ловят бесконечные циклы.
- Валидация результата вторым вызовом модели. После выхода из цикла снимите финальный скриншот и спросите Sonnet «задача успешна? ответь да/нет одной строкой». Это ваш дешёвый CI-сигнал.
Реальная стоимость
Здесь интуиция обычно подводит. Computer use доминируется не output, а vision-токенами. PNG 1280×800 — это примерно 1500–2000 input-токенов в зависимости от уровня детализации. Задача на 30 шагов с одним скриншотом на шаг — это 45 000–60 000 input-токенов до того, как модель что-либо сказала. Output на их фоне маленький — пара tool call'ов на шаг.
Эмпирически, на Sonnet 4.5 аккуратно поставленная задача укладывается в $0.05–$0.20 end-to-end. Длинные, исследовательские прогоны на Opus 4.6 могут уйти за $1+, если не следить. Помогают два рычага: агрессивный prompt caching системного промпта и tool schema (см. наши заметки по ценам) и даунсэмплинг скриншотов до минимально терпимого разрешения. 1024×640 часто достаточно.
Режимы отказа и что с ними делать
Самый частый отказ — галлюцинированные координаты: Claude кликает в (420, 380), а кнопка в (430, 395). Устойчивый фикс — retry с координатной сеткой. На неудачное действие наложите бледную сетку координат поверх скриншота и переспросите. Модель использует сетку как визуальный якорь, и второй заход почти всегда попадает.
Другие повторяющиеся проблемы:
- Устаревшие скриншоты после навигации. Всегда дожидайтесь
networkidleили короткогоsetTimeoutперед следующим снимком. - Модальные окна, которые модель игнорирует. Добавьте в системный промпт «если видишь попап — закрой его, прежде чем продолжать».
- Капчи. Стоп. Их автоматизировать не нужно. Корректно вываливайте задачу в очередь к человеку.
Сравнение с OpenAI Operator
Operator от OpenAI и computer use Anthropic в 2026-м сошлись к примерно одинаковой форме: цикл «скриншот вход → действие выход» в песочнице с браузером. Два практических отличия:
- Профиль осторожности. Claude заметно консервативнее в деструктивных действиях — он остановится и переспросит перед удалением, оплатой, отправкой. В проде это плюс, в исследованиях иногда раздражает.
- Глубина рассуждения на многошаговых планах. Sonnet 4.5 с extended thinking уверенно вырывается вперёд на задачах, где надо держать план из 10+ шагов через переходы между страницами.
Берите тот, чей харнесс лучше ложится на ваш стек. Разрыв в способностях небольшой, разрыв в стоимости интеграции — нет.
Итог
Computer use в 2026 — это рабочая, полезная и, наконец, достаточно надёжная штука для узких, чётко определённых задач. Это не замена нормальным API и не правильный инструмент для высоконагруженных горячих путей. Но для длинного хвоста «у системы нет API и никогда не будет» он тихо стал самым прагматичным вариантом на столе. Жёстко изолируйте, лимитируйте шаги, логируйте всё и относитесь к нему как к неконтролируемому стажёру, которым он и является — и вы получите много пользы за пару центов на задачу.