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







