Skip to main content

Command Palette

Search for a command to run...

AI の基礎

ツール呼び出し

コンテキストの仕組みを理解したところで、AIモデルがテキストを生成するだけでなく、ツール呼び出しによって実際にアクションを実行し、動的に情報を取得する仕組みを見ていきましょう。

AIモデルをAPIエンドポイントにたとえたことを覚えていますか?ツール呼び出しとは、そうしたモデル自身がほかのAPIを呼び出せるようにするものです。AIモデルが新しいスキルを身につけられるようになる、と考えることができます。

たとえ話をしましょう。電話で友人の夕食作りを手伝っていると想像してください。知っていることに基づいて指示を出すことはできますが、友人の冷蔵庫の中身を実際に見たり、作っている料理を味見したりはできません。

ここで、友人が冷蔵庫の中身の写真を送ってくれたり、オーブンの正確な温度を教えてくれたりすると想像してください。リアルタイムの情報にアクセスできるため、より的確なアドバイスができるようになります。これが、ツール呼び出しによってAIモデルにできるようになることです。

ツール呼び出しの仕組み

開発者はAIアプリケーションを作る際、AIモデルが使用できる特定の「ツール」を定義できます。これらのツールは、思考してテキストで応答するだけではできないことを可能にする、特別な能力のようなものです。

気づかないうちに、すでにツール呼び出しを使ったことがあるかもしれません。ChatGPTに画像の生成、Web検索、コードの実行を依頼すると、裏側でツールが使われています。

内部では、次のように処理されます。

  1. AIモデルがリクエストを受け取り、追加の機能が必要だと判断します
  2. 使用するツールと渡すパラメータを指定した、JSON形式 (構造化データ形式) の特別なレスポンスを作成します
  3. アプリケーションがそのツールを実行し、結果を返します
  4. AIモデルがその結果をコンテキストに組み込み、会話を続けます

コーディングでツールが重要な理由

ソフトウェア開発では、ツールを使うことでAIモデルは次のことが可能になります。

  • コードベース内のファイルの読み書き
  • 関連する関数やパターンを見つけるためのコード検索
  • コードのテストやパッケージのインストールのためのシェルコマンドの実行
  • 最新情報を得るためのドキュメントへのアクセスやWeb検索
  • linterやテストの実行によるエラーの確認

ツールがなければ、AIモデルはコンテキスト内で明示的に提供された情報しか利用できません。ツールを使えば、コードベースを能動的に探索し、操作できます。

ツール呼び出しの構成要素

すべてのツールは、主に3つの要素で構成されています。

  1. read_filesearch_web などの名前
  2. モデルにツールをいつ、どのように使用するかを伝える説明
  3. ツールの動作に必要な入力であるパラメータ

ツール定義は、次のようになります。

{  "name": "read_file",  "description": "Read the contents of a file from the codebase",  "parameters": {    "filepath": "The path to the file to read"  }}

AIモデルがこのツールを使用する際は、次のようなレスポンスを生成します。

{  "tool": "read_file",  "parameters": {    "filepath": "src/components/Button.tsx"  }}

アプリケーションはその後、そのファイルを読み取り、コンテンツを会話のコンテキストに追加します。これにより、モデルは Button コンポーネントを理解し、関連する変更を提案できるようになります。

ツール定義の主要な要素はどれですか?

Select all that apply

ツールのコスト

トークンと料金について説明したことを覚えていますか?ツール呼び出しでは、次の2つの形でトークンが消費されます。

  1. ツール定義が入力コンテキストに含まれる (通常、ツールごとに数百トークン)
  2. ツールの結果が出力コンテキストに追加される (ツールの返す内容によって異なる)

つまり、ツールを多用する会話ではコンテキストウィンドウが早く埋まり、コストも増えます。ただし、AIがリアルタイム情報にアクセスできるようになるため、通常はこのトレードオフに見合う価値があります。

ツール呼び出しが発生すると、AIモデルはツール呼び出しの時点までのコンテキストを再評価します。Cursorのようなツールでは、コンテキストをモデルに再送信するため、キャッシュされた入力トークンの利用量が増えます。

ツール呼び出しは、どの2つの形でトークンの利用量に影響しますか?

Select all that apply

組み込みツールの先へ

近年、MCP (Model Context Protocol) という新しい標準が作られました。これは、AIモデルがアプリケーションをまたいでツールを使用・統合するための共通の仕組みです。

USBがデバイスをコンピューターに接続するための標準になったように、MCPはツールをAIモデルに接続するための標準を目指しています。これにより、開発者はツールを一度作れば、さまざまなAIアプリで利用できるようになります。

たとえば、MCPを使ってFigmaのデザインファイルに接続したり、Linearでissueを表示・管理したり、データベースに直接クエリを実行してデータを取得したりできます。独自のMCPサーバーを作成し、社内ツールやAPIと統合することもできます。

ツール呼び出しを理解したところで、AIモデルに複数のツールを順番に使用させると何が起こるかを見てみましょう。ここからエージェントの面白さが見えてきます。

この章は完了しました