Loading...
    • 開発者ガイド
    • API リファレンス
    • MCP
    • リソース
    • リリースノート
    Search...
    ⌘K
    はじめに
    Claude の紹介クイックスタート
    モデルと料金
    モデル概要モデルの選び方Claude 4.6 の新機能移行ガイドモデルの廃止料金
    Claude で構築する
    機能概要Messages API の使用停止理由の処理プロンプトのベストプラクティス
    コンテキスト管理
    コンテキストウィンドウコンパクションコンテキスト編集
    機能
    プロンプトキャッシング拡張思考適応型思考エフォートメッセージのストリーミングバッチ処理引用多言語サポートトークンカウントエンベディングビジョンPDF サポートFiles API検索結果構造化出力
    ツール
    概要ツール使用の実装方法きめ細かいツールストリーミングBash ツールコード実行ツールプログラムによるツール呼び出しコンピュータ使用ツールテキストエディタツールWeb フェッチツールWeb 検索ツールメモリツールツール検索ツール
    Agent Skills
    概要クイックスタートベストプラクティスエンタープライズ向け SkillsAPI での Skills の使用
    Agent SDK
    概要クイックスタートTypeScript SDKTypeScript V2(プレビュー)Python SDK移行ガイド
    API での MCP
    MCP コネクタリモート MCP サーバー
    サードパーティプラットフォームの Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    プロンプトエンジニアリング
    概要プロンプトジェネレータープロンプトテンプレートの使用プロンプト改善ツール明確かつ直接的に例を使う(マルチショットプロンプティング)Claude に考えさせる(CoT)XML タグを使うClaude に役割を与える(システムプロンプト)複雑なプロンプトを連鎖させる長文コンテキストのヒント拡張思考のヒント
    テストと評価
    成功基準の定義テストケースの開発評価ツールの使用レイテンシの削減
    ガードレールの強化
    ハルシネーションの削減出力の一貫性を高めるジェイルブレイクの軽減ストリーミング拒否プロンプト漏洩の防止Claude をキャラクターに保つ
    管理とモニタリング
    Admin API 概要データレジデンシーワークスペースUsage and Cost APIClaude Code Analytics APIゼロデータリテンション
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    ツール

    コンピュータ使用ツール

    Claudeはコンピュータ使用ツールを通じてコンピュータ環境と対話できます。このツールはスクリーンショット機能とマウス/キーボード制御を提供し、自律的なデスクトップ操作を可能にします。

    コンピュータ使用は現在ベータ版であり、ベータヘッダーが必要です:

    • "computer-use-2025-11-24" - Claude Opus 4.6、Claude Opus 4.5用
    • "computer-use-2025-01-24" - Claude Sonnet 4.5、Haiku 4.5、Opus 4.1、Sonnet 4、Opus 4、およびSonnet 3.7(非推奨)用

    この機能に関するフィードバックはフィードバックフォームからお寄せください。

    概要

    コンピュータ使用は、Claudeがデスクトップ環境と対話できるようにするベータ機能です。このツールは以下を提供します:

    • スクリーンショットキャプチャ:画面に現在表示されている内容を確認
    • マウス制御:クリック、ドラッグ、カーソルの移動
    • キーボード入力:テキストの入力とキーボードショートカットの使用
    • デスクトップ自動化:あらゆるアプリケーションやインターフェースとの対話

    コンピュータ使用はbashやテキストエディタなどの他のツールと組み合わせてより包括的な自動化ワークフローを構築できますが、コンピュータ使用は特にコンピュータ使用ツールのデスクトップ環境を表示・制御する機能を指します。

    モデルの互換性

    コンピュータ使用は以下のClaudeモデルで利用可能です:

    モデルツールバージョンベータフラグ
    Claude Opus 4.6、Claude Opus 4.5computer_20251124computer-use-2025-11-24
    その他のサポートされているモデルcomputer_20250124computer-use-2025-01-24

    Claude Opus 4.6とClaude Opus 4.5は、詳細な画面領域の検査のためのズームアクションを含む新機能を備えたcomputer_20251124ツールバージョンを導入しています。その他のモデル(Sonnet 4.5、Haiku 4.5、Sonnet 4、Opus 4、Opus 4.1、およびSonnet 3.7)はcomputer_20250124ツールバージョンを使用します。

    古いツールバージョンは、新しいモデルとの後方互換性が保証されていません。常にモデルバージョンに対応するツールバージョンを使用してください。

    セキュリティに関する考慮事項

    コンピュータ使用は、標準的なAPI機能とは異なる固有のリスクを持つベータ機能です。これらのリスクはインターネットとの対話時に高まります。

    リスクを最小限に抑えるために、以下のような予防措置を検討してください:

    1. 直接的なシステム攻撃や事故を防ぐために、最小限の権限を持つ専用の仮想マシンまたはコンテナを使用する。
    2. 情報の窃取を防ぐために、アカウントのログイン情報などの機密データへのモデルのアクセスを避ける。
    3. 悪意のあるコンテンツへの露出を減らすために、インターネットアクセスをドメインの許可リストに制限する。
    4. 現実世界で重大な結果をもたらす可能性のある決定や、Cookieの受け入れ、金融取引の実行、利用規約への同意など、明示的な同意が必要なタスクについては、人間に確認を求める。

    状況によっては、Claudeはユーザーの指示と矛盾する場合でも、コンテンツ内に見つかったコマンドに従うことがあります。例えば、ウェブページ上や画像に含まれるClaudeへの指示が、指示を上書きしたり、Claudeにミスを引き起こさせたりする可能性があります。プロンプトインジェクションに関連するリスクを回避するために、Claudeを機密データやアクションから隔離する予防措置を講じることをお勧めします。

    私たちはこれらのプロンプトインジェクションに抵抗するようモデルをトレーニングし、追加の防御層を設けています。コンピュータ使用ツールを使用する場合、プロンプトインジェクションの潜在的なインスタンスをフラグ付けするために、プロンプトに対して自動的に分類器を実行します。これらの分類器がスクリーンショット内の潜在的なプロンプトインジェクションを識別した場合、次のアクションに進む前にユーザーの確認を求めるようモデルを自動的に誘導します。この追加の保護がすべてのユースケースに理想的ではないことを認識しています(例えば、人間がループに入っていないユースケース)。オプトアウトして無効にしたい場合は、お問い合わせください。

    プロンプトインジェクションに関連するリスクを回避するために、Claudeを機密データやアクションから隔離する予防措置を講じることを引き続きお勧めします。

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

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

    Webインターフェース、Dockerコンテナ、ツール実装例、エージェントループを含むコンピュータ使用リファレンス実装で素早く始めましょう。

    注意: この実装はClaude 4モデルとClaude Sonnet 3.7の両方の新しいツールを含むように更新されています。これらの新機能にアクセスするために、リポジトリの最新バージョンをプルしてください。

    モデルの応答品質、API自体、またはドキュメントの品質に関するフィードバックを提供するには、このフォームをご利用ください。皆様からのご意見をお待ちしております!

    クイックスタート

    コンピュータ使用を始める方法は以下の通りです:

    import anthropic
    
    client = anthropic.Anthropic()
    
    response = client.beta.messages.create(
        model="claude-opus-4-6",  # or another compatible model
        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"]
    )
    print(response)

    ベータヘッダーはコンピュータ使用ツールにのみ必要です。

    上記の例では3つのツールすべてを一緒に使用しており、コンピュータ使用ツールを含むためベータヘッダーが必要です。


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

    1. 1

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

      • コンピュータ使用ツール(およびオプションで他のツール)をAPIリクエストに追加します。
      • デスクトップ操作が必要なユーザープロンプトを含めます。例:「猫の写真をデスクトップに保存して。」
    2. 2

      Claudeがコンピュータ使用ツールの使用を決定する

      • Claudeはコンピュータ使用ツールがユーザーのクエリに役立つかどうかを評価します。
      • 役立つ場合、Claudeは適切にフォーマットされたツール使用リクエストを構築します。
      • APIレスポンスにはtool_useのstop_reasonがあり、Claudeの意図を示します。
    3. 3

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

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

      Claudeはタスクが完了するまでコンピュータ使用ツールを呼び出し続ける

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

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

    コンピューティング環境

    コンピュータ使用には、Claudeがアプリケーションやウェブと安全に対話できるサンドボックス化されたコンピューティング環境が必要です。この環境には以下が含まれます:

    1. 仮想ディスプレイ:仮想X11ディスプレイサーバー(Xvfbを使用)。Claudeがスクリーンショットで確認し、マウス/キーボードアクションで制御するデスクトップインターフェースをレンダリングします。

    2. デスクトップ環境:Linux上で動作するウィンドウマネージャー(Mutter)とパネル(Tint2)を備えた軽量UI。Claudeが対話するための一貫したグラフィカルインターフェースを提供します。

    3. アプリケーション:Firefox、LibreOffice、テキストエディタ、ファイルマネージャーなど、Claudeがタスクを完了するために使用できるプリインストールされたLinuxアプリケーション。

    4. ツール実装:Claudeの抽象的なツールリクエスト(「マウスを移動」や「スクリーンショットを撮る」など)を仮想環境内の実際の操作に変換する統合コード。

    5. エージェントループ:Claudeと環境間の通信を処理するプログラム。Claudeのアクションを環境に送信し、結果(スクリーンショット、コマンド出力)をClaudeに返します。

    コンピュータ使用時、Claudeはこの環境に直接接続しません。代わりに、アプリケーションが:

    1. Claudeのツール使用リクエストを受信する
    2. それらをコンピューティング環境内のアクションに変換する
    3. 結果(スクリーンショット、コマンド出力など)をキャプチャする
    4. これらの結果をClaudeに返す

    セキュリティと隔離のために、リファレンス実装はこれらすべてを、環境の表示と対話のための適切なポートマッピングを持つDockerコンテナ内で実行します。


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

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

    コンピュータ使用を素早く始めるために必要なすべてを含むリファレンス実装を構築しました:

    • Claudeでのコンピュータ使用に適したコンテナ化された環境
    • コンピュータ使用ツールの実装
    • Claude APIと対話しコンピュータ使用ツールを実行するエージェントループ
    • コンテナ、エージェントループ、ツールと対話するためのWebインターフェース

    マルチエージェントループの理解

    コンピュータ使用の核心は「エージェントループ」です。これはClaudeがツールアクションをリクエストし、アプリケーションがそれを実行し、結果をClaudeに返すサイクルです。以下は簡略化された例です:

    async def sampling_loop(
        *,
        model: str,
        messages: list[dict],
        api_key: str,
        max_tokens: int = 4096,
        tool_version: str,
        thinking_budget: int | None = None,
        max_iterations: int = 10,  # Add iteration limit to prevent infinite loops
    ):
        """
        A simple agent loop for Claude computer use interactions.
    
        This function handles the back-and-forth between:
        1. Sending user messages to Claude
        2. Claude requesting to use tools
        3. Your app executing those tools
        4. Sending tool results back to Claude
        """
        # Set up tools and API parameters
        client = Anthropic(api_key=api_key)
        beta_flag = "computer-use-2025-01-24" if "20250124" in tool_version else "computer-use-2024-10-22"
    
        # Configure tools - you should already have these initialized elsewhere
        tools = [
            {"type": f"computer_{tool_version}", "name": "computer", "display_width_px": 1024, "display_height_px": 768},
            {"type": f"text_editor_{tool_version}", "name": "str_replace_editor"},
            {"type": f"bash_{tool_version}", "name": "bash"}
        ]
    
        # Main agent loop (with iteration limit to prevent runaway API costs)
        iterations = 0
        while True and iterations < max_iterations:
            iterations += 1
            # Set up optional thinking parameter (for Claude Sonnet 3.7)
            thinking = None
            if thinking_budget:
                thinking = {"type": "enabled", "budget_tokens": thinking_budget}
    
            # Call the Claude API
            response = client.beta.messages.create(
                model=model,
                max_tokens=max_tokens,
                messages=messages,
                tools=tools,
                betas=[beta_flag],
                thinking=thinking
            )
    
            # Add Claude's response to the conversation history
            response_content = response.content
            messages.append({"role": "assistant", "content": response_content})
    
            # Check if Claude used any tools
            tool_results = []
            for block in response_content:
                if block.type == "tool_use":
                    # In a real app, you would execute the tool here
                    # For example: result = run_tool(block.name, block.input)
                    result = {"result": "Tool executed successfully"}
    
                    # Format the result for Claude
                    tool_results.append({
                        "type": "tool_result",
                        "tool_use_id": block.id,
                        "content": result
                    })
    
            # If no tools were used, Claude is done - return the final messages
            if not tool_results:
                return messages
    
            # Add tool results to messages for the next iteration with Claude
            messages.append({"role": "user", "content": tool_results})

    ループは、Claudeがツールをリクエストせずに応答する(タスク完了)か、最大反復回数に達するまで続きます。このセーフガードにより、予期しないAPIコストにつながる可能性のある無限ループを防止します。

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

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

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

    1. シンプルで明確に定義されたタスクを指定し、各ステップに明示的な指示を提供します。
    2. Claudeは結果を明示的に確認せずにアクションの結果を推測することがあります。これを防ぐために、Claudeに次のようにプロンプトできます:After each step, take a screenshot and carefully evaluate if you have achieved the right outcome. Explicitly show your thinking: "I have evaluated step X..." If not correct, try again. Only when you confirm a step was executed correctly should you move on to the next one.
    3. 一部のUI要素(ドロップダウンやスクロールバーなど)は、マウスの動きでClaudeが操作するのが難しい場合があります。これが発生した場合は、キーボードショートカットを使用するようモデルにプロンプトしてみてください。
    4. 繰り返し可能なタスクやUI操作の場合、プロンプトに成功した結果のスクリーンショットとツール呼び出しの例を含めてください。
    5. モデルにログインさせる必要がある場合は、<robot_credentials>のようなxmlタグ内にユーザー名とパスワードをプロンプトに提供してください。ログインが必要なアプリケーション内でコンピュータ使用を行うと、プロンプトインジェクションの結果として悪い結果が生じるリスクが高まります。モデルにログイン資格情報を提供する前に、プロンプトインジェクションの軽減に関するガイドを確認してください。

    明確な一連の問題に繰り返し遭遇する場合や、Claudeが完了する必要のあるタスクを事前に把握している場合は、システムプロンプトを使用して、タスクを正常に完了するための明示的なヒントや指示をClaudeに提供してください。

    システムプロンプト

    Anthropicが定義したツールの1つがClaude APIを介してリクエストされると、コンピュータ使用固有のシステムプロンプトが生成されます。これはツール使用システムプロンプトに似ていますが、以下で始まります:

    You have access to a set of functions you can use to answer the user's question. This includes access to a sandboxed computing environment. You do NOT currently have the ability to inspect files or interact with external resources, except by invoking the below functions.

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

    利用可能なアクション

    コンピュータ使用ツールは以下のアクションをサポートしています:

    基本アクション(全バージョン)

    • screenshot - 現在のディスプレイをキャプチャ
    • left_click - 座標[x, y]でクリック
    • type - テキスト文字列を入力
    • key - キーまたはキーの組み合わせを押す(例:「ctrl+s」)
    • mouse_move - カーソルを座標に移動

    拡張アクション(computer_20250124) Claude 4モデルおよびClaude Sonnet 3.7で利用可能:

    • scroll - 量を制御して任意の方向にスクロール
    • left_click_drag - 座標間でクリックしてドラッグ
    • right_click、middle_click - 追加のマウスボタン
    • double_click、triple_click - 複数回クリック
    • left_mouse_down、left_mouse_up - きめ細かいクリック制御
    • hold_key - 指定された時間(秒単位)キーを押し続ける
    • wait - アクション間で一時停止

    拡張アクション(computer_20251124) Claude Opus 4.6およびClaude Opus 4.5で利用可能:

    • computer_20250124のすべてのアクション
    • zoom - 画面の特定の領域をフル解像度で表示。ツール定義でenable_zoom: trueが必要。検査する領域の左上と右下の角を定義する座標[x1, y1, x2, y2]を持つregionパラメータを取ります。

    ツールパラメータ

    パラメータ必須説明
    typeはいツールバージョン(computer_20251124、computer_20250124、またはcomputer_20241022)
    nameはい"computer"でなければならない
    display_width_pxはいディスプレイの幅(ピクセル)
    display_height_pxはいディスプレイの高さ(ピクセル)
    display_numberいいえX11環境のディスプレイ番号
    enable_zoomいいえズームアクションを有効にする(computer_20251124のみ)。trueに設定すると、Claudeが特定の画面領域にズームインできるようになります。デフォルト:false

    重要:コンピュータ使用ツールはアプリケーションによって明示的に実行される必要があります。Claudeは直接実行できません。スクリーンショットのキャプチャ、マウスの移動、キーボード入力、その他のアクションの実装は、Claudeのリクエストに基づいてあなたが責任を持ちます。

    Claude 4モデルおよびClaude Sonnet 3.7でのthinking機能の有効化

    Claude Sonnet 3.7は、複雑なタスクに取り組む際のモデルの推論プロセスを確認できる新しい「thinking」機能を導入しました。この機能により、Claudeが問題にどのようにアプローチしているかを理解でき、デバッグや教育目的に特に価値があります。

    thinkingを有効にするには、APIリクエストにthinkingパラメータを追加します:

    "thinking": {
      "type": "enabled",
      "budget_tokens": 1024
    }

    budget_tokensパラメータは、Claudeがthinkingに使用できるトークン数を指定します。これは全体のmax_tokensバジェットから差し引かれます。

    thinkingが有効な場合、Claudeはレスポンスの一部として推論プロセスを返します。これにより以下が可能になります:

    1. モデルの意思決定プロセスを理解する
    2. 潜在的な問題や誤解を特定する
    3. Claudeの問題解決アプローチから学ぶ
    4. 複雑なマルチステップ操作の可視性を高める

    thinkingの出力がどのように見えるかの例を以下に示します:

    [Thinking]
    I need to save a picture of a cat to the desktop. Let me break this down into steps:
    
    1. First, I'll take a screenshot to see what's on the desktop
    2. Then I'll look for a web browser to search for cat images
    3. After finding a suitable image, I'll need to save it to the desktop
    
    Let me start by taking a screenshot to see what's available...

    他のツールによるコンピュータ使用の拡張

    コンピュータ使用ツールは他のツールと組み合わせて、より強力な自動化ワークフローを作成できます。これは特に以下が必要な場合に便利です:

    • システムコマンドの実行(bashツール)
    • 設定ファイルやスクリプトの編集(テキストエディタツール)
    • カスタムAPIやサービスとの統合(カスタムツール)
    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -H "anthropic-beta: computer-use-2025-01-24" \
      -d '{
        "model": "claude-opus-4-6",
        "max_tokens": 2000,
        "tools": [
          {
            "type": "computer_20250124",
            "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"
          },
          {
            "name": "get_weather",
            "description": "Get the current weather in a given location",
            "input_schema": {
              "type": "object",
              "properties": {
                "location": {
                  "type": "string",
                  "description": "The city and state, e.g. San Francisco, CA"
                },
                "unit": {
                  "type": "string",
                  "enum": ["celsius", "fahrenheit"],
                  "description": "The unit of temperature, either 'celsius' or 'fahrenheit'"
                }
              },
              "required": ["location"]
            }
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Find flights from San Francisco to a place with warmer weather."
          }
        ],
        "thinking": {
          "type": "enabled",
          "budget_tokens": 1024
        }
      }'

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

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

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

    コンピュータ使用ツールの実装

    コンピュータ使用ツールはスキーマレスツールとして実装されています。このツールを使用する場合、他のツールのように入力スキーマを提供する必要はありません。スキーマはClaudeのモデルに組み込まれており、変更することはできません。

    1. 1

      コンピューティング環境のセットアップ

      Claudeが操作する仮想ディスプレイを作成するか、既存のディスプレイに接続します。通常、これにはXvfb(X Virtual Framebuffer)または同様の技術のセットアップが含まれます。

    2. 2

      アクションハンドラーの実装

      Claudeがリクエストする可能性のある各アクションタイプを処理する関数を作成します:

      def handle_computer_action(action_type, params):
          if action_type == "screenshot":
              return capture_screenshot()
          elif action_type == "left_click":
              x, y = params["coordinate"]
              return click_at(x, y)
          elif action_type == "type":
              return type_text(params["text"])
          # ... handle other actions
    3. 3

      Claudeのツール呼び出しの処理

      Claudeのレスポンスからツール呼び出しを抽出して実行します:

      for content in response.content:
          if content.type == "tool_use":
              action = content.input["action"]
              result = handle_computer_action(action, content.input)
              
              # Return result to Claude
              tool_result = {
                  "type": "tool_result",
                  "tool_use_id": content.id,
                  "content": result
              }
    4. 4

      エージェントループの実装

      Claudeがタスクを完了するまで継続するループを作成します:

      while True:
          response = client.beta.messages.create(...)
          
          # Check if Claude used any tools
          tool_results = process_tool_calls(response)
          
          if not tool_results:
              # No more tool use, task complete
              break
              
          # Continue conversation with tool results
          messages.append({"role": "user", "content": tool_results})

    エラーの処理

    コンピュータ使用ツールを実装する際、さまざまなエラーが発生する可能性があります。以下はそれらの処理方法です:

    高解像度での座標スケーリングの処理

    APIは画像を最長辺で最大1568ピクセル、合計で約115万ピクセルに制限します(詳細は画像のリサイズを参照)。例えば、1512x982の画面は約1330x864にダウンサンプリングされます。Claudeはこの小さい画像を分析し、そのスペースでの座標を返しますが、ツールは元の画面スペースでクリックを実行します。

    座標変換を処理しないと、Claudeのクリック座標がターゲットを外す可能性があります。

    これを修正するには、スクリーンショットを自分でリサイズし、Claudeの座標をスケールアップします:

    import math
    
    def get_scale_factor(width, height):
        """Calculate scale factor to meet API constraints."""
        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)
    
    # When capturing screenshot
    scale = get_scale_factor(screen_width, screen_height)
    scaled_width = int(screen_width * scale)
    scaled_height = int(screen_height * scale)
    
    # Resize image to scaled dimensions before sending to Claude
    screenshot = capture_and_resize(scaled_width, scaled_height)
    
    # When handling Claude's coordinates, scale them back up
    def execute_click(x, y):
        screen_x = x / scale
        screen_y = y / scale
        perform_click(screen_x, screen_y)

    実装のベストプラクティスに従う


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

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

    1. レイテンシ:現在のコンピュータ使用における人間とAIのインタラクションのレイテンシは、通常の人間が操作するコンピュータアクションと比較して遅すぎる場合があります。信頼できる環境で、速度が重要でないユースケース(例:バックグラウンドでの情報収集、自動ソフトウェアテスト)に焦点を当てることをお勧めします。
    2. コンピュータビジョンの精度と信頼性:Claudeはアクションを生成する際に特定の座標を出力するときに間違いを犯したり、ハルシネーションを起こしたりする可能性があります。Claude Sonnet 3.7はthinking機能を導入しており、モデルの推論を理解し、潜在的な問題を特定するのに役立ちます。
    3. ツール選択の精度と信頼性:Claudeはアクションを生成する際にツールを選択するときに間違いを犯したり、ハルシネーションを起こしたり、問題を解決するために予期しないアクションを取ったりする可能性があります。さらに、ニッチなアプリケーションや複数のアプリケーションを同時に操作する場合、信頼性が低下する可能性があります。複雑なタスクをリクエストする際は、モデルに慎重にプロンプトを与えることをお勧めします。
    4. スクロールの信頼性:Claude Sonnet 3.7は方向制御付きの専用スクロールアクションを導入し、信頼性が向上しました。モデルは指定された量だけ任意の方向(上/下/左/右)に明示的にスクロールできるようになりました。
    5. スプレッドシートの操作:スプレッドシート操作のためのマウスクリックは、Claude Sonnet 3.7でleft_mouse_down、left_mouse_upなどのより精密なマウス制御アクションと新しい修飾キーのサポートの追加により改善されました。これらのきめ細かい制御を使用し、修飾キーとクリックを組み合わせることで、セル選択の信頼性が向上します。
    6. ソーシャルおよびコミュニケーションプラットフォームでのアカウント作成とコンテンツ生成:Claudeはウェブサイトを訪問しますが、ソーシャルメディアのウェブサイトやプラットフォーム全体でアカウントを作成したり、コンテンツを生成・共有したり、その他の人間のなりすましに関与する能力を制限しています。この機能は将来更新される可能性があります。
    7. 脆弱性:ジェイルブレイクやプロンプトインジェクションなどの脆弱性は、ベータ版のコンピュータ使用APIを含む最先端のAIシステム全体で存続する可能性があります。状況によっては、Claudeはコンテンツ内で見つかったコマンドに従い、ユーザーの指示と矛盾する場合でもそうすることがあります。例えば、ウェブページ上のClaudeへの指示や画像に含まれる指示が、指示を上書きしたり、Claudeにミスを引き起こしたりする可能性があります。以下をお勧めします: a. コンピュータ使用を、最小限の権限を持つ仮想マシンやコンテナなどの信頼できる環境に限定する b. 厳格な監視なしに、機密性の高いアカウントやデータへのコンピュータ使用アクセスを与えることを避ける c. エンドユーザーに関連するリスクを通知し、アプリケーションでコンピュータ使用機能を有効にしたり、必要な権限をリクエストしたりする前に同意を得る
    8. 不適切または違法な行為:Anthropicの利用規約に従い、法律や当社の利用規約に違反するためにコンピュータ使用を利用してはなりません。

    Claudeのコンピュータ使用のアクションとログを常に慎重にレビューし、検証してください。完璧な精度が必要なタスクや、人間の監視なしに機密性の高いユーザー情報を扱うタスクにClaudeを使用しないでください。


    料金

    Computer use follows the standard tool use pricing. When using the computer use tool:

    System prompt overhead: The computer use beta adds 466-499 tokens to the system prompt

    Computer use tool token usage:

    ModelInput tokens per tool definition
    Claude 4.x models735 tokens
    Claude Sonnet 3.7 (deprecated)735 tokens

    Additional token consumption:

    • Screenshot images (see Vision pricing)
    • Tool execution results returned to Claude

    If you're also using bash or text editor tools alongside computer use, those tools have their own token costs as documented in their respective pages.

    次のステップ

    リファレンス実装

    完全なDockerベースの実装ですぐに始めましょう

    ツールドキュメント

    ツール使用とカスタムツールの作成について詳しく学ぶ

    Was this page helpful?

    • Claude 4モデルおよびClaude Sonnet 3.7でのthinking機能の有効化