0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ClaudeのTool Useとは?AIが「答える」から「調べて実行する」ようになった仕組み

0
Posted at

最近のClaudeなどの生成AIを使っていると、以前のように質問に文章で答えるだけではなく、

  • Webを検索する
  • WebページやPDFを読む
  • コードを実行する
  • ファイルを操作する
  • PCやブラウザを操作する
  • 必要なツールを探す

といったことまで行うようになっている。

なぜLLMがここまで多くのことをできるようになったのか。

その重要な仕組みの一つが Tool Use(ツール利用) である。

Anthropicの公式ドキュメントでは、Tool Useを「Function Calling」とも呼び、Claudeが開発者の定義した関数やAnthropicが提供するツールを呼び出す仕組みとして説明している。

この記事では、ClaudeのTool Useを中心に、

LLM → Tool Use → MCP → Agent

という流れを整理する。


1. そもそもTool Useとは

従来のLLMは、基本的には入力された文章に対して文章を生成するシステムだった。

User
↓
LLM
↓
Text Response

例えば、

JavaのArrayListについて教えて

と質問すれば、LLM内部にある知識を利用して回答する。

しかし、

今日のニュースを調べて

となると話が変わる。

最新ニュースは、モデルが学習した時点では存在していない可能性がある。

そこで登場するのがTool Useである。

User
↓
Claude
↓
Toolが必要か判断
↓
Web Search
↓
検索結果
↓
Claude
↓
回答

つまりTool Useとは、

LLMが外部の機能を必要に応じて呼び出せる仕組み

と考えると分かりやすい。


2. Claude自身が「ツールを使うべきか」を判断する

Tool Useの重要なところは、単に外部APIを呼び出せることだけではない。

Claudeはユーザーの要求とツールの説明を見て、

ツールを使う
or
そのまま回答する

を判断できる。

デフォルトの

tool_choice = auto

では、この判断を各ターンでClaude自身が行う。

例えば、

「サンフランシスコの現在の天気は?」

という質問が来たとする。

Claudeに次のツールが渡されているとする。

get_weather

指定された場所の現在の天気を取得する

するとClaudeは、

現在の天気が必要
↓
自分の知識だけでは最新情報を保証できない
↓
get_weatherが使える
↓
get_weatherを呼び出す

という判断ができる。

逆に、

「雨が降る仕組みを説明して」

のような安定した一般知識であれば、ツールを使わず直接回答できる。

つまり現在のLLMでは、

「何を答えるか」だけでなく「答えるために何を使うか」もモデルが判断する

ようになっている。


3. Tool Useの基本的な流れ

Client Toolの場合、Tool Useは次のような流れになる。

User
↓
Claude
↓
tool_use
↓
Application
↓
Tool Execution
↓
tool_result
↓
Claude
↓
Final Answer

例えば天気取得ツールなら、

User
「東京の天気は?」

Claudeが、

get_weather(location="Tokyo")

というTool Callを生成する。

アプリケーション側が実際に天気情報を取得し、

tool_result
「25℃、晴れ」

をClaudeへ返す。

Claudeはその結果を読んで、

「東京は現在25℃で晴れています」

という最終回答を生成する。

重要なのは、

Claude自身が天気情報を取得しているわけではない

ということ。

Claudeは、

どのToolを使うか
↓
どんな引数を渡すか
↓
返ってきた結果をどう解釈するか

を担当している。


4. Client ToolsとServer Tools

ClaudeのTool Useでは、ツールを主に

Client Tools
Server Tools

に分けて考えられる。

違いは、

「ツールのコードをどこで実行するか」

である。


Client Tools

Client Toolでは、ClaudeがTool Callを生成し、実際の処理は自分のアプリケーション側で行う。

Claude
↓
tool_use
↓
Your Application
↓
Tool Execution
↓
tool_result
↓
Claude

例えば、

社内DB検索
Git操作
社内API
在庫検索
顧客情報検索

などを独自ツールとしてClaudeに渡すことができる。

開発者は、

Tool Name
Description
Input Schema

などを定義する。

Claudeはその説明を読んで、

この質問にはこのToolが使えそう

と判断する。


5. AnthropicがSchemaを定義しているClient Tools

