コンピューターの使用はベータ版の機能です。コンピューターの使用には、標準のAPIの機能やチャットインターフェースとは異なる独自のリスクがあることにご注意ください。特にインターネットとの対話においては、リスクが高まります。リスクを最小限に抑えるために、以下のような予防措置を講じることをお勧めします。

  1. 直接的なシステム攻撃や事故を防ぐため、専用の仮想マシンまたはコンテナで最小限の権限を与えます。
  2. アカウントのログイン情報などの機密データへのアクセスを避け、情報の流出を防ぎます。
  3. マリシャスなコンテンツへの露出を減らすため、インターネットアクセスを許可リストのドメインに制限します。
  4. 実世界に意味のある影響を及ぼす可能性のある決定や、クッキーの受け入れ、金融取引の実行、利用規約への同意など、肯定的な同意が必要なタスクについては、人間に確認を求めます。

状況によっては、Claudeはユーザーの指示に反してコンテンツ内の命令に従う可能性があります。例えば、ウェブページやイメージに含まれるClaudeの指示は、ユーザーの指示を上書きしたり、Claudeに間違いを起こさせたりする可能性があります。プロンプト注入に関連するリスクを避けるため、Claudeを機密データや重要なアクションから隔離するための予防措置を講じることをお勧めします。

最後に、自社製品でコンピューターの使用を有効にする前に、関連するリスクをエンドユーザーに通知し、同意を得てください。

コンピューターの使用のリファレンス実装

ウェブインターフェース、Dockerコンテナ、ツール実装の例、エージェントループが含まれるコンピューターの使用のリファレンス実装を入手して、すぐに始められます。

このフォームを使って、モデル応答の品質、APIそのもの、ドキュメントの品質についてフィードバックをお寄せください。皆様からのご意見をお待ちしております!

Messages APIを使ってClaudeにコンピューターの使用ツールを提供する方法の例を以下に示します。


コンピューターの使用の仕組み

1. Claudeにコンピューターの使用ツールとユーザープロンプトを提供する

  • APIリクエストにAnthropicが定義したコンピューターの使用ツールを追加します。
  • これらのツールが必要になる可能性のあるユーザープロンプトを含めます(例: “デスクトップに猫の写真を保存してください”)。

2. Claudeがツールを使用することを決定する

  • Claudeは保存されたコンピューターの使用ツールの定義をロードし、ユーザーのクエリに役立つツールがあるかどうかを評価します。
  • ツールが役立つ場合、Claudeは適切な形式のツール使用リクエストを構築します。
  • APIレスポンスのstop_reasontool_useになり、Claudeのツール使用の意図が示されます。

3. ツール入力を抽出し、コンピューターでツールを評価して結果を返す

  • あなたの側で、Claudeのリクエストからツール名と入力を抽出します。
  • コンテナまたは仮想マシンでツールを使用します。
  • tool_resultコンテンツブロックを含む新しいuserメッセージで会話を続けます。

4. Claudeはタスクが完了するまでコンピューターの使用ツールを繰り返し呼び出す

  • Claudeはツール結果を分析し、さらにツールの使用が必要かどうか、またはタスクが完了したかどうかを判断します。
  • Claudeが別のツールが必要だと判断した場合、別のtool_use stop_reasonで応答し、ステップ3に戻る必要があります。
  • そうでない場合、Claudeはユーザーへのテキスト応答を作成します。

ユーザー入力なしにステップ3と4を繰り返すことを「エージェントループ」と呼びます。つまり、Claudeがツール使用リクエストを応答し、あなたのアプリケーションがそのリクエストを評価した結果をClaudeに返すことです。


コンピューターの使用の実装方法

リファレンス実装から始める

リファレンス実装には、コンピューターの使用を始めるために必要なものがすべて含まれています。

このドキュメントの残りの部分を読む前に、リファレンス実装を試すことをお勧めします。

プロンプティングによるモデルパフォーマンスの最適化

