近年、AI技術の進歩は目覚ましく、その中でもAnthropic社が開発した「Claude」は注目を集めています。本記事では、アップグレードされた「Claude 3.5 Sonnet」モデルが提供する新機能「コンピューター使用(ベータ版)」について、詳細にご紹介します。
「コンピューター使用(ベータ版)」とは
「Claude 3.5 Sonnet」モデルは、コンピュータのデスクトップ環境を操作できるツールと連携する能力を持っています。これにより、AIが直接コンピュータ上の操作を行い、ユーザーの指示に従ってタスクを実行することが可能になりました。
公式ドキュメントとリファレンス

ベータ版機能におけるリスクと対策
「コンピューター使用」はベータ版機能であり、従来のAPI機能やチャットインターフェースとは異なる独自のリスクがあります。特にインターネットとの連携時にはリスクが高まるため、以下のような対策を講じることが推奨されます。
- 専用の仮想マシンやコンテナを使用:システムへの直接的な攻撃や事故を防ぐため、最小限の権限を持つ環境で実行します。
- 機密データの非公開:アカウントのログイン情報などの機密データをモデルに渡さないことで、情報漏洩を防止します。
- インターネットアクセスの制限:許可されたドメインのみアクセス可能にすることで、悪意のあるコンテンツへの露出を減らします。
- 人間による確認:クッキーの受け入れや金融取引の実行、利用規約への同意など、実世界に大きな影響を及ぼす決定は、人間が確認します。
また、場合によっては、Claudeがユーザーの指示と矛盾する内容をウェブページや画像から読み取り、それに従ってしまうことがあります。そのため、プロンプトインジェクションに関連するリスクを回避するためにも、Claudeを機密データや重要なアクションから隔離することが重要です。
エンドユーザーへの情報提供と同意取得
自身のプロダクトで「コンピューター使用」を有効にする前に、エンドユーザーに関連するリスクを明示し、事前に同意を得ることが必要です。
「コンピューター使用」のリファレンス実装
迅速に「コンピューター使用」を始められるよう、ウェブインターフェース、Dockerコンテナ、ツールの例、およびエージェントループを含むリファレンス実装が提供されています。
フィードバックを提供するためのフォームも用意されており、モデルの応答品質、API自体、ドキュメントの品質などについて意見を共有できます。
「コンピューター使用」の動作方法
- Claudeにツールとユーザープロンプトを提供
- Anthropicが定義した「コンピューター使用」ツールをAPIリクエストに追加します。
- 例:「デスクトップに猫の写真を保存して」。
- Claudeがツールの使用を決定
- 保存されたツール定義をロードし、ユーザーのクエリに役立つか評価します。
- 必要に応じて、適切にフォーマットされたツール使用リクエストを構築します。
- API応答には、Claudeの意図を示す
stop_reason
としてtool_use
が含まれます。
- ツールの入力を抽出し、結果を返す
- ツール名と入力を抽出します。
- 仮想マシンやコンテナ上でツールを使用します。
tool_result
コンテンツブロックを含む新しいユーザーメッセージで会話を続けます。
- Claudeがタスク完了までツールを使用し続ける
- ツールの結果を分析し、さらなるツール使用が必要かタスクが完了したか判断します。
- さらにツールが必要な場合、再び
tool_use
のstop_reason
で応答し、ステップ3に戻ります。 - タスクが完了した場合、ユーザーへのテキスト応答を作成します。
このステップ3と4の繰り返しを「エージェントループ」と呼び、ユーザーからの入力なしで進行します。
「コンピューター使用」の実装方法
リファレンス実装から始める
リファレンス実装には、以下が含まれています。
- Claudeでの「コンピューター使用」に適したコンテナ化された環境
- ツールの実装
- Anthropic APIと連携し、ツールの結果を評価するエージェントループ
- ユーザーがコンテナ、エージェントループ、ツールと対話できるウェブインターフェース
モデルのパフォーマンスを最適化するためのプロンプト
- 明確で簡潔なタスクの指定:各ステップに対して明示的な指示を提供します。
- 結果の確認を促す:Claudeが各ステップの結果を確認するように促します。
- キーボードショートカットの利用:マウス操作が難しい場合、キーボードショートカットを提案します。
- 成功例の提供:繰り返しタスクの場合、成功した結果のスクリーンショットやツールコールの例を含めます。
- システムプロンプトでの明示的な指示:特定の問題が繰り返される場合、システムプロンプトで具体的な指示を提供します。
システムプロンプトについて
Anthropicが定義したツールがAPI経由でリクエストされると、特定のシステムプロンプトが生成されます。これは通常のツール使用のシステムプロンプトに似ていますが、以下のような記述で始まります。
「ユーザーの質問に答えるために使用できる一連の関数にアクセスできます。これはサンドボックス化されたコンピューティング環境へのアクセスを含みます。現在、ファイルを検査したり、外部リソースとやり取りする能力はありません。下記の関数を呼び出すことでのみ可能です。」
ユーザーが提供したsystem_prompt
フィールドも、統合されたシステムプロンプトの構築において尊重され、使用されます。
Anthropic定義のツール
現在、以下の3つのツールが提供されています。
{"type": "computer_20241022", "name": "computer"}
{"type": "text_editor_20241022", "name": "str_replace_editor"}
{"type": "bash_20241022", "name": "bash"}
これらのツールはAnthropicによって定義されていますが、実際にツールを評価し結果を返すのはユーザー側です。ツールの名前はユニークである必要があり、同じAPIコール内で同名のツールを定義することはできません。
他のツールとの組み合わせ
「コンピューター使用」は、通常のツール使用と組み合わせることが可能です。例えば、気象情報を取得するカスタムツールget_weather
を追加することで、より複雑なタスクを実現できます。
カスタム環境の構築
リファレンス実装は「コンピューター使用」を始めるためのものですが、ニーズに合わせて独自の環境を構築することも可能です。その際には、以下が必要です。
- Claudeでの「コンピューター使用」に適した仮想化またはコンテナ化された環境
- Anthropicが定義したツールの少なくとも一つの実装
- Anthropic APIと連携し、
tool_use
の結果を評価するエージェントループ - エージェントループとツール実装を使用するためのAPIまたはUI
「コンピューター使用」の制限事項
「コンピューター使用」はベータ版であり、以下のような制限があります。
- レイテンシー:現在のレイテンシーは、人間による操作と比較して遅い可能性があります。速度が重要でないユースケースに焦点を当てることを推奨します。
- コンピュータビジョンの精度と信頼性:座標の指定などで誤りが発生する可能性があります。
- ツール選択の精度と信頼性:ツールの選択や問題解決の際に誤りが生じることがあります。
- スクロールの信頼性:スクロール操作は信頼性が低い場合があります。
- スプレッドシートの操作:マウスクリックによる操作が信頼できない場合があります。
- アカウント作成とコンテンツ生成:SNSやコミュニケーションプラットフォームでのアカウント作成やコンテンツ生成は制限されています。
- 脆弱性:プロンプトインジェクションなどの脆弱性が存在する可能性があります。
- 不適切または違法な行為:法律や利用規約に違反する行為は禁止されています。
注意:Claudeの操作やログを慎重に確認し、完全な精度が求められるタスクや機密情報を扱う際には人間による監視を行ってください。
結論
「Claude 3.5 Sonnet」の「コンピューター使用(ベータ版)」は、AIの新たな可能性を示す機能です。適切な対策と理解を持って使用することで、さまざまなタスクを自動化し、効率化することが期待できます。今後のアップデートにより、さらに信頼性と機能性が向上することが予想されますので、最新情報にご注目ください。
開発者の動画翻訳
(00:00) こんにちは、私はサムで、Anthropicの研究者の一人です。コンピューター使用は、私たちがしばらくの間重要だと感じていたものです。今日は、私たちが持っているコンピューター使用の非常に初期のバージョンについて話し、それが役立つと考える代表的な例を紹介します。
(00:21) 今日は簡単なデモを行います。この架空のデモでは、顧客、今回はAnt Equipment Companyが私たちにベンダーリクエストフォームの記入を依頼してきました。このフォームを記入するために必要なデータは、私のコンピューターのさまざまな場所に散らばっています。そこで、Claudeにスプレッドシートを見て、Ant Equipmentが含まれているか確認するよう依頼します。
(00:43) もし含まれていなければ、CRMに移動して、そこでより多くの情報を見つけようとします。このデータを取得したら、Claudeがフォームを記入し、その情報をベンダーフォームに転送してくれる予定です。最初に起こるのは、Claudeが私の画面のスクリーンショットを撮り始め、Ant Equipment Companyが実際にはスプレッドシートに含まれていないことにすぐ気づくことです。
(01:02) そこで最初に行うのは、CRMに切り替えて、私たちが興味を持っている会社を検索することです。幸運にも、検索結果が見つかります。その後、Claudeはページをスクロールし、このフォームを記入するために必要なすべての情報を探します。そして、私が何もしなくても、Claudeは自律的に情報を転送し始めます。
(01:39) 手順を進め、必要なすべての情報を記入し、そしてフォームを提出します。この例は、人々がしなければならない多くの退屈な作業を代表しています。これはAPIで利用可能です。皆さんに試していただくことを楽しみにしており、今後数ヶ月でさらに良くなることを期待しています。
サマリー
Anthropicの研究者であるサムが、AIアシスタント「Claude」を使用してコンピューター上の操作を自動化するデモを紹介しています。架空のシナリオとして、顧客からベンダーリクエストフォームの記入を依頼されます。
必要なデータがコンピューター内のさまざまな場所に散在しているため、Claudeにそれらを検索・取得させ、フォームに自動で入力・提出します。このプロセスでは、スプレッドシートやCRMを参照し、必要な情報を収集します。このデモは、反復的で時間のかかる作業を自動化することで効率化できることを示しており、現在APIを通じて利用可能で、今後さらに改善される予定です。
データに関しての新たな取り組みはこちら