Client Toolの中には、AnthropicがSchemaを用意しているものもある。

代表例として、

Memory
Bash
Text Editor
Computer Use
Browser Use

などがある。

実際の実行はアプリケーション側で行われるが、Claudeが扱いやすい形をAnthropicが定義している。


6. Memory Tool

Memory Toolは、会話をまたいで情報を保存・取得するための仕組みである。

例えば、

以前の作業内容
ユーザー設定
プロジェクト情報

などをファイルとして保持し、後からClaudeが取得できる。

LLMのContext Windowだけにすべてを入れておくのではなく、

必要な情報
↓
Memoryから取得
↓
Contextへ入れる

という構成にできる。


7. Bash Tool

Bash Toolでは、ClaudeがShell Commandを実行できる。

例えば、

ls
grep
find
git status

などを実行できる。

さらにPersistent Sessionを利用できるため、前のCommandによって変化した状態を維持しながら作業できる。

これによりClaudeは、

ファイル確認
↓
Command実行
↓
結果確認
↓
別のCommand実行

という連続した作業を行える。

8. Text Editor Tool

Text Editor Toolでは、Claudeがテキストファイルを確認・編集できる。

例えば、

コードを読む
↓
問題箇所を探す
↓
コードを書き換える
↓
再確認する

といった作業が可能になる。

Coding Agentがコードベースを調査して修正できる背景には、このようなTool Useの仕組みがある。


9. Computer Use

Computer Useは、ClaudeがDesktop Environmentを操作するためのToolである。

具体的には、

Screenshotを見る
Mouseを操作する
Keyboardを操作する

ことができる。

従来の自動化では、

API
DOM
固定座標
Script

などを使って操作することが多かった。

Computer Useでは、

画面を見る
↓
状況を理解する
↓
次の操作を判断する
↓
Mouse / Keyboardを操作する
↓
新しい画面を見る

というループをLLMが回せる。

そのため、人間がGUIを使って行っていた作業にもLLMを利用できるようになる。


10. Browser Use

Browser Useは、自分のBrowser Environment内でClaudeがWebページを、

Navigate
Read
Interact

できる仕組みである。

例えば、

ページを開く
↓
内容を読む
↓
リンクを選ぶ
↓
次のページへ移動
↓
必要な情報を取得

といった一連のWeb操作を行える。

Computer Useと組み合わせることで、AIがWebサービスを操作するエージェントを構築しやすくなる。


11. Server Tools

Server Toolは、Anthropic側のInfrastructureで実行されるToolである。

代表的なものには、

Web Search
Web Fetch
Code Execution
Advisor
Tool Search

などがある。

Client Toolとは違い、基本的には開発者側でTool実行処理を書く必要がない。

Claude
↓
Server Tool
↓
Anthropic Infrastructure
↓
Result
↓
Claude

という形になる。


12. Web Search

Web Search Toolは、ClaudeがWeb検索を行うためのToolである。

これによって、LLMのKnowledge Cutoffより後の情報も検索できる。

LLMの学習済み知識
+
Web Searchによる最新情報

を組み合わせられる。

例えば、

「最新のJavaの変更点を調べて」

という質問なら、

Claude
↓
最新情報が必要
↓
Web Search
↓
検索結果取得
↓
情報を整理
↓
回答

という動きができる。

これは最近のAIが「自分で資料を探してくれる」と感じる大きな理由の一つである。


13. Web Fetch

Web Fetchは、指定されたWebページやPDFの内容を取得するToolである。

Web Searchとの違いは、

Web Search
→ どの情報源を見るか探す

Web Fetch
→ 見つけたページの内容を取得する

と考えると分かりやすい。

例えば、

Web Search
↓
公式Documentation発見
↓
Web Fetch
↓
Documentationを読む
↓
Claudeが内容を整理

という調査が可能になる。


14. Code Execution

Code Executionでは、Anthropic側のSandbox ContainerでPythonやBashを実行できる。

例えばCSVを渡した場合、

CSV
↓
Claude
↓
Pythonを書く
↓
Code Execution
↓
集計結果
↓
Claude
↓
分析レポート

という処理ができる。

つまりLLMが、

