Tech & Development/AI

Anthropic Computer Use 가이드: 사용 후기

Theo (테오) 2024. 10. 26. 23:18
반응형

Computer Use는 말 그대로 AI가 우리처럼 컴퓨터를 사용하게 만드는 기능입니다.

 

Developing a computer use model

A discussion of how Anthropic's researchers developed Claude's new computer use skill, along with some relevant safety considerations

www.anthropic.com

작동 방식은 의외로 단순한데, 마치 원격 접속으로 누군가의 컴퓨터를 돕는 것처럼 동작합니다.

  1. AI가 화면을 캡처해서 봅니다 (스크린샷)
  2. 화면에서 클릭해야 할 버튼이나 입력할 곳을 찾습니다
  3. 마우스를 해당 위치로 이동하고 클릭하거나, 키보드로 텍스트를 입력합니다
  4. 다시 화면을 캡처해서 자신의 행동이 원하는 결과를 가져왔는지 확인합니다
  5. 목표를 달성할 때까지 이 과정을 반복합니다

이는 기존의 LangChain이나 LlamaIndex 같은 도구들이 미리 정의된 API로만 작업하는 것과는 완전히 다른 접근 방식입니다. Computer Use는 실제로 화면을 보고 마우스와 키보드를 조작하기 때문에, 특별한 API 연동 없이도 일반적인 프로그램들을 모두 사용할 수 있습니다.

더보기

LangChain / LlamaIndex와 Computer User 비교

구분 LangChain/LlamaIndex Computer Use
작동 방식 미리 정의된 도구와 API 호출
 - WebSearchTool().search("날씨")
실제 화면을 보고 마우스/키보드 조작
 - {action: "mouse_move", coordinate: [500, 300]}
프로그램 지원 API가 있는 프로그램만 사용 가능
새로운 프로그램 사용시 통합 개발 필요
GUI가 있는 모든 프로그램 사용 가능
별도 개발 없이 새로운 프로그램 사용 가능
오류 대응 정해진 에러 코드에만 대응
예상치 못한 상황 처리 어려움
 실시간 화면 확인으로 동적 대응
사람처럼 문제 상황 인식 및 해결
확장성 각 도구별 별도 개발 필요
프로그램 업데이트시 재개발 필요
GUI만 있으면 즉시 사용 가능
프로그램 변경에도 유연하게 대응

 


Computer Use의 실제 동작 방식

1. 화면 인식과 분석

# 화면 캡처 명령
{
    "action": "screenshot"
}
  • Claude는 1024x768 해상도(권장)로 화면을 캡처
  • 캡처된 이미지를 분석하여 UI 요소들의 위치를 파악
  • 현재 상태와 다음 액션을 결정하는 데 사용

2. 마우스 제어

# 마우스 이동
{
    "action": "mouse_move",
    "coordinate": [x, y]  # 픽셀 단위 좌표
}

# 클릭 동작
{
    "action": "left_click"  # 기본 클릭
}
{
    "action": "double_click"  # 더블 클릭
}
{
    "action": "right_click"  # 우클릭
}
  • 픽셀 단위로 정확한 좌표 계산
  • 버튼, 링크 등의 중앙을 정확히 타겟팅
  • 다양한 클릭 동작 지원

3. 키보드 입력

# 텍스트 입력
{
    "action": "type",
    "text": "alphalog.co.kr"
}

# Return 키 입력
{
    "action": "key",
    "text": "Return"  # Return 키
}
  • 일반 텍스트 입력
  • 특수키와 단축키 조합 지원
  • 시스템 명령어 실행 가능

4. 작업 확인과 보정

# 작업 결과 확인을 위한 과정
1. 액션 실행
2. 스크린샷 촬영
3. 결과 분석
4. 필요시 재시도 또는 보정
  • 각 액션 후 결과를 확인
  • 예상치 못한 상황 발생 시 대응
  • 작업 성공 여부 판단

5. 실제 작업 흐름 예시

# 텍스트 에디터에 글쓰기 작업
{
    "action": "screenshot"  # 현재 화면 확인
}
{
    "action": "mouse_move",
    "coordinate": [100, 200]  # 텍스트 에디터 아이콘으로 이동
}
{
    "action": "double_click"  # 프로그램 실행
}
{
    "action": "screenshot"  # 프로그램 실행 확인
}
{
    "action": "type",
    "text": "alphalog.co.kr" # 텍스트 입력
}
{
    "action": "key",
    "text": "Return"  # Return 키
}

6. 에러 처리와 재시도

  • 화면 요소를 찾지 못할 경우
    • 다른 좌표로 재시도
    • 스크롤하여 추가 영역 탐색
    • 대체 방법 시도 (단축키 사용 등)
  • 프로그램 응답 대기
    • 적절한 대기 시간 설정
    • 화면 변화 감지 후 다음 동작 수행

7. 특별 고려사항

  • 스크린 해상도에 따른 좌표 조정
  • 팝업이나 알림 창 처리
  • 로딩 시간 고려
  • 시스템 언어/로케일 차이 대응

Computer Use 데모 실행 가이드

Computer Use 지원 모델

  • 모델명: claude-3-5-sonnet-20241022
  • 지원 버전: 2024년 10월 22일 출시된 업그레이드 버전
  • 이전 Claude 모델들은 지원하지 않음

1. Anthropic API 직접 사용

export ANTHROPIC_API_KEY=%your_api_key%
docker run \
    -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
    -v $HOME/.anthropic:/home/computeruse/.anthropic \
    -p 5900:5900 \
    -p 8501:8501 \
    -p 6080:6080 \
    -p 8080:8080 \
    -it ghcr.io/anthropics/anthropic-quickstarts:computer-use-demo-latest
  • 가장 직접적인 방법
  • Anthropic Console에서 API 키 발급 필요
  • 컨테이너에 API 키를 직접 전달
  • .anthropic 디렉토리 마운트로 설정 유지

