Claude Computer Use Tool: AI 데스크톱 자동화를 위한 개발자 완전 가이드
AI에게 “Firefox를 열고, 웹사이트로 이동해서, 양식을 작성하고, 결과를 저장해”라고 말하면 — 실제로 그렇게 된다면 어떨까요? 불안정한 Selenium 스크립트를 통해서가 아니라. 커스텀 API 통합을 통해서가 아니라. 그냥… 인간처럼 화면을 보고 마우스와 키보드를 사용해서요.
그것이 바로 Claude의 computer use tool이 하는 일입니다.
Computer Use란?
Computer use는 Claude가 다음을 통해 데스크톱 환경과 상호작용할 수 있게 해주는 베타 API 기능입니다:
- 스크린샷 캡처 — Claude가 화면에 무엇이 있는지 봄
- 마우스 제어 — 클릭, 드래그, 스크롤
- 키보드 입력 — 텍스트 타이핑, 단축키 누르기
- 데스크톱 자동화 — 어떤 애플리케이션과도 상호작용
핵심 단어는 어떤입니다. 전통적인 자동화(브라우저용 Selenium, macOS용 AppleScript)와 달리, Claude는 특별한 API나 요소 선택자가 필요하지 않습니다. 화면의 픽셀을 보고 무엇을 클릭할지 결정합니다. 당신이 하는 것처럼요.
작동 방식 (Agent Loop)
Computer use는 간단한 사이클을 따릅니다:
- Claude에게 작업 전송 — “고양이 사진을 바탕화면에 저장해”
- Claude가 도구 액션 요청 — “스크린샷 찍기”
- 앱이 실행 — 화면 캡처, 이미지 반환
- Claude가 분석하고 다음 액션 요청 — “좌표 (500, 300)에서 클릭”
- 작업 완료까지 반복
이 사이클을 agent loop라고 합니다. Claude는 계속 액션(스크린샷, 클릭, 타이핑, 스크롤)을 요청하고 애플리케이션은 계속 실행하며, Claude가 작업이 완료되었다고 판단할 때까지 반복됩니다.
시작하기 위한 최소 API 호출입니다:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
tools=[
{
"type": "computer_20251124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
"display_number": 1,
},
{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"},
{"type": "bash_20250124", "name": "bash"},
],
messages=[{
"role": "user",
"content": "Save a picture of a cat to my desktop."
}],
betas=["computer-use-2025-11-24"],
)
베타 헤더 "computer-use-2025-11-24"가 필요합니다. 세 가지 도구(컴퓨터, 텍스트 편집기, bash)가 함께 작동하여 Claude에게 환경에 대한 완전한 제어권을 제공합니다.
사용 가능한 액션
Computer use tool은 풍부한 상호작용 세트를 지원합니다:
기본 액션
screenshot— 현재 디스플레이 캡처left_click—[x, y]좌표에서 클릭type— 텍스트 문자열 타이핑key— 키 또는 조합 누르기 (예:ctrl+s,alt+tab)mouse_move— 커서 이동
향상된 액션 (Claude 4.x 모델)
scroll— 양 제어로 모든 방향 스크롤left_click_drag— 좌표 간 클릭 및 드래그right_click,middle_click— 추가 마우스 버튼double_click,triple_click— 다중 클릭hold_key— 일정 시간 키 유지wait— 액션 사이 일시정지
최신 추가: Zoom
Claude Opus 4.6, Sonnet 4.6, Opus 4.5에서 사용 가능:
zoom— 전체 해상도로 특정 화면 영역 검사
Claude가 작은 텍스트를 읽거나 세밀한 UI 요소를 식별해야 할 때 특히 유용합니다.
컴퓨팅 환경
Claude는 컴퓨터에 직접 연결되지 않습니다. 샌드박스 환경을 제공해야 합니다 — 일반적으로 다음을 실행하는 Docker 컨테이너:
- 가상 디스플레이 — Xvfb (X Virtual Framebuffer)가 데스크톱 렌더링
- 데스크톱 환경 — Mutter 같은 경량 윈도우 매니저
- 애플리케이션 — Firefox, LibreOffice, 파일 매니저 등
- 도구 구현 — Claude의 요청을 실제 마우스/키보드 작업으로 변환하는 코드
Anthropic은 Docker에 이 모든 것이 미리 구성된 참조 구현을 제공합니다. 시작하는 가장 빠른 방법입니다.
Agent Loop 구축
다음은 주고받기를 처리하는 단순화된 agent loop입니다:
async def agent_loop(task: str, max_iterations: int = 10):
client = anthropic.Anthropic()
messages = [{"role": "user", "content": task}]
tools = [
{
"type": "computer_20251124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
},
{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"},
{"type": "bash_20250124", "name": "bash"},
]
for _ in range(max_iterations):
response = client.beta.messages.create(
model="claude-opus-4-6",
max_tokens=4096,
messages=messages,
tools=tools,
betas=["computer-use-2025-11-24"],
)
messages.append({"role": "assistant", "content": response.content})
# Extract tool calls
tool_results = []
for block in response.content:
if block.type == "tool_use":
result = execute_tool(block.name, block.input)
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": result,
})
if not tool_results:
return messages # Task complete
messages.append({"role": "user", "content": tool_results})
execute_tool 함수는 실제 화면 캡처, 마우스 클릭, 키보드 입력을 컴퓨팅 환경에 연결하는 곳입니다.
좌표 스케일링: 함정
API는 이미지를 가장 긴 변 기준 최대 1568px로 제한합니다. 디스플레이가 더 크면 (예: 1512x982), 스크린샷이 다운샘플링됩니다 — 하지만 Claude는 더 작은 이미지를 기준으로 좌표를 반환합니다.
좌표를 다시 위로 스케일링해야 합니다:
import math
def get_scale_factor(width, height):
long_edge = max(width, height)
total_pixels = width * height
long_edge_scale = 1568 / long_edge
total_pixels_scale = math.sqrt(1_150_000 / total_pixels)
return min(1.0, long_edge_scale, total_pixels_scale)
scale = get_scale_factor(1512, 982)
# When Claude says "click at (450, 300)", scale it up:
def execute_click(x, y):
screen_x = x / scale
screen_y = y / scale
perform_click(screen_x, screen_y)
이 단계를 건너뛰면 Claude의 클릭이 대상을 놓칩니다. 이것이 가장 흔한 구현 버그입니다.
더 나은 결과를 위한 프롬프팅 팁
Computer use는 명확하고 구조화된 프롬프트에서 가장 잘 작동합니다:
-
구체적으로. “Firefox를 열고, example.com으로 가서, Login 버튼을 클릭해”는 “사이트에 로그인해”보다 잘 작동합니다.
-
Claude에게 확인을 요청. 프롬프트에 이것을 추가: “각 단계 후 스크린샷을 찍고 올바른 결과를 달성했는지 평가하세요. 확인된 경우에만 다음으로 진행하세요.”
-
키보드 단축키 사용. 드롭다운과 스크롤바는 클릭하기 까다로울 수 있습니다. Claude에게 대신
Tab,Enter, 화살표 키를 사용하도록 안내하세요. -
예시 제공. 반복 가능한 작업의 경우, 프롬프트에 예시 스크린샷과 예상 도구 호출을 포함하세요.
-
자격 증명에 XML 태그 사용. Claude가 로그인해야 한다면,
<robot_credentials>태그에 자격 증명을 전달하세요. 하지만 주의 — Claude가 신뢰할 수 없는 콘텐츠와 상호작용할 때 프롬프트 인젝션 위험이 더 높습니다.
보안: 진지하게 받아들이세요
Computer use에는 고유한 보안 위험이 있습니다:
- 화면 콘텐츠를 통한 프롬프트 인젝션. Claude는 화면의 모든 것을 읽습니다. 악의적인 웹페이지가 프롬프트를 재정의하는 지시사항을 표시할 수 있습니다.
- 자율적 행동. Claude가 링크를 클릭하거나, 다이얼로그를 수락하거나, 의도한 곳에서 멀리 이동할 수 있습니다.
- 자격 증명 노출. Claude가 화면에서 비밀번호나 토큰을 볼 수 있다면, 대화의 일부가 됩니다.
Anthropic은 스크린샷의 잠재적 프롬프트 인젝션을 표시하는 내장 분류기를 갖추고 있습니다. 하지만 가장 좋은 방어는 격리입니다:
- 최소 권한으로 전용 VM 또는 Docker 컨테이너에서 실행
- 감독 없이 민감한 계정에 접근 제공 금지
- 도메인 허용 목록으로 인터넷 접근 제한
- 결과적인 행동(구매, 계정 생성 등)에 인간 확인 요구
무엇을 만들 수 있나
Computer use는 속도가 중요하지 않지만 자동화가 가치 있는 작업에 가장 적합합니다:
- 자동화된 테스트 — 웹 앱만이 아닌 모든 데스크톱 애플리케이션 테스트
- 데이터 수집 — 웹사이트 탐색 및 정보 추출
- 레거시 시스템 통합 — API가 없는 앱의 워크플로우 자동화
- 양식 작성 — 여러 사이트의 웹 양식 작성
- 연구 워크플로우 — 웹에서 정보 검색, 읽기, 편집
- QA 및 모니터링 — UI가 올바르게 렌더링되는지 확인
연구 및 데이터 수집 워크플로우에서, Save 같은 도구는 computer use를 잘 보완합니다 — Claude가 페이지로 이동하면, 깨끗한 Markdown으로 변환하면 원시 스크린샷 대신 구조화된 AI 준비 콘텐츠를 얻을 수 있습니다.
현재 제한 사항
다음 베타 제한 사항을 알아두세요:
- 지연. 각 액션은 API 호출, 스크린샷 캡처, 응답이 필요합니다. 인간이 클릭하는 것보다 느립니다.
- 시각적 정확도. Claude가 작은 텍스트를 잘못 읽거나 UI 요소를 잘못 식별할 수 있습니다. 새로운 zoom 액션이 도움이 되지만 완벽하지는 않습니다.
- 스크롤링. 최근 버전에서 크게 개선되었지만, 복잡한 스크롤 상호작용은 여전히 신뢰할 수 없을 수 있습니다.
- 스프레드시트. 셀 선택이 까다롭습니다. 가능한 경우 키보드 탐색을 사용하세요.
- 소셜 플랫폼에서 계정 생성 없음. Claude는 의도적으로 소셜 미디어에서 계정을 만들거나 인간을 가장하지 않습니다.
가격
Computer use는 표준 도구 사용 가격을 따릅니다:
- 시스템 프롬프트 오버헤드: 466-499 토큰
- 도구 정의: 도구당 735 토큰 (Claude 4.x 모델용)
- 스크린샷: 비전 토큰으로 청구 (해상도에 따라 다름)
- Agent loop의 각 API 호출은 별도의 청구 가능한 요청
일반적인 10단계 작업의 경우, 스크린샷 크기와 응답 복잡성에 따라 15,000-50,000 토큰을 사용할 것으로 예상하세요.
시작하기
- 참조 구현 사용. anthropic-quickstarts를 클론하고, Docker 컨테이너를 실행하고, 실험하세요.
- 간단한 작업부터 시작. “텍스트 편집기를 열고, Hello World를 타이핑하고, 파일을 저장해.” 복잡한 워크플로우를 시도하기 전에 agent loop가 작동하게 하세요.
- 가드레일 추가. 반복 제한 설정. 좌표 검증. 모든 액션 로깅. 되돌릴 수 없는 모든 것에 인간 확인 추가.
- 프롬프트 최적화. 지시사항이 더 좋을수록 Claude가 필요한 반복이 줄어들고 — 토큰 비용도 낮아집니다.
Computer use는 AI API로 무엇이 가능한지에 대한 근본적인 변화를 나타냅니다. 모든 애플리케이션에 대한 맞춤형 통합을 구축하는 대신, Claude에게 인간이 사용하는 것과 같은 인터페이스 — 화면, 마우스, 키보드 — 를 제공하고 나머지는 스스로 파악하게 할 수 있습니다.
자동화의 미래는 더 많은 API가 아닙니다. 우리가 이미 가진 인터페이스를 사용할 수 있는 AI입니다.