0Pricing
AI Agents · レッスン

実行時のツール選択

呼び出すツールをモデルに選ばせたり、特定のツールを強制したり、現在の状態に関連するツールだけを公開したりします。

「実行時のツール選択」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。

モデルに選ばせる

デフォルトでは、モデルにツールのリストを渡すと、どれを呼び出すか(または呼び出さないか)をモデルが決めます。これは標準的なモードで、次のような場合に適しています。

  • ツールが5〜15個ある
  • ツールの説明が明確で、それぞれ異なる
  • ユーザーの入力によって適切なツールが変わる

tool_choice: auto

デフォルトでは、モデルが判断します。

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='auto',  # default; can be omitted
)

tool_choice: required

モデルに、いずれかのツールを必ず呼び出させます。

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='required',
)
# Model must return a tool_call, never a free-form answer

特定のツールを強制する

特定のツールを1つ強制するには、その名前を指定します。

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice={'type': 'function', 'function': {'name': 'extract_entities'}},
)

tool_choice: none

1ターンだけツールを無効にします。

# After a tool result, you might want a pure text response:
response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='none',
)

コンテキストでツールリストを絞り込む

モデルは、大規模なツールセットから選ぶと精度が下がります。現在の状態に関連するツールだけを公開してください。

def relevant_tools(state):
    if state == 'authenticated':
        return [search_orders, refund_order, escalate]
    elif state == 'guest':
        return [search_products, contact_support]
    return []

2段階のツール選択

ツールが50個以上ある場合は、階層構造を使用します。

  1. 外側のエージェントがドメイン(注文 / 請求 / 配送)を選びます
  2. 内側のエージェントが、そのドメイン内の具体的なツールを選びます

各呼び出しで参照するツールは約10個だけです。

ツールに対するベクトル検索

各ツールの説明を埋め込みます。実行時にユーザーのクエリも埋め込み、公開するツールとして上位K件を取得します。

from openai import OpenAI
import numpy as np

query_emb = embed(user_query)
sims = [cosine(query_emb, tool.emb) for tool in all_tools]
top = [t for _, t in sorted(zip(sims, all_tools), reverse=True)[:10]]
# Send only these 10 to the model

Anthropicのtool_choice

Anthropicでも同じ概念を使用しますが、形式が異なります。

tool_choice = {'type': 'auto'}
print("auto:", tool_choice)
tool_choice = {'type': 'any'}                              # required
print("any (required):", tool_choice)
tool_choice = {'type': 'tool', 'name': 'get_weather'}      # specific
print("specific tool:", tool_choice)
tool_choice = {'type': 'none'}
print("none:", tool_choice)

特定のツールを強制する理由

次のような場合に役立ちます。

  • 検証 — 特定の構造化フィールドを1つ抽出する
  • ルーティング — ユーザーが「返金」をクリックしたため、refund_orderを呼び出す
  • 構造化出力 — ツール呼び出しを利用してJSONを取得する

空のツールリスト

tools=[]とtool_choice="required"を渡すと、エラーになります。送信前に必ずツールリストを検証してください。

JSON出力を強制する

特定のツール呼び出しを強制するのは、どのような場合でしょうか。

まとめ

ほとんどの場合はautoを使用します。ルーティングや構造化データの抽出では、ツールを強制します。状態ごとにツールリストを絞り、選択の精度を保ってください。

よくある質問

「実行時のツール選択」レッスンは無料ですか?

はい。「実行時のツール選択」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。

「実行時のツール選択」で何を学びますか?

呼び出すツールをモデルに選ばせたり、特定のツールを強制したり、現在の状態に関連するツールだけを公開したりします。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Agentsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「実行時のツール選択」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Agentsレッスンでコードを書いて実行できますか?

はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Function Callingの仕組み
  2. ツールスキーマの定義(JSON Schema)
  3. 実行時のツール選択
  4. モデルへの結果の返却
← AI Agentsに戻る