2. AWS Bedrock 사용

방법 1: AWS 프로필 사용 (권장)

export AWS_PROFILE=<your_aws_profile>
docker run \
    -e API_PROVIDER=bedrock \
    -e AWS_PROFILE=$AWS_PROFILE \
    -e AWS_REGION=us-west-2 \
    -v $HOME/.aws:/home/computeruse/.aws \
    -v $HOME/.anthropic:/home/computeruse/.anthropic \
    -p 5900:5900 \
    -p 8501:8501 \
    -p 6080:6080 \
    -p 8080:8080 \
    -it ghcr.io/anthropics/anthropic-quickstarts:computer-use-demo-latest
  • AWS CLI 프로필 설정 사용
  • .aws 디렉토리를 컨테이너와 공유
  • 보안상 더 안전한 방법
  • AWS Region은 반드시 us-west-2 사용

방법 2: 액세스 키 직접 사용

export AWS_ACCESS_KEY_ID=%your_aws_access_key%
export AWS_SECRET_ACCESS_KEY=%your_aws_secret_access_key%
export AWS_SESSION_TOKEN=%your_aws_session_token%
docker run \
    -e API_PROVIDER=bedrock \
    -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
    -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
    -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
    -e AWS_REGION=us-west-2 \
    -v $HOME/.anthropic:/home/computeruse/.anthropic \
    -p 5900:5900 \
    -p 8501:8501 \
    -p 6080:6080 \
    -p 8080:8080 \
    -it ghcr.io/anthropics/anthropic-quickstarts:computer-use-demo-latest
  • AWS 자격 증명을 환경 변수로 직접 전달
  • 임시 자격 증명 사용 가능
  • 세션 토큰 지원

3. Google Cloud Vertex AI 사용

docker build . -t computer-use-demo
gcloud auth application-default login
export VERTEX_REGION=%your_vertex_region%
export VERTEX_PROJECT_ID=%your_vertex_project_id%
docker run \
    -e API_PROVIDER=vertex \
    -e CLOUD_ML_REGION=$VERTEX_REGION \
    -e ANTHROPIC_VERTEX_PROJECT_ID=$VERTEX_PROJECT_ID \
    -v $HOME/.config/gcloud/application_default_credentials.json:/home/computeruse/.config/gcloud/application_default_credentials.json \
    -p 5900:5900 \
    -p 8501:8501 \
    -p 6080:6080 \
    -p 8080:8080 \
    -it computer-use-demo
  • Google Cloud 자격 증명 필요
  • 로컬에서 이미지 빌드 필요
  • gcloud CLI로 인증
  • 프로젝트 ID와 리전 설정 필요

공통 사항

  • 모든 방식에서 4개의 포트 매핑 필요:
    • 5900: VNC 서버
    • 8501: Streamlit 인터페이스
    • 6080: noVNC 웹 클라이언트
    • 8080: 데모 앱 웹 인터페이스
  • 컨테이너 실행 후 http://localhost:8080으로 접속
  • 각 플랫폼별 적절한 권한 설정 필요

Computer Use 데모 환경 첫 실행

데모 환경을 실행하면 화면은 크게 두 부분으로 나뉩니다:

왼쪽: Streamlit 기반 입력 인터페이스

  • Streamlit으로 구현된 웹 기반 인터페이스
  • 텍스트 입력창을 통해 AI에게 작업 지시
  • 설정(Settings) 메뉴를 통해 API 설정 확인/변경 가능
  • 실시간으로 AI의 작업 진행 상황 확인 가능

오른쪽: 가상 데스크톱 환경

  • AI가 실제로 작업을 수행하는 리눅스 기반 가상 데스크톱
  • 기본적인 애플리케이션들이 설치된 상태
  • 1024x768 해상도로 최적화된 환경
  • AI의 마우스/키보드 동작을 실시간으로 관찰 가능

실제 테스트 경험

간단한 웹 브라우징 테스트를 진행해 보았습니다. 먼저 "브라우저를 실행하고 특정 사이트로 이동"하는 기본적인 작업을 요청했고, AI는 이를 매끄럽게 수행했습니다.

더 나아가 "해당 사이트의 최신 글로 이동"이라는 좀 더 복잡한 작업도 요청해 보았는데, 이 또한 성공적으로 수행했습니다. 특히 인상적이었던 점은 화면 크기의 제약을 극복하는 모습이었습니다. 1024x768 해상도의 제한된 화면에서도, 전체 웹페이지를 탐색하고 필요한 요소를 찾아내는 능력을 보여주었습니다. 이는 단순히 스크린샷 기반의 작동이라고 하기에는 상당히 정교한 수준의 인터랙션이 가능함을 보여줍니다.

결론

Computer Use는 AI가 실제로 컴퓨터를 '사용'할 수 있게 만든다는 점에서 큰 의미가 있습니다. 초기 베타 버전임에도 불구하고 기대 이상의 성능을 보여주었으며, 특히 화면 제약이나 복잡한 UI 탐색과 같은 예상된 한계점들을 잘 극복하는 모습을 보여주었습니다.

앞으로 AI가 단순히 정보를 처리하는 것을 넘어, 실제 컴퓨터 환경에서 다양한 작업을 자율적으로 수행할 수 있는 가능성을 보여준다는 점에서 매우 고무적입니다. 다만 아직은 베타 단계인 만큼, 안정성과 보안 측면에서의 개선이 필요할 것으로 보입니다.

[참고] Computer use (beta) Document

반응형