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
    ツール

    Bashツール

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

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

    概要

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

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

    モデル互換性

    モデルツールバージョン
    Claude 4モデルおよびSonnet 3.7(非推奨)bash_20250124

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

    ユースケース

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

    クイックスタート

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

    仕組み

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

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

    パラメータ

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

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

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

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

    # ユーザーリクエスト
    "requestsライブラリをインストールし、APIからジョークを取得するシンプルなPythonスクリプトを作成して、実行してください。"
    
    # 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のモデルに組み込まれており、変更できません。

    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

    エラーの処理

    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でのツール使用について学ぶ

    テキストエディタツール

    Claudeでテキストファイルを表示・編集する

    Was this page helpful?

    • Bashツールの実装