Claude API & Claude Code 活用
0 / 6 完了 (0%
← Claude API & Claude Code 活用
LESSON 03 / 06

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

所要時間 15分 更新: 2026年4月29日 上級レベル

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 CodeCLI)をローカル開発に統合する方法を学びます。

やってみよう(演習)

  1. シンプルな天気API連携を実装
  2. stop_reason=’tool_use’ のハンドリングを書く
  3. エラー結果も tool_result で返す処理を追加

到達度チェックリスト

  • Tool Use の仕組みを図示できる
  • tools パラメータのスキーマが書ける
  • ツール失敗時のエラー処理を実装できる

よくある失敗パターン

  • ツール定義の description が雑で、いつ呼ぶべきか Claude が判断できない
  • input_schema の必須項目が漏れて、不正な引数で実行する
  • ツール失敗時のエラーを返さず、Claude が無限にリトライしようとする

よくある質問(Q&A)

Q. ツールが10個以上あると精度は落ちますか?

A. 経験則的に 5〜10 個までが最適。多すぎると Claude が「どのツールを使うべきか」の判断精度が落ちます。

Q. 並列でツール呼び出しできますか?

A. Claude の最新版では parallel tool use がサポートされています。複数のツールを1ターンで同時に呼び出せます。

Q. ツール内で別の Claude 呼び出しをしても良いですか?

A. 技術的には可能ですが、無限ループ防止と認証伝搬の設計が複雑になります。設計時は注意を。

よくある質問

この記事に関連する質問と答えをまとめました。

Q.Tool Use(Function Calling)とは何ですか?
A.
Claude が外部の関数(API・DB・電卓など)を呼び出して結果を統合する機能です。「天気を調べて」「データベースから検索して」など、AI 単体ではできない処理を実現できます。
Q.何個までツールを定義できますか?
A.
理論上は数百個可能ですが、実用的には10〜20個程度が上限です。それ以上になると Claude のツール選択精度が落ちるため、カテゴリ分類やシステムプロンプトでガイダンスを与える必要があります。

理解度チェック(クイズ)

このレッスンの理解度を確認してみましょう。全問終わると最高記録が保存されます。

読み込み中…