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







