AIエージェントのツール呼び出し設計チェックリスト15項目と失敗例

この記事の結論

  • ツール呼び出し(function calling)の設計は、ツール定義・権限と確認ゲート・失敗時の返し方・観測の4つに分けると抜けが見つけやすくなります。
  • AIの精度より先に効くのは「1つのツールで1つのことだけをさせる」「取り返しのつかない操作には人の確認を挟む」の2点です。
  • 外部データを読むツールを持たせた時点で、外部データに指示が仕込まれる前提の設計が要ります。最終更新 2026-09-10。

AIエージェントが実際の作業をこなせるかどうかは、モデルの賢さより「どんなツールを、どんな形で渡したか」で決まります。この記事は、ツール呼び出し(function calling)を設計するときのチェックリストです。15項目を表にまとめ、満たさないと何が起きるかまで書きました。

最終更新: 2026-09-10・読了目安 約8分

01

ツール呼び出しの設計とは何を決めることか

関数呼び出し(ツール使用)とは、AIが自分では実行できない処理を、あらかじめ用意された関数に任せて結果を受け取る仕組みです。AIエージェントはこの仕組みを土台に、目標達成のためどのツールをどの順で使うかを自分で判断します。

設計者が決めるのは、AIの判断そのものではなく、判断できる選択肢の形です。具体的には次の4つに分かれます。

  • ツール定義:名前・説明文・引数の型・返り値。AIが読むのはこの文面だけ。
  • 権限と確認ゲート:そのツールで何ができ、何には人の承認が要るか。
  • 失敗時の返し方:エラーをどう伝えると、AIが正しくやり直せるか。
  • 観測:何が呼ばれ、何が起きたかを後から追えるか。
02

設計チェックリスト15項目

上から順に確認できるよう、分類・確認すること・満たさないと起きることの3列で並べました。

ツール呼び出し設計チェックリスト(15項目)
#分類確認すること満たさないと起きること
1ツール定義1つのツールが1つのことだけをする(複数の操作を引数で分岐させていない)AIがどの分岐を使うか迷い、誤った引数で呼ぶ
2ツール定義名前が動詞+対象になっている(例:search_orders)似た名前のツールが混同され、呼び分けが不安定になる
3ツール定義説明文に「いつ使うか」と「いつ使わないか」が書いてある使う場面でないのに呼ばれる。逆に必要な場面で呼ばれない
4ツール定義引数が型と必須・任意で定義され、自由記述を最小にしてある文字列に何でも詰め込まれ、後段の検証で弾かれ続ける
5ツール定義返り値の形式が固定で、AIがそのまま読める粒度に整形されている巨大な生データが文脈を埋め、後続の判断が劣化する
6ツール定義ツールの総数が絞られている(似た機能を統合してある)選択肢が増えるほど選び間違いが増える
7権限読み取りと書き込みのツールが分かれている読むだけのつもりの処理が書き換えを起こす
8権限取り返しのつかない操作(削除・送信・支払い)に人の承認を挟んでいる誤った判断がそのまま実行され、取り消せない
9権限ツールが触れる範囲が必要最小限に絞ってある1つの誤りの影響範囲が想定より広くなる
10権限認証情報がAIに見える文脈へ渡っていない出力やログ経由で認証情報が外へ出る
11失敗時エラーが「何が悪かったか」と「次にどうすべきか」を含んで返るAIが同じ呼び出しを繰り返し、費用と時間だけが増える
12失敗時再試行の上限と、あきらめて人に渡す条件が決まっている失敗時に呼び出しが際限なく増える
13失敗時同じ引数で2回呼んでも結果が変わらない(べき等)再試行のたびに二重登録・二重送信が起きる
14観測呼び出しの引数・返り値・所要時間が記録されている事故が起きても原因の切り分けができない
15観測ツール由来の文字列が指示として扱われない設計になっている外部データに仕込まれた指示にAIが従う

15項目を一度に満たす必要はありませんが、8番(取り返しのつかない操作の承認)と15番(外部データを指示として扱わない)の2つは、他を後回しにしてでも先に満たしてください。この2つだけが、失敗したときに取り返しがつかない項目です。

03

権限と確認ゲートの決め方

操作の種類ごとに、既定の扱いを先に決めておくと、ツールを足すたびに議論しなくて済みます。

操作の種類ごとの既定の扱い
操作の種類既定の扱い理由
読み取り検索、ファイル閲覧、状態の取得自動実行してよい失敗しても元に戻せる
内部の書き込み下書きの保存、作業用ブランチへの変更自動実行してよい(記録は残す)履歴から復元できる
外部への送信メール送信、投稿、通知人の承認を必須にする受け取った相手側は取り消せない
削除・上書きレコード削除、本番データの更新人の承認を必須にする復元できないことがある
支払い・契約決済、注文確定人の承認を必須にする金銭が動き、責任の所在が変わる