コードを生成する

だけではなく、

コードを書く
↓
実行する
↓
結果を見る
↓
必要なら修正する

ところまで行える。


15. Advisor Tool

Advisor Toolでは、より高速なExecutor Modelが処理を進めている途中で、より高い知能を持つAdvisor Modelへ相談できる。

イメージとしては、

Fast Model
↓
難しい判断
↓
Advisor Model
↓
助言
↓
Fast Model
↓
作業継続

という構造になる。

すべての処理を最も重いモデルで実行するのではなく、必要な部分だけ高性能なモデルへ相談する設計ができる。


16. Tool Search

Tool Searchは、大量のToolの中から必要なToolを探して読み込むための仕組みである。

例えばAIに数千個のToolが存在するとする。

それらをすべて最初からContextへ入れると、

大量のTool Definition
↓
Context消費
↓
Tool選択も複雑になる

という問題が起こる。

そこで、

User Request
↓
Claude
↓
必要なToolを検索
↓
Tool Search
↓
関連ToolをLoad
↓
Tool実行

という形にする。

つまりAI自身が、

「どのToolを使うか」だけでなく「使えるToolを探す」

ことまでできるようになる。


17. MCP Connector

Tool Useと一緒に重要になっているのが、

MCP(Model Context Protocol)

である。

MCPは、LLMと外部システムを接続するためのProtocolである。

例えば、

Claude
│
├─ GitHub
├─ Database
├─ Google Drive
├─ Slack
└─ Internal System

のような接続を、それぞれ完全に独自実装するのではなく、共通のProtocolで扱いやすくする。

AnthropicはMessages APIからRemote MCP Serverへ接続できるMCP Connectorを提供している。

そのため、

Claude API
↓
MCP Connector
↓
Remote MCP Server
↓
External Service

という構成が可能になる。


18. Tool UseとMCPの違い

この2つは混同しやすい。

Tool Useは、

LLMがToolを選択・呼び出す仕組み

である。

MCPは、

LLMと外部のToolやData Sourceを接続するための共通Protocol

である。

つまり、

Tool Use
「どのToolを使おう?」

MCP
「そのToolとどう接続する?」

くらいに考えると理解しやすい。


19. Toolを必ず使わせることもできる

通常は、

tool_choice = auto

なのでClaude自身が判断する。

しかし、開発者側からTool利用を強制することもできる。

またSystem Promptによって、

Use the tools to investigate before responding.

のように指示すれば、Toolを積極的に利用する方向へ誘導できる。

逆に、

Use your judgment about whether to call a tool or respond directly.

のような指示なら、必要な場合だけToolを使う方向になる。

つまりTool Useの頻度も、Agent設計の一部になる。


20. Toolの引数もLLMが生成する

Toolを使う場合、ClaudeはTool Nameだけでなく引数も生成する。

例えば、

get_weather

というToolに、

location

が必要なら、

get_weather(
    location="San Francisco, CA"
)

のようなStructured Callを生成する。

ただし必要な情報がユーザーの質問に存在しない場合、問題が起きる。

例えば、

「今日の天気は?」

だけでは場所が分からない。

この場合、モデルによっては、

「どこの天気ですか?」

と確認する場合もあれば、合理的と思われる値を推測してしまう場合もある。

そのためAgentを設計するときには、

Required Parameterが不足している場合にどうするか

も重要になる。


21. Strict Tool Use

Custom Toolには、

strict: true

を設定できる。

これによってTool Callが定義したSchemaに適合することを保証しやすくなる。

例えば、

location: string
date: string

というSchemaを定義した場合、それに従ったStructured Dataを生成させる。

外部APIとの連携では、

LLMが自由な文章を生成

するより、

決められたSchema

で出力させることが重要になる。


22. Parallel Tool Use

Claudeは複数のToolを並列で呼び出すこともできる。

例えば、

東京の天気
大阪の天気
福岡の天気

を調べる場合、

Tokyo ─┐
Osaka ─┼→ Tool Calls → Claude
Fukuoka┘

のように複数のTool Callを同時に処理できる。

独立した処理を並列化することで、Agentの処理時間を短縮できる。


23. Tool Runner

Client Toolの場合、本来は開発者が、

tool_useを受け取る
↓
Toolを実行
↓
tool_resultを返す
↓
再びClaudeを呼ぶ

という処理を書く必要がある。

Anthropic SDKのTool Runnerを使えば、このTool Use Loopを自動化できる。

つまりAgentを実装するときの定型処理を減らせる。


24. Tool UseにもToken Costがある

Tool Useは無料で無制限に使えるわけではない。

Anthropic公式では、主に、

Input Tokens
Output Tokens
Server Tool Usage

によって料金が決まる。

さらにTool Definition自体もContextへ入る。

例えば、

Tool Name
Tool Description
Input Schema
tool_use
tool_result

などもTokenを消費する。

大量のToolを最初から渡すとContextを消費するため、Tool Searchのような仕組みが重要になる理由の一つでもある。

またWeb Searchなど一部のServer Toolには、Tokenとは別のUsage-based Pricingが設定される場合がある。


25. なぜ最近のAIは「調査」できるようになったのか

ここまでを見ると、最近のAIが大きく変化して見える理由が分かる。

以前は、

User
↓
LLM
↓
Answer

だった。

現在は、

User
↓
LLM
↓
Plan / Reason
↓
Tool Selection
↓
Tool Execution
↓
Observation
↓
Reason
↓
Next Tool
↓
...
↓
Answer

という処理が可能になっている。

例えば、

「この技術について調べて資料にまとめて」

という指示に対して、

質問を理解
↓
Web Search
↓
公式Documentation発見
↓
Web Fetch
↓
内容を読む
↓
別の資料が必要と判断
↓
再検索
↓
必要ならCode Execution
↓
情報を比較
↓
文章にまとめる

という一連の作業ができる。


26. LLMが賢くなっただけではない

ここはかなり重要である。

最近Claudeなどを使って、

「昔より勝手に調査してくれるようになった」

と感じる場合、その理由を単純に、

LLMの性能が上がったから

だけで説明するのは不十分である。

実際には、

LLMの推論能力向上
+
Tool Use
+
Web Search / Fetch
+
Code Execution
+
Computer / Browser Use
+
MCP
+
Agent Loop

という複数の技術が組み合わさっている。

LLMがすべてを記憶しているのではなく、

「分からなければ外部へ取りに行く」

ことができるようになった。


27. Tool UseからAgentへ

ここまでを整理すると、

LLM
│
│ 推論する
│
├── Tool Use
│ │
│ ├── Web Search
│ ├── Web Fetch
│ ├── Code Execution
│ ├── Bash
│ ├── Text Editor
│ ├── Computer Use
│ └── Browser Use
│
├── Tool Search
│ └── 必要なToolを探す
│
└── MCP
     └── 外部サービスと接続

という構造が見えてくる。

さらに、

Reason
↓
Act
↓
Observe
↓
Reason
↓
Act
↓
Observe

というループを繰り返せるようになる。

これが現在の AI Agent を理解するうえで重要な考え方になる。


28. まとめ

Tool Useとは、

Claudeが外部の機能やAPIを必要に応じて呼び出すための仕組み

である。

Claudeはユーザーの要求とTool Descriptionから、どのToolを使うべきか判断できる。

さらに現在では、

Web Search
Web Fetch
Code Execution
Memory
Bash
Text Editor
Computer Use
Browser Use
Tool Search
MCP

などを組み合わせることで、LLMが単純に回答するだけではなく、

調べる
↓
読む
↓
考える
↓
実行する
↓
結果を見る
↓
修正する
↓
再実行する

という作業まで行えるようになっている。

そのため、最近のAIの進化を見るときには、

昔のAI
LLM → Answer

現在のAI
LLM → Tool → Environment → Result → LLM → Tool →... → Answer

という違いを意識すると理解しやすい。

つまり、

「LLMがすべてを知る」方向だけではなく、「LLMが必要な情報や機能を自分で取りに行く」方向へ進化している。

この変化が、ClaudeなどのAIが「質問に答えるチャット」から「自分で調査・実行するAgent」に近づいている理由の一つである。

参考資料

Anthropic, Tool use with Claude, Claude Platform Docs
https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?