Интеграция Anthropic Computer Use для автоматизации интерфейсов

Нужно автоматизировать работу с legacy CRM, у которой нет API? Или протестировать десктоп-интерфейс на визуальные баги, которые не ловят unit-тесты? Мы интегрируем Anthropic Computer Use — решение, где Claude управляет компьютером через скриншоты и действия, адаптируясь к любым изменениям интерфейса

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Нужно автоматизировать работу с legacy CRM, у которой нет API? Или протестировать десктоп-интерфейс на визуальные баги, которые не ловят unit-тесты? Мы интегрируем Anthropic Computer Use — решение, где Claude управляет компьютером через скриншоты и действия, адаптируясь к любым изменениям интерфейса. В отличие от AutoHotkey или PyAutoGUI, агент не ломается из-за сдвига кнопки на 5 пикселей. Наш опыт — 5+ лет в AI/ML и 20+ проектов по автоматизации, поэтому мы гарантируем надёжное решение под ключ.

Как работает Computer Use

Claude получает скриншот и возвращает команду: клик, ввод текста, скролл. Реализация на Python с библиотекой anthropic:

import anthropic import base64 import subprocess from pathlib import Path client = anthropic.Anthropic() def get_screenshot() -> str: """Делает скриншот и возвращает base64""" import pyautogui screenshot = pyautogui.screenshot() screenshot.save("/tmp/screen.png") return base64.standard_b64encode(Path("/tmp/screen.png").read_bytes()).decode() def execute_action(action: dict) -> str: """Выполняет действие из Computer Use""" import pyautogui action_type = action["type"] if action_type == "screenshot": return get_screenshot() elif action_type == "mouse_move": pyautogui.moveTo(action["coordinate"][0], action["coordinate"][1]) return "moved" elif action_type == "left_click": pyautogui.click(action["coordinate"][0], action["coordinate"][1]) return "clicked" elif action_type == "double_click": pyautogui.doubleClick(action["coordinate"][0], action["coordinate"][1]) return "double_clicked" elif action_type == "type": pyautogui.write(action["text"], interval=0.05) return "typed" elif action_type == "key": pyautogui.press(action["key"]) return "key_pressed" elif action_type == "scroll": direction = 1 if action["direction"] == "up" else -1 pyautogui.scroll(direction * action.get("amount", 3), x=action["coordinate"][0], y=action["coordinate"][1]) return "scrolled" return "unknown_action" def run_computer_use_agent(task: str, max_iterations: int = 30) -> str: """Запускает агент Computer Use для выполнения задачи""" tools = [{ "type": "computer_20250124", "name": "computer", "display_width_px": 1920, "display_height_px": 1080, "display_number": 1, }] messages = [{"role": "user", "content": task}] for iteration in range(max_iterations): response = client.messages.create( model="claude-opus-4-5", max_tokens=4096, tools=tools, messages=messages, ) if response.stop_reason == "end_turn": return next((b.text for b in response.content if hasattr(b, "text")), "Done") # Обрабатываем tool_use блоки tool_results = [] for block in response.content: if block.type == "tool_use" and block.name == "computer": action = block.input result = execute_action(action) # Если запросил скриншот — добавляем изображение if action["type"] == "screenshot": tool_results.append({ "type": "tool_result", "tool_use_id": block.id, "content": [{ "type": "image", "source": {"type": "base64", "media_type": "image/png", "data": result} }] }) else: # После действия делаем скриншот чтобы Claude видел результат import time time.sleep(0.5) # ждём анимации UI screenshot = get_screenshot() tool_results.append({ "type": "tool_result", "tool_use_id": block.id, "content": [{ "type": "image", "source": {"type": "base64", "media_type": "image/png", "data": screenshot} }] }) messages.append({"role": "assistant", "content": response.content}) messages.append({"role": "user", "content": tool_results}) return "Max iterations reached" 

Почему Computer Use надёжнее обычного RPA?

Классические RPA-инструменты (Selenium, Playwright) требуют стабильных селекторов и не адаптируются к сдвигам элементов. Computer Use анализирует контекст: если кнопка изменила положение, агент «видит» это на скриншоте и корректирует действие. Это критично для интерфейсов, которые обновляются или кастомизируются. Computer Use работает через анализ скриншотов и возврат команд на естественном языке, что делает его устойчивым к изменениям UI.

Как мы реализуем интеграцию?

Мы проектируем архитектуру, настраиваем Docker sandbox с виртуальным дисплеем и пишем агента под вашу задачу.

Безопасный sandbox через Docker

FROM ubuntu:22.04 RUN apt-get update && apt-get install -y \ xvfb x11vnc \ python3-pip \ chromium-browser \ libreoffice \ && rm -rf /var/lib/apt/lists/* RUN pip3 install anthropic pyautogui pillow # Виртуальный дисплей ENV DISPLAY=:99 CMD ["bash", "-c", "Xvfb :99 -screen 0 1920x1080x24 & python3 /app/agent.py"] 
import docker def run_in_sandbox(task: str) -> str: """Запускает Computer Use задачу в Docker-контейнере""" container = docker.from_env().containers.run( "computer-use-sandbox", command=f'python3 -c "from agent import run_computer_use_agent; print(run_computer_use_agent({repr(task)}))"', remove=True, mem_limit="2g", cpu_period=100000, cpu_quota=50000, # 50% CPU network_disabled=True, # отключаем сеть если не нужна volumes={"/tmp/output": {"bind": "/output", "mode": "rw"}}, ) return container.decode() 

Типовые задачи для Computer Use

  • Работа с legacy-системами без API — старые 1С-конфигурации, Excel-макросы, корпоративные ERP с только десктоп-интерфейсом.
  • Тестирование UI — агент кликает по интерфейсу как реальный пользователь, замечает визуальные баги, которые unit-тесты пропускают.
  • RPA без кода — сбор данных из нескольких веб-интерфейсов, перекладывание данных между системами без API.

Сравнение с альтернативами

Инструмент Адаптация к изменениям UI Скорость Безопасность Стоимость владения
Computer Use Высокая (контекстное зрение) 2–5 действий/мин Высокая (Docker sandbox) Средняя (оплата за токены)
Selenium/Playwright Низкая (ломка селекторов) >100 действий/мин Средняя (браузерный контекст) Низкая
AutoHotkey Низкая (фиксированные координаты) Высокая Низкая (доступ к ОС) Нулевая

Что входит в работу

  • Анализ задачи и проектирование архитектуры агента
  • Разработка и настройка Docker sandbox с виртуальным дисплеем
  • Интеграция с вашей системой (обмен данными, логирование)
  • Тестирование на реальных сценариях и оптимизация
  • Документация и обучение вашей команды
  • Поддержка после внедрения (1 месяц)

Процесс работы

  1. Аналитика — разбираем задачу, определяем scope и метрики успеха.
  2. Проектирование — выбираем модель, настраиваем sandbox, пишем прототип.
  3. Реализация — разрабатываем агента, добавляем логирование и обработку ошибок.
  4. Тестирование — прогоняем на тестовых данных, фиксим баги.
  5. Деплой — разворачиваем в вашей инфраструктуре (on-prem или облако).
  6. Поддержка — мониторинг, доработки по обратной связи.

Сроки ориентировочно

  • Базовый Computer Use агент с pyautogui: 2–3 дня
  • Docker sandbox с виртуальным дисплеем: 2–3 дня
  • Конкретная задача автоматизации legacy-системы: 1–2 недели
  • Мониторинг и логирование действий агента: 3–5 дней

Сроки уточняются после оценки проекта. Стоимость рассчитывается индивидуально — свяжитесь для первичной консультации.

Типичные сложности и их решение

  • Латентность: каждое действие требует скриншота и вызова LLM — в среднем 300–800 мс на шаг. Решение — кеширование повторяющихся шагов, параллельный запуск независимых веток агента и предсохранение состояний, которые агент посещает часто.
  • Галлюцинации: агент может неверно идентифицировать кнопку или ввести данные не в то поле. Решение — валидация через сравнение скриншотов до/после, явное подтверждение ключевых шагов и ограничение области видимости агента только нужным окном.
  • Безопасность: агент имеет прямой доступ к операционной системе. Решение — строгий Docker sandbox с отключённой сетью, лимитами ресурсов (CPU 50%, RAM 2 ГБ), белым списком разрешённых приложений и аудит-логом каждого действия.

Наш стек для Computer Use включает Python 3.11+, Playwright для управления браузером, Docker с виртуальным дисплеем Xvfb, а для on-premise сценариев — VNC-сервер для наблюдения за агентом в реальном времени. Логирование каждого действия сохраняется в structured JSON для последующего аудита и анализа нештатных ситуаций. Оцените ваш проект: напишите нам — мы предложим архитектуру и точные сроки. Гарантируем качество и прозрачность на всех этапах.