承認を挟む位置は「実行の直前」で、承認画面には実際に呼ばれる引数をそのまま出します。要約した文言だけを見せると、承認者は何を承認したのか分からないまま押すことになります。関連する考え方はガードレールにまとめています。

04

実際に起きる失敗の型と対処

設計の抜けは、決まった形の失敗として現れます。症状から原因を引けるよう整理しました。

失敗の型と対処
症状よくある原因対処
同じツールを何度も呼び続けるエラーが「失敗した」としか返っていないエラーに理由と次の手を書いて返す。再試行の上限を決める
必要な場面でツールを呼ばない説明文に「いつ使うか」が書かれていない説明文へ使用条件を明記し、使わない条件も併記する
似たツールを取り違える名前が名詞だけ、または機能が重複している動詞+対象に改名し、重複するツールは統合する
引数が毎回崩れる自由記述の引数が多い、型が緩い選択肢のある引数は列挙型にし、必須項目を減らす
二重登録・二重送信が起きる再試行時にべき等でない呼び出しごとの識別子を受け取り、同じ識別子は1回だけ処理する
外部の資料を読んだ後に挙動が変わる取得した文字列を指示として扱っている取得内容はデータとして扱う。指示に見える文字列に従わない設計にする
費用が急に増える呼び出し回数と返り値の量に上限が無い1件あたりの呼び出し上限と返り値の切り詰めを入れる

最後の2つは OWASP Top 10 for LLM Applications 2025 の LLM01(Prompt Injection)・LLM06(Excessive Agency)・LLM10(Unbounded Consumption)に対応する論点です。攻撃としての詳細はプロンプトインジェクション対策の一覧表 2026にまとめています。

05

参照した一次情報

設計上の観点は、次の公開資料の分類に沿って整理しています。

参照した一次情報の一覧
資料名発行元分かることリンク
Top 10 for LLM Applications 2025OWASPLLMアプリで起きる代表的なリスク10種の分類genai.owasp.org/llm-top-10/
LLM01:2025 Prompt InjectionOWASPプロンプトインジェクションの定義と攻撃の型genai.owasp.org/llmrisk/llm01-prompt-injection/
AI Risk Management FrameworkNISTAIのリスクを統治・特定・測定・管理する枠組みnist.gov/itl/ai-risk-management-framework
AI 100-2 E2025(Adversarial Machine Learning)NISTAIへの攻撃と緩和策の用語・分類csrc.nist.gov/pubs/ai/100/2/e2025/final
情報セキュリティ10大脅威 2026IPA(情報処理推進機構)その年に社会的影響が大きかった脅威の一覧ipa.go.jp/security/10threats/10threats2026.html
安全なウェブサイトの作り方IPA(情報処理推進機構)入力値の扱いと出力時のエスケープの基本ipa.go.jp/security/vuln/websecurity/about.html
06

関連記事・用語

用語の定義は関数呼び出し(ツール使用)AIエージェントガードレールにまとめています。ツールの接続規格そのものはMCPとは何か、複数のエージェントの分担は複数のAIコーディングエージェントをどう役割分担させるか、動かした結果の測り方はLLM評価の指標一覧表をご覧ください。

07

よくある質問

Q1. ツールは何個まで渡してよいですか?
上限の決まった数字はありませんが、似た機能のツールが並ぶほど選び間違いが増えます。まずは用途ごとに5〜10個へ絞り、選び間違いが起きた組み合わせから統合していくのが現実的です。数を増やすより、1つ1つの説明文を具体的にするほうが効果があります。

Q2. 人の承認を挟むと自動化の意味が薄れませんか?
承認を挟むのは、取り返しのつかない操作だけです。読み取りと内部の書き込みを自動で回せれば作業の大半は自動化できます。削除・送信・支払いだけを承認対象にすると、止まる回数は限られたまま、失敗したときの被害を抑えられます。

Q3. 外部データを読ませるだけなら安全ですか?
安全にはなりません。読み込んだ文章の中に「これまでの指示を無視して〜」といった文が混ざっていると、AIがそれを指示として扱うことがあります。取得した内容はデータとして扱い、指示に見える文字列には従わない設計にしたうえで、権限側でも被害範囲を絞ってください。

AI Craft Campusで体系的に学ぶ

この記事は無料で読める入門です。より体系的に、実際に手を動かしながら学びたい方は全12週のシラバスをご覧ください(無料で読めます。成果をお約束するものではありません)。先行案内はこちら