Перейти к содержимому
АВТОМАТИЗАЦИЯ

Claude Computer Use в 2026: как автоматизировать браузер без флаки

Практика Computer Use на Claude: архитектура, песочница, стоимость, ограничения и как сделать стабильную браузерную автоматизацию в проде.

Большую часть эпохи API «использование» софта моделью означало обвязку из инструментов: тут функция поиска, там запрос в БД, иногда скрипт на Playwright, если хватало смелости. Computer use переворачивает эту схему. Вы отдаёте Claude скриншот реального экрана и крошечный набор примитивов (клик, ввод, скролл, клавиша), и модель управляет интерфейсом так же, как это делал бы человек. В 2026 году с Sonnet 4.5+ и Opus 4.7 это наконец работает достаточно стабильно, чтобы ставить в узкие продакшен-сценарии. В этой статье разбираем, что это такое, когда имеет смысл тянуться к этому инструменту, как разворачивать безопасно и сколько это реально стоит.

Что такое computer use на уровне механики

Принцип обманчиво простой. На каждом шаге:

  1. Ваш харнесс делает скриншот виртуального дисплея.
  2. Вы отправляете скриншот в Claude как изображение вместе с целью пользователя и историей действий.
  3. Claude отвечает tool call'ом: computer с действием вида { action: "left_click", coordinate: [834, 412] }, key, type, screenshot, scroll и т. д.
  4. Харнесс выполняет действие в ОС, делает свежий скриншот, и цикл повторяется.

Модель не запущена на вашей машине. Она занимается визуальным рассуждением по пикселям и выдаёт низкоуровневые намерения. Именно это делает её рабочей на легаси-софте без 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; убежавший цикл — самый дорогой режим отказа. И всегда пишите каждый скриншот и действие на диск: когда что- то ломается, трейс — единственный доступный отладчик.

Советы по надёжности, которые реально работают

Месяцы прогона этих циклов в проде сходятся к одним и тем же практикам:

  1. Безжалостно декомпозируйте. «Обработай эту таблицу из 50 строк» падает. «Открой строку 1, скопируй email, вставь в форму, отправь, вернись к таблице» работает, и это запускается 50 раз.
  2. Явно повторяйте цель на каждом ходу. Повтор «твоя цель — выгрузить CSV» в user-сообщении каждый шаг держит модель в фокусе, когда страница меняется.
  3. Скриншот на каждый шаг, а не только когда модель просит. Модели иногда действуют по устаревшей памяти. Свежая картинка на ход срезает этот класс ошибок.
  4. Жёсткий потолок шагов и wall-clock времени. 30 шагов / 5 минут на задачу дёшево ловят бесконечные циклы.
  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 и никогда не будет» он тихо стал самым прагматичным вариантом на столе. Жёстко изолируйте, лимитируйте шаги, логируйте всё и относитесь к нему как к неконтролируемому стажёру, которым он и является — и вы получите много пользы за пару центов на задачу.