高品質の出力を得るためのヒントをいくつか紹介します。

  1. シンプルで明確に定義されたタスクを指定し、各ステップの明示的な指示を与えます。
  2. Claudeは時々、アクションの結果を明示的に確認せずに、その結果を想定してしまうことがあります。これを防ぐために、Claudeにプロンプトで「各ステップの後、スクリーンショットを撮り、正しい結果が得られたかどうかを注意深く評価してください。考え方を明示的に示してください。“ステップXを評価しました…”正しくない場合は、もう一度試してください。ステップが正しく実行されたことを確認した場合にのみ、次のステップに進んでください」と指示することができます。
  3. ドロップダウンメニューやスクロールバーなどのUIの要素は、Claudeがマウス操作で操作するのが難しい場合があります。この場合は、キーボードショートカットを使うようClaudeにプロンプトすることで改善できます。
  4. 繰り返しのタスクやUI操作の場合は、プロンプトに成功した結果のスクリーンショットやツールの呼び出し例を含めます。
  5. モデルにログインを要求する場合は、プロンプトの中でxml タグ <robot_credentials> でユーザー名とパスワードを提供します。アプリケーションでログインが必要な場合、コンピューターの使用ではプロンプト注入の影響を受ける可能性があります。ログイン資格情報をモデルに提供する前に、プロンプト注入の緩和に関するガイドを確認してください。

繰り返し明確な一連の問題に遭遇する場合や、Claudeが実行する必要があるタスクをあらかじめ知っている場合は、システムプロンプトを使ってClaudeにタスクを成功させるための明示的なヒントや指示を与えることができます。

システムプロンプト

AnthropicのツールがAnthropicのAPIを介して要求された場合、コンピューターの使用に特化したシステムプロンプトが生成されます。これはツールの使用のシステムプロンプトに似ていますが、次のように始まります。

一連の機能を使ってユーザーの質問に答えることができます。これには、サンドボックス化されたコンピューター環境へのアクセスが含まれます。現時点では、以下の機能を呼び出さない限り、ファイルを検査したり外部リソースと対話したりすることはできません。

通常のツール使用と同様に、ユーザーが提供したsystem_promptフィールドも尊重され、組み合わされたシステムプロンプトの構築に使用されます。

Anthropicが定義したツールを理解する

ベータ版のため、これらのツール定義は変更される可能性があります。

Claudeがコンピューターを効果的に使用できるようにするための一連のツールを提供しています。Anthropicが定義したツールを指定する場合、descriptiontool_schemaフィールドは必要ありません。

Anthropicが定義したツールはユーザーが実行する

Anthropicが定義したツールはAnthropicによって定義されていますが、ツールの結果を明示的に評価し、tool_resultsをClaudeに返す必要があります。他のツールと同様に、モデルはツールを自動的に実行することはできません。

現在、以下の3つのAnthropicが定義したツールを提供しています。

  • { "type": "computer_20241022", "name": "computer" }
  • { "type": "text_editor_20241022", "name": "str_replace_editor" }
  • { "type": "bash_20241022", "name": "bash" }

typeフィールドはツールとそのパラメーターを識別するためのものであり、nameフィールドはモデルに公開されるツール名です。

モデルにこれらのツールの使用を促したい場合は、nameフィールドを明示的に参照することができます。nameフィールドは、ツールリスト内で一意である必要があります。同じAPIコールで、Anthropicが定義したツールと同じ名前のツールを定義することはできません。

Anthropicが定義したツールと同じ名前のツールを定義することは推奨されません。同じ名前のツールを再定義することはできますが(同じtoolsブロック内でツール名が一意であれば)、モデルのパフォーマンスが低下する可能性があります。

他のツールとコンピューターの使用を組み合わせる

通常のツールの使用とAnthropicが定義したコンピューターの使用ツールを組み合わせることができます。

カスタムのコンピューターの使用環境を構築する

リファレンス実装は、コンピューターの使用を始めるのに役立ちます。Claudeがコンピューターを使用するために必要なすべてのコンポーネントが含まれています。ただし、ニーズに合わせてカスタムのコンピューターの使用環境を構築することもできます。必要なものは以下の通りです。

  • Claudeでのコンピューターの使用に適した仮想化またはコンテナ化された環境
  • Anthropicが定義したコンピューターの使用ツールの少なくとも1つの実装
  • AnthropicのAPIと対話し、ツール実装を使ってtool_use結果を実行するエージェントループ
  • ユーザー入力を受け付け、エージェントループとツールを開始するAPIまたはUI

コンピューターの使用の制限を理解する

コンピューターの使用機能はベータ版です。Claudeの機能は最先端ですが、開発者はその制限を認識する必要があります。

  1. レイテンシー: 現在のコンピューターの使用では、人間とAIの対話のレイテンシーが、通常の人間主導のコンピューター操作に比べて遅すぎる可能性があります。信頼できる環境で、スピードが重要でない用途(バックグラウンドでの情報収集、自動ソフトウェアテストなど)に焦点を当てることをお勧めします。
  2. コンピューター ビジョンの精度と信頼性: Claudeは、アクションを生成する際に、特定の座標を出力したり、ハルシネーションを起こしたりする可能性があります。
  3. ツール選択の精度と信頼性: Claudeは、アクションを生成する際に、ツールの選択を間違えたり、ハルシネーションを起こしたりする可能性があります。また、ニッチなアプリケーションや複数のアプリケーションを同時に操作する場合、信頼性が低下する可能性があります。複雑なタスクを要求する際は、モデルにプロンプトを慎重に与えることをお勧めします。
  4. スクロールの信頼性: 現在の体験では、スクロールの信頼性が低く、モデルがページの最下部までスクロールできない可能性があります。キーストローク(PgUp/PgDown)を使うことで、スクロール動作を改善できます。
  5. スプレッドシートの操作: マウスクリックによるスプレッドシートの操作は信頼性が低く、セルの選択が期待どおりに動作しない可能性があります。矢印キーを使うようモデルにプロンプトすることで、この問題を軽減できます。
  6. ソーシャルメディアやコミュニケーションプラットフォームでのアカウント作成とコンテンツ生成: Claudeはウェブサイトを訪問できますが、ソーシャルメディアウェブサイトやプラットフォームでのアカウント作成、コンテンツの生成や共有、人間になりすましなどの機能は制限されています。将来的にこの機能を更新する可能性があります。
  7. 脆弱性: ジェイルブレイクやプロンプト注入などの脆弱性は、ベータ版のコンピューターの使用APIを含む最先端のAIシステムでも存在する可能性があります。状況によっては、Claudeはユーザーの指示に反してコンテンツ内の命令に従う可能性があります。例えば、ウェブページやイメージに含まれるClaudeの指示は、ユーザーの指示を上書きしたり、Claudeに間違いを起こさせたりする可能性があります。以下のことをお勧めします。 a. 最小限の権限を持つ仮想マシンやコンテナなど、信頼できる環境でのみコンピューターの使用を許可する b. 厳重な監視なしでは、機密アカウントやデータへのアクセスをコンピューターの使用に許可しない c. アプリケーションでコンピューターの使用機能を有効にする前に、関連するリスクをエンドユーザーに通知し、同意を得る
  8. 不適切または違法な行為: Anthropicの利用規約に従い、コンピューターの使用を違法行為や許可されていない行為に使用してはいけません。

Claudeのコンピューターの使用のアクションやログを必ず慎重に確認してください。人間の監視なしで、完全な精度や機密のユーザー情報が必要なタスクにClaudeを使用しないでください。


価格

ツールの使用の価格設定のドキュメントで、ClaudeのツールAPIリクエストの価格設定について詳しく説明しています。

コンピューターの使用リクエストは、他のClaudeのAPIリクエストと同様に価格設定されます。

また、コンピューターの使用を可能にするための特別なシステムプロンプトをモデルに自動的に含めています。

モデルツール選択システムプロンプトのトークン数
Claude 3.5 Sonnet (新)auto
any, tool
466トークン
499トークン

ベーストークン数に加えて、Anthropicが定義したツールには以下の追加入力トークンが必要です。

ツール追加入力トークン
computer_20241022683トークン
text_editor_20241022700トークン
bash_20241022245トークン