← Claude API & Claude Code 活用
LESSON 03 / 06

Tool Use で外部システムと連携

所要時間 15分 上級レベル

Tool Use(ツール使用)は、Claude に外部のAPIや関数を呼ばせる機能。これによりClaudeは「文章生成」を超えて「行動するエージェント」になります。

仕組み

  1. 使えるツールのスキーマを定義してClaudeに渡す
  2. ユーザーの質問に対し、Claude がツールを使うべきか判断
  3. 使うなら、tool_useブロックでツール名と引数を返す
  4. こちら側で実際にツールを実行し、結果を tool_result としてClaudeに返す
  5. Claudeが結果を踏まえて最終回答を生成

シンプルな実装例

tools = [
    {
        "name": "get_weather",
        "description": "指定都市の現在の天気を取得します。",
        "input_schema": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "都市名(例: 東京)"}
            },
            "required": ["city"]
        }
    }
]

response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user", "content": "今日の東京の天気は?"}]
)

# response.stop_reason が "tool_use" なら、ツール呼び出しが要求された
for block in response.content:
    if block.type == "tool_use":
        # 実際の天気APIを呼ぶ
        result = call_weather_api(block.input["city"])
        # 結果を返してClaudeに最終応答を作らせる
        ...

ツール設計のベストプラクティス

  • description は丁寧に:いつ使うべきツールかを明確に
  • input_schema は厳密に:型・必須項目・例を入れる
  • 少数精鋭:使えるツールは10個以下に絞る(多すぎると判断精度が落ちる)
  • エラー結果も返す:失敗時の情報があるとClaudeが対処できる

典型的なユースケース

  • 社内DBへの検索(顧客情報・在庫・売上)
  • 外部API呼び出し(天気・地図・株価)
  • 計算・コード実行(Pythonサンドボックス)
  • メール送信・カレンダー予約などのアクション系

このレッスンのまとめ

Tool Use を使えば、Claude は対話エージェントから業務エージェントに進化します。次のレッスンでは Claude Code(CLI)をローカル開発に統合する方法を学びます。