Anthropic Computer Use のクイックスタートを試してみる

# はじめに
2024年10月23日に **Computer Use** という機能が発表されたのでちょっと試してみました。

https://www.anthropic.com/news/3-5-models-and-computer-use

# Computer Use とは？
>Claude can now use computers. The latest version of Claude 3.5 Sonnet can, when run through the appropriate software setup, follow a user’s commands to move a cursor around their computer’s screen, click on relevant locations, and input information via a virtual keyboard, emulating the way people interact with their own computer.
>
>最新バージョンの Claude 3.5 Sonnet は、適切なソフトウェア セットアップを実行すると、ユーザーのコマンドに従ってコンピューターの画面上でカーソルを移動したり、関連する場所をクリックしたり、仮想キーボードで情報を入力したりすることができ、ユーザーが自分のコンピューターを操作する方法をエミュレートします。

https://www.anthropic.com/research/developing-computer-use

つまり、 *Claude 3.5 Sonnet* で新たに実装された機能で、プロンプトを入力するとその指示に従って *Claude* がコンピューターを操作してくれる機能みたいです。

# 前提
今回行う実行する PC 環境は Mac です。
また、以下については事前に対応済みの状態で実施します。
- docker インストール
- Anthropic API Key の取得
- クレジットのチャージ

# 事前準備
**Computer Use** を試すにあたり Anthropic 社が用意しているクイックスタートを利用します。

https://github.com/anthropics/anthropic-quickstarts/tree/main/computer-use-demo


## docker の起動
準備は簡単でリポジトリをクローンして *docker* を起動するだけです。

```zsh:gitクローン
% git clone https://github.com/anthropics/anthropic-quickstarts.git
Cloning into 'anthropic-quickstarts'...
remote: Enumerating objects: 389, done.
remote: Counting objects: 100% (387/387), done.
remote: Compressing objects: 100% (231/231), done.
remote: Total 389 (delta 169), reused 318 (delta 129), pack-reused 2 (from 1)
Receiving objects: 100% (389/389), 3.07 MiB | 1.69 MiB/s, done.
Resolving deltas: 100% (169/169), done.
```

```zsh:ディレクトリ移動
% cd anthropic-quickstarts/computer-use-demo
```

*docker* を起動する際に `%your_api_key%` の部分は各自取得した API キーに置き換えて実行してください。

```zsh:docker起動
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
Xvfb started successfully on display :1
Xvfb PID: 9
starting tint2 on display :1 ...
starting mutter
starting vnc
PORT=5900
starting noVNC
noVNC started successfully
✨ Computer Use Demo is ready!
➡️  Open http://localhost:8080 in your browser to begin

```


## docker へアクセス
*docker* を起動させると `➡️  Open http://localhost:8080 in your browser to begin` というレスポンスが返ってくるのでアクセスします。
今回の利用ブラウザは *Chrome* です。
それでは **Computer Use** を試していこうと思います。


# 試してみる
今回、**ブラウザを起動して Amazon サイトの閲覧** と、　**git コマンドのインストール** を試してみました。

## Amazon サイトの閲覧

アクセスすると以下のようなデスクトップの画面が表示されるので、左下にある `Type a message to send to Claud to control the computer...` と表示されているボックスにプロンプトを入力します。
![スクリーンショット 2024-10-28 16.37.182.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/0671593e-cc54-d56f-0914-5bb29d0b220c.png)

ここでは **「Amazonのページを開いてください。」** と入力してみます。

するとメッセージを受けた **Claude** からの返答があり操作を始めます。

ちなみに、**赤い四角に人の顔マークのアイコン** はこちらで入力した内容を **黄色の四角にロボットマークのアイコン** が **Claude** の返答内容になります。

![スクリーンショット 2024-10-28 16.45.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/5bd720cf-a15c-17fe-7810-3a222a757f63.png)

![662f464686fefa067b3176011fb98cdde8417e7cf1c4a30c451e908b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/d2f50991-d857-791e-8985-500a13d338e6.jpeg)

![スクリーンショット 2024-10-28 16.45.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/618de3a4-1c22-bb47-6ffd-d355f1384c3a.png)

![41a03ac1bf67dabb0f53a167a996285ccb91ebe64713928ddea1c565.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/267a0ada-d043-0243-aa61-fd96c95f286d.jpeg)

![b10b3f23bd7f68c6af6e7541513b240c2c0dd2eba14842907bd3ee87.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/24989f9b-8193-450d-914d-2b1d798839d1.jpeg)

