AIエージェントにツールを使わせるには、モデルへ関数名、目的、入力形式を示し、モデルが提案した呼び出しをアプリケーション側で検証してから実行します。 関数の定義と実際の権限は分け、利用者の認証、引数、承認条件、回数制限を実行基盤で確認します。 特に更新、送信、購入、削除は、読み取りツールと分離して最小権限を適用することが重要です。
ツール連携を含むAIエージェント開発を学びたい方は、AIエージェントが学べるおすすめスクールで、AI活用、Python実装、マンツーマン支援の違いを比較できます。
| 設計対象 | モデルへ渡す情報 | 実行基盤で制御すること |
|---|---|---|
| 関数 | 名前、説明、入力形式 | 実装と接続先 |
| 引数 | 必須項目、型、選択肢 | 値の妥当性と改ざん |
| 認証 | 原則として渡さない | 利用者とサービスの資格情報 |
| 権限 | 利用可能な操作の説明 | 読取、更新、削除の許可 |
| 結果 | 成功、失敗、返却データ | 監査ログと情報の除去 |
関数呼び出しは提案、検証、実行、返却の四段階
モデルが行うのはツールの直接実行ではなく、使用する関数と引数の構造化された提案。 Google Cloudの関数呼び出し資料では、関数宣言をモデルへ渡し、返された呼び出しをアプリケーションが実行し、結果をモデルへ戻す流れが説明されています。
基本の処理は次の通りです。
- アプリケーションが利用可能な関数定義を渡す
- モデルが関数名と引数を返す
- アプリケーションが認証と値を検証して実行する
- 成功またはエラーをモデルへ返す
この境界があるからこそ、モデルの出力をそのまま外部操作にせず、業務ルールを適用できます。
一つの関数には一つの明確な操作を持たせる
検索、更新、削除を一つへ詰めた「顧客を管理する」関数で生じる、過剰な権限と複雑な入力。 検索、更新、削除を別関数にすると、利用できる役割と承認条件を分けられます。
MetaのToolformer研究は、どのAPIをいつ呼び、引数と結果をどう扱うかを学ぶ問題を扱っています。 モデルが選びやすいことと、運用上安全であることの両方がツール設計に必要です。
良い定義の確認項目。
- 関数名が操作を具体的に表す
- 説明に使う条件と使わない条件を書く
- 入力の型、必須、範囲、選択肢を制限する
- 成功と失敗を構造化して返す
- 一回の呼び出しで複数の重大操作をしない
読み取り、下書き、確定操作で権限を分ける
同じ顧客情報でも異なる、閲覧、変更案の作成、実際の更新による影響。 モデルが使える関数一覧を役割と利用者ごとに絞り、資格情報は実行時に基盤側から付与します。
Anthropicの信頼できるエージェントに関する研究は、外部環境へ作用するエージェントが、強い権限や機密情報に接続する危険を論じています。
| 操作段階 | 例 | 基本の制御 |
|---|---|---|
| 読み取り | 在庫を検索する | 対象範囲と件数を制限 |
| 下書き | 発注文を作る | 保存のみで送信しない |
| 確定 | 発注を送信する | 人の承認と再認証 |
| 取消困難 | 支払い、削除 | 複数条件と強い監査 |
権限を一度付与して終わりにせず、タスク、利用者、操作ごとに確認します。
引数と戻り値は信頼できない入力として検証する
モデル生成の引数に含まれ得る、存在しない識別子、範囲外の数値、意図しない文字列。 外部ツールの戻り値にも、誤情報や命令のような文章が入る可能性があります。
Anthropicの設計ガイドは、ツールの定義と文書化へ注意を払い、環境から得た結果を基にエージェントが進む構成を説明しています。
実行前後の検証手順。
- 型、長さ、範囲、必須項目を検証する
- 対象が利用者の権限内か照合する
- 高リスク操作は内容を表示して承認を得る
- 戻り値から認証情報や不要な個人情報を除く
- 結果をデータとして扱い、上位の指示を上書きさせない
入力検証に失敗したら、モデルへ修正を求める回数に上限を設けます。
監査ログと停止条件をツール単位で持たせる
ツール利用で追跡する、依頼者、関数、対象、実行時刻、返却結果。 認証情報や個人情報そのものをログへ残さず、調査に必要な識別子と結果を記録します。
NISTのAIエージェントの認証と認可に関する文書は、エージェントの識別、委任、最小権限を運用する課題を整理しています。
OpenAIの実践ガイドも、道具ごとの安全策と複数の防御を組み合わせる考え方を示しています。 一日の呼び出し数、連続失敗数、合計金額、処理時間の上限を超えたら自動で停止します。
AIエージェントのアーキテクチャと合わせると、モデルの提案と実際の権限行使をどこで分けるか確認できます。
AIエージェントのツール利用でよくある質問
モデルへAPIキーを渡してもよいですか?
原則は、プロンプトや会話文へAPIキーを含めない設計。 資格情報は実行基盤の安全な保存先で管理し、認証済みの利用者と許可された関数に対して実行時だけ使います。 ログや戻り値へ秘密情報が出ないことも確認します。
ツールはいくつ登録できますか?
製品上の上限とは別に、関連の薄いツールを大量に見せると選択を誤りやすくなります。 依頼と役割に必要な候補だけを渡し、名前と説明を明確にします。 役割が広すぎる場合は、経路選択やエージェント分割を検討します。
自動実行してよい操作はどう決めますか?
誤りを検出でき、取り消せ、影響が限定される読み取りや下準備から始めます。 外部送信、購入、権限変更、削除は、影響額や対象に応じて承認と再認証を求めます。 成功率だけでなく事故時の最大影響から決めてください。
安全なツール利用はモデルの外側で確定する
AIエージェントのツール利用では、モデルは関数と引数を提案し、アプリケーションが権限と妥当性を確認して実行します。 この分離によって、モデルの柔軟な判断を業務上の制御へ接続できます。
- 関数呼び出しを提案、検証、実行、返却に分ける
- 一つの関数へ一つの操作を持たせる
- 読み取り、下書き、確定操作の権限を分離する
- 引数と戻り値を信頼できない入力として検証する
- 監査ログと回数、費用、時間の停止条件を設ける
取得した情報を検索拡張へつなぐ場合は、次のRAG型AIエージェントの仕組みで、検索と自律実行の役割を分けて考えられます。




