Loading...
    • 開発者ガイド
    • APIリファレンス
    • MCP
    • リソース
    • リリースノート
    Search...
    ⌘K
    最初のステップ
    Claudeの紹介クイックスタート
    モデルと価格
    モデル概要モデルの選択Claude 4.5の新機能Claude 4.5への移行モデルの廃止予定価格
    Claudeで構築
    機能概要Messages APIの使用コンテキストウィンドウプロンプトのベストプラクティス
    機能
    プロンプトキャッシングコンテキスト編集拡張思考エフォートストリーミングメッセージバッチ処理引用多言語対応トークンカウント埋め込みビジョンPDF対応Files API検索結果構造化出力
    ツール
    概要ツール使用の実装方法細粒度ツールストリーミングBashツールコード実行ツールプログラマティックツール呼び出しコンピュータ使用ツールテキストエディタツールWebフェッチツールWeb検索ツールメモリツールツール検索ツール
    エージェントスキル
    概要クイックスタートベストプラクティスAPIでスキルを使用
    Agent SDK
    概要クイックスタートTypeScript SDKTypeScript V2(プレビュー)Python SDK移行ガイド
    APIのMCP
    MCPコネクタリモートMCPサーバー
    サードパーティプラットフォームのClaude
    Amazon BedrockMicrosoft FoundryVertex AI
    プロンプトエンジニアリング
    概要プロンプトジェネレータプロンプトテンプレートの使用プロンプト改善ツール明確で直接的に例を使用(マルチショットプロンプティング)Claudeに考えさせる(CoT)XMLタグを使用Claudeに役割を与える(システムプロンプト)Claudeの応答を事前入力複雑なプロンプトをチェーン長いコンテキストのヒント拡張思考のヒント
    テストと評価
    成功基準の定義テストケースの開発評価ツールの使用レイテンシの削減
    ガードレールの強化
    ハルシネーションの削減出力の一貫性を向上ジェイルブレイクの軽減ストリーミング拒否プロンプトリークの削減Claudeをキャラクターのままに
    管理とモニタリング
    Admin API概要使用状況とコスト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
    ツール

    Bashツール

    Claudeがシェルコマンドを永続的なbashセッションで実行できるようにするBashツール
    • Bashツールを実装する

    Bashツールは、Claudeが永続的なbashセッションでシェルコマンドを実行できるようにし、システム操作、スクリプト実行、コマンドライン自動化を可能にします。

    概要

    Bashツールは、Claudeに以下を提供します:

    • 状態を保持する永続的なbashセッション
    • あらゆるシェルコマンドを実行する機能
    • 環境変数と作業ディレクトリへのアクセス
    • コマンドチェーンとスクリプト機能

    モデルの互換性

    モデルツールバージョン
    Claude 4モデルとSonnet 3.7 (廃止予定)bash_20250124

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

    ユースケース

    • 開発ワークフロー: ビルドコマンド、テスト、開発ツールを実行
    • システム自動化: スクリプト実行、ファイル管理、タスク自動化
    • データ処理: ファイル処理、分析スクリプト実行、データセット管理
    • 環境セットアップ: パッケージインストール、環境設定

    クイックスタート

    動作方法

    Bashツールは永続的なセッションを保持します:

    1. Claudeが実行するコマンドを決定します
    2. bashシェルでコマンドを実行します
    3. 出力(標準出力と標準エラー)をClaudeに返します
    4. セッション状態はコマンド間で保持されます(環境変数、作業ディレクトリ)

    パラメータ

    パラメータ必須説明
    commandはい*実行するbashコマンド
    restartいいえtrueに設定してbashセッションを再開します

    *restartを使用する場合を除き必須

    例:マルチステップ自動化

    Claudeはコマンドをチェーンして複雑なタスクを完了できます:

    # ユーザーリクエスト
    "Install the requests library and create a simple Python script that fetches a joke from an API, then run it."
    
    # Claudeのツール使用:
    # 1. パッケージをインストール
    {"command": "pip install requests"}
    
    # 2. スクリプトを作成
    {"command": "cat > fetch_joke.py << 'EOF'\nimport requests\nresponse = requests.get('https://official-joke-api.appspot.com/random_joke')\njoke = response.json()\nprint(f\"Setup: {joke['setup']}\")\nprint(f\"Punchline: {joke['punchline']}\")\nEOF"}
    
    # 3. スクリプトを実行
    {"command": "python fetch_joke.py"}

    セッションはコマンド間で状態を保持するため、ステップ2で作成されたファイルはステップ3で利用可能です。


    Bashツールを実装する

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

    エラーを処理する

    Bashツールを実装する場合、様々なエラーシナリオに対応します:

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

    セキュリティ

    Bashツールは直接的なシステムアクセスを提供します。これらの重要な安全対策を実装してください:

    • 隔離された環境(Docker/VM)での実行
    • コマンドフィルタリングとホワイトリストの実装
    • リソース制限の設定(CPU、メモリ、ディスク)
    • 実行されたすべてのコマンドのログ記録

    主な推奨事項

    • ulimitを使用してリソース制約を設定
    • 危険なコマンド(sudo、rm -rfなど)をフィルタリング
    • 最小限のユーザー権限で実行
    • すべてのコマンド実行を監視およびログに記録

    価格

    The bash tool adds 245 input tokens to your API calls.

    Additional tokens are consumed by:

    • Command outputs (stdout/stderr)
    • Error messages
    • Large file contents

    完全な価格詳細については、ツール使用価格を参照してください。

    一般的なパターン

    開発ワークフロー

    • テストの実行:pytest && coverage report
    • プロジェクトのビルド:npm install && npm run build
    • Git操作:git status && git add . && git commit -m "message"

    ファイル操作

    • データ処理:wc -l *.csv && ls -lh *.csv
    • ファイル検索:find . -name "*.py" | xargs grep "pattern"
    • バックアップ作成:tar -czf backup.tar.gz ./data

    システムタスク

    • リソース確認:df -h && free -m
    • プロセス管理:ps aux | grep python
    • 環境セットアップ:export PATH=$PATH:/new/path && echo $PATH

    制限事項

    • 対話型コマンドなし:vim、less、またはパスワードプロンプトを処理できません
    • GUIアプリケーションなし:コマンドラインのみ
    • セッションスコープ:会話内で永続化され、APIコール間で失われます
    • 出力制限:大きな出力は切り詰められる可能性があります
    • ストリーミングなし:完了後に結果が返されます

    他のツールとの組み合わせ

    Bashツールは、テキストエディタおよび他のツールと組み合わせると最も強力です。

    次のステップ

    ツール使用の概要

    Claudeでのツール使用について学ぶ

    import anthropic
    
    client = anthropic.Anthropic()
    
    response = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=1024,
        tools=[
            {
                "type": "bash_20250124",
                "name": "bash"
            }
        ],
        messages=[
            {"role": "user", "content": "List all Python files in the current directory."}
        ]
    )
    1. 1

      bash環境をセットアップ

      Claudeが対話できる永続的なbashセッションを作成します:

      import subprocess
      import threading
      import queue
      
      class BashSession:
          def __init__(self):
              self.process = subprocess.Popen(
                  ['/bin/bash'],
                  stdin=subprocess.PIPE,
                  stdout=subprocess.PIPE,
                  stderr=subprocess.PIPE,
                  text=True,
                  bufsize=0
              )
              self.output_queue = queue.Queue()
              self.error_queue = queue.Queue()
              self._start_readers()
    2. 2

      コマンド実行を処理

      コマンドを実行して出力をキャプチャする関数を作成します:

      def execute_command(self, command):
          # bashにコマンドを送信
          self.process.stdin.write(command + '\n')
          self.process.stdin.flush()
          
          # タイムアウト付きで出力をキャプチャ
          output = self._read_output(timeout=10)
          return output
    3. 3

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

      Claudeの応答からコマンドを抽出して実行します:

      for content in response.content:
          if content.type == "tool_use" and content.name == "bash":
              if content.input.get("restart"):
                  bash_session.restart()
                  result = "Bash session restarted"
              else:
                  command = content.input.get("command")
                  result = bash_session.execute_command(command)
              
              # 結果をClaudeに返す
              tool_result = {
                  "type": "tool_result",
                  "tool_use_id": content.id,
                  "content": result
              }
    4. 4

      安全対策を実装

      検証と制限を追加します:

      def validate_command(command):
          # 危険なコマンドをブロック
          dangerous_patterns = ['rm -rf /', 'format', ':(){:|:&};:']
          for pattern in dangerous_patterns:
              if pattern in command:
                  return False, f"Command contains dangerous pattern: {pattern}"
          
          # 必要に応じてさらに検証を追加
          return True, None

    テキストエディタツール

    Claudeでテキストファイルを表示および編集