Нужно автоматизировать работу с 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 месяц)
Процесс работы
- Аналитика — разбираем задачу, определяем scope и метрики успеха.
- Проектирование — выбираем модель, настраиваем sandbox, пишем прототип.
- Реализация — разрабатываем агента, добавляем логирование и обработку ошибок.
- Тестирование — прогоняем на тестовых данных, фиксим баги.
- Деплой — разворачиваем в вашей инфраструктуре (on-prem или облако).
- Поддержка — мониторинг, доработки по обратной связи.
Сроки ориентировочно
- Базовый 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 для последующего аудита и анализа нештатных ситуаций. Оцените ваш проект: напишите нам — мы предложим архитектуру и точные сроки. Гарантируем качество и прозрачность на всех этапах.







