ツール呼び出し
ツール呼び出し(関数呼び出し)とは、言語モデルがあなたのプログラムに関数の実行を頼み、その結果を回答に使えるようにする機能のことです。モデル自身は何も実行せず、ツールの名前と引数を返し、実際の作業はあなたのコードが行います。
2026年11月8日 更新
このページの内容
読めるのは、あなたのデバイスだけ。
会話を読めるのは、あなたのデバイスと、同期していればほかのデバイスだけ。それ以外のどこでも読めません。
私たちには読めない。
メッセージは記録されずに通過します。チャットが保存されるときは、必ず暗号化されています。
モデルはあなたを知らない。
届くのは質問だけ。メール、アカウント、IP アドレスは渡しません。
途中に何も残らない。
回答は戻ってきて、暗号化されてここに保存されます。同期していても、あなたの鍵が平文で私たちに届くことはありません。
しくみ
まず、提供するツールを記述します。各ツールには、名前、短い説明、パラメータを列挙する JSON スキーマがあります。たとえば、都市を受け取る get_weather という関数です。このリストを会話とともに送ります。モデルがツールが役立つと判断すると、返信は最終的な文章ではなく、ツール呼び出しを含みます。ツール名と、JSON で書かれた引数です。あなたのプログラムは関数を実行し、結果と呼び出しの識別子を載せたメッセージを加えて、すべてを送り返します。モデルは、その結果から最終的な回答を書きます。注文を伝票に書くだけで、厨房には入らないウェイターのようなものです。典型的な例は、注文状況の照会、通貨の換算、ナレッジベースの検索、カレンダーの予定の作成です。
ほとんどの API では、振る舞いを制御できます。選択をモデルに任せる、ツールを禁止する、何らかのツールの呼び出しを必須にする、正確な一つを指定する、といった設定です。同じ返信の中に複数の呼び出しが入ることもあり、互いに依存しなければ往復の手間が省けます。ストリーム形式の返信では、引数が同じインデックスのもとで断片として届きます。同じ仕組みがエージェントを支えており、エージェントは呼び出し、結果、判断のサイクルを繰り返します。また、文章から構造化されたデータを取り出す確かな方法でもあります。出力をスキーマに完全に一致させる厳格なモードを持つ提供元もあり、形の崩れた呼び出しの多くをなくします。
注意が必要です。モデルは、間違ったツールを選んだり、引数をでっち上げたり、有効でも有害な値で関数を呼び出したりすることがあります。そのため、引数はこちら側で検証し、作業に必要な以上に強力なものは決して実行しないでください。すべてのモデルがこの機能に対応しているわけではなく、対応していても、スキーマにどれだけ確実に従うかは違います。実際の事例で試し、ツールの説明は短く正確に保ち、ツールには、何をするかがわかる名前を付けましょう。ツールのリストは短く保ってください。長いメニューはモデルを混乱させ、コンテキストウィンドウを圧迫します。典型的な失敗は、都市名の綴り間違い、必須項目の欠落、文字列で送られた数字、形式の違う日付、存在しないツールです。
NeverNo では
NeverNo の API は、チャット補完でこれに対応しています。tools として、JSON スキーマ付きの関数のリストを渡し、任意で tool_choice(auto、none、required、または名前を指定した一つの関数)と parallel_tool_calls を指定します。モデルがツールを呼び出すと、返信に tool_calls が入り、finish_reason は tool_calls になります。あなたが関数を実行し、結果とその tool_call_id を載せた tool メッセージを送り返します。ストリームでは、各呼び出しは OpenAI が書くのと同じ形で届きます。
/models の一覧で capabilities.tools が true のモデルだけがツールを受け付けます。それ以外のモデルは、tools_not_supported という名前の明確な400エラーを返します。Z.ai のプライベートモデルで、有料プランに含まれる GLM 5.2は、コンテキストウィンドウが200,000トークンで、推論モードを任意で使えます。モデルを土台にして作る前に、一覧を確認してください。ChatGPT の代替のページでは、モデルの多様さのために NeverNo を選ぶ人がいる理由を説明しています。
覚えておきたいこと
モデルがツールを名前と引数で求め、あなたのプログラムがそれを実行して結果を返します。
各ツールは、名前、短い説明、パラメータの JSON スキーマで記述されます。
tool_choice の設定で、判断をモデルに任せる、ツールを禁止する、一つを強制する、を選べます。
すべての引数は自分で検証してください。形の整った呼び出しが、安全とは限りません。
この機能を宣言しているモデルだけがツールを受け付け、ほかはエラーを返します。
よくある質問
モデルが関数を実行するのですか?
いいえ。関数名と引数を指定する構造化されたリクエストを作るだけです。関数を実行するのはあなたのコードなので、実際に起こりうることを制御できます。この分離のおかげで、何かが実行される前に、記録、レート制限、確認の手順を加えることもできます。
ツール呼び出しと関数呼び出しは同じものですか?
実際には同じです。関数呼び出しは OpenAI が最初に使った名前で、ツール呼び出しはより広い用語です。ツールは関数だけでなく、検索や別のサービスでもありうるからです。
モデルが対応しているかどうか、どうすればわかりますか?
モデル一覧の capabilities を読みます。NeverNo では、GET /models が各モデルの capabilities.tools を示し、対応しないモデルは、ツールを黙って無視するのではなく、400エラーで答えます。些細なツールで小さなリクエストを一つ試すのが、モデルが期待どおりに動くかを確かめる最短の方法です。
最初の質問をしてみましょう
アカウントもカードも不要。NeverNo が対応する10言語のどれでも書けます。
チャットを開く