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