![スクリーンショット 2024-10-28 16.46.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/58c742e0-6c2f-e8d8-1157-bbf42480573b.png)

![750e7e7679785039df1f165cce6927aeb01157776989ee71cf7b7826.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/47738fdb-670e-3130-1596-fbe09a14ac13.jpeg)

![2f72bbe97eb240ed4ee624cb36531415dfe65612eb1464c2bb816c70.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/9cdf302b-78b9-37d9-e8f0-a2816dfeff18.jpeg)

![07f4b4908a1eb9713531a378b506684ea27c0fc5bf4dc6113fcbe025.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/0e739ca9-1d33-2bda-75ec-7747653bb606.jpeg)

![f01b856946a149eeef559ed4ff30edadc82c4087fbb04cbe9cd34431.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/f53cb659-2c0c-ee42-ae3c-28912b6e0556.jpeg)

![スクリーンショット 2024-10-29 9.37.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/3db31c14-8cc8-4462-8f16-f499666812cf.png)

**Claude** がステップごとに説明しながら操作してくれました。

今度は開いたブラウザを閉じてもらいます。

![スクリーンショット 2024-10-29 9.39.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/18dd75b7-e4bc-f8de-fe31-7beaeb59ec22.png)

![f01b856946a149eeef559ed4ff30edadc82c4087fbb04cbe9cd34431.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/f53cb659-2c0c-ee42-ae3c-28912b6e0556.jpeg)

![スクリーンショット 2024-10-28 16.48.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/86f25a28-35a0-ce03-5025-c79d8c8fd597.png)

![ddaead268467b9135f0399f5a9d9b7ff53ff8441dd83cf4f33dfe1ea.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/91c54a51-2f8c-5533-42c7-f76c248b1c8a.jpeg)

![スクリーンショット 2024-10-28 16.48.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/853bb1b7-b3fe-2076-5034-af0a7a9be518.png)

無事にブラウザが閉じられたことを確認できました。


## git コマンドのインストール

今度は *git* コマンドのインストールをお願いしてみます。

![スクリーンショット 2024-10-29 9.56.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/d8c505de-8d95-3cc6-2eeb-fa8197ea0588.png)

![スクリーンショット 2024-10-29 9.58.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/48f3b933-1d25-3212-12dd-a0c32fa5d075.png)

キャプチャだと右端が途切れてしまうためログを一応記載しておきます。

```zsh:gitインストール
Hit:1 http://ports.ubuntu.com/ubuntu-ports jammy InRelease
Get:2 http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease [128 kB]
Hit:3 https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy InRelease
Get:4 http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease [127 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease [129 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports jammy-updates/universe arm64 Packages [1396 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 Packages [2327 kB]
Get:8 http://ports.ubuntu.com/ubuntu-ports jammy-updates/restricted arm64 Packages [2563 kB]
Get:9 http://ports.ubuntu.com/ubuntu-ports jammy-updates/multiverse arm64 Packages [29.5 kB]
Get:10 http://ports.ubuntu.com/ubuntu-ports jammy-security/restricted arm64 Packages [2491 kB]
Get:11 http://ports.ubuntu.com/ubuntu-ports jammy-security/universe arm64 Packages [1113 kB]
Get:12 http://ports.ubuntu.com/ubuntu-ports jammy-security/main arm64 Packages [2057 kB]
Fetched 12.4 MB in 6s (2213 kB/s)
Reading package lists...
Building dependency tree...
Reading state information...
All packages are up to date.
Reading package lists...
Building dependency tree...
Reading state information...
git is already the newest version (1:2.34.1-1ubuntu1.11).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
```

また、

:::note alert
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
:::
という警告も出ていますが、これは *apt* コマンドに対するエラーで `apt コマンドのCLIインターフェイスは安定していないので、スクリプト内で使用する場合は注意してください。` という内容になります。
*apt* をスクリプト内で使用したり、*docker* コンテナ内で利用すると発生する場合があるそうです。

![スクリーンショット 2024-10-29 9.57.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/6df10541-56a0-2c64-9ad3-c9c5505b58b8.png)

インストールがちゃんとされているかまで確認してくれました。


# おわりに
プロンプトを入力するだけで操作してくれるのはとても便利です。
この機能によってこれから色んな可能性が広がって行きそうな感じがしました。


### 参考

https://docs.anthropic.com/en/docs/build-with-claude/computer-use