本記事は 2025年3月12日 に更新された「Tool Calling in AI Agents: Empowering Intelligent Automation Securely」を機械翻訳した記事です。
AI エージェント や オペレーター は、AI における最新のトレンドです。AI エージェントの中核は自律システムであり、大規模言語モデル (LLM) を使用して自然言語を処理するだけでなく、外部ツールや API といつどのように連携するかを決定します。AI エージェントは、機械学習と意思決定能力を組み合わせることで、複雑なタスクの実行やリアルタイムでの対話、特定の作業に最も効率的なツールの使用、さらには環境からの学習までも、人間の継続的な介入なしに実現できます。
ツール呼び出し (Tool Calling)
LLM は依然としてハルシネーションや間違いを起こしてしまう可能性があります。しかし、ツールを呼び出す機能により、まったく新しい可能性が開かれます。LLM 単体ではエラーが起こりやすいタスクを従来型の非 AI ツールに任せることが可能になります。例えば計算を LLM に頼る代わりに電卓を使うような組み合わせが可能になります。同様に、ツール呼び出しによって、 AI エージェントは Gmail 、 Calendar、Slack、Google Drive などの他のアプリケーションやサービスと連携し、単に質問に答える以上のことを実行できるようになります。
ツール呼び出しは、一般的に次のように分類できます。:
- 認証が不要なツール: 認証を必要とせず、一般的に設定が簡単なツールです。電卓、天気予報 API 、単位変換器などが該当します。
- 認証が必要なツール: 認証が必要で、一般的に設定が複雑なツールです。社内アプリケーションが提供する API や、Gmail、Calendar、Slack、Google Drive などのサービスが該当します。
エンタープライズ環境では、認証が必要なツールはさらに次のように分類できます。:
- ファーストパーティツール: 同じシステムの一部であり、認証が必要なサービスです。別の内部アプリケーションや別のマイクロサービスが提供する API などが該当します。
- サードパーティツール: より複雑な認証が必要な外部サービスです。決済 API のようにサービスアカウントや API キーを使用して認証するサービスや、Gmail、Calendar、Slack、Google Drive のようにエンドユーザーによる認証が必要なサービスが該当します。
ツール呼び出しは、 AI エージェントに多くの重要な利点をもたらします。:
- 自律的な意思決定: AI エージェントはコンテキストを分析し、次の最善な行動を決定するため、人による確認の必要性が減少します。
- 最適化されたタスク実行: さまざまなサービスや API に接続できるため、データ検索、スケジュール調整、コミュニケーションなどの特別なタスクを実行できます。
- スケーラビリティと適応性: システムの進化に伴い、エージェントは新しい機能を簡単に組み込み、ワークフローや優先順位の変化に適応できます。
- 向上したユーザー体験: 多様なタスクに取り組む能力により、よりパーソナライズされた効率的な対話が可能になり、テクノロジーが直感的かつ能動的に感じられるようになります。
ツール呼び出しの代表的な例
複数のツールに動的にアクセスしてデジタルライフを集約し、整理と効率化を支援する AI パーソナルアシスタントを想像してみてください。次のように動作する可能性があります。:
- Gmail 連携: アシスタントは定期的に受信トレイをスキャンして、簡潔な要約を生成します。緊急のメールを強調表示し、会話を重要度別に分類し、簡単な返信の下書きを提案することもあります。
- カレンダー管理: カレンダーと連携することで、今後の会議をリマインドし、スケジュールの競合を確認し、空き時間に基づいて新しい予定の最適な時間帯を提案することもできます。
- Slack 通知: チームコミュニケーションのために、アシスタントは Slack チャネルをモニターします。重要なメッセージを特定し、アクションアイテムを作成することで、同僚からの重要な連絡を見逃さないようにします。
- Google Drive アクセス: 最新のプロジェクト資料や現在のタスクに関連するファイルが必要な場合でも、アシスタントは Google Drive から必要なドキュメントをその場で取得します。さらに、その内容を要約したり、指示に基づいて新しいドキュメントを作成したりすることも可能です。
ツール呼び出し機能により、可能性は無限に広がります。代表的なシナリオでは、 AI エージェントはデジタル個人秘書のような存在です。情報を処理するだけでなく、接続されたサービスからデータを積極的に照合して包括的なタスク管理を提供します。このような高度な連携は業務の効率を高めるだけではなく、知的な自動化の新たな時代の幕開けをもたらします。そこでは、デジタルアシスタントが個人的および専門的なニーズに合わせて調整され、信頼性の高いオールインワンソリューションとして機能します。
ツール呼び出し:におけるセキュリティ上の課題
このようなアシスタントを構築することはそれほど難しくありません。 LangChain、LlamaIndex、Vercel AI のようなフレームワークのおかげで、迅速に開始できます。難しいのは、ユーザーのデータや認証情報を保護できるように、安全に実行することです。
現在の多くのソリューションでは、認証情報とシークレットを AI エージェントの環境に保存し、AI エージェントがユーザーになりすませる方法を採用しています。API キーやサービスアカウントを利用する API に対しては、AI エージェントの環境内に認証情報を安全に保存する方法が有効かもしれません。しかし、エンドユーザー自身がサービスに認証する必要があるケースでは、この方法は適切ではありません。セキュリティの脆弱性や AI エージェントの過剰な権限やアクセス範囲につながる恐れがあります。
AI エージェントを構築する際には、その他のセキュリティへの影響もすべて考慮する必要があります。LLM にメールやドキュメントなどの個人データへの無制限なアクセスを与えたくはないでしょう。特にこれらのツールにアクセスさせるために、自身の認証情報を LLM に渡すようなこともより行いたくないかと思います。LLM がどれほど安全であっても、操作されて機密情報を漏洩したり、意図しないことを実行したりする可能性は常にあります。
Auth0 を利用したツール呼び出し
ここで Auth0 が役立ちます。アプリケーション向けの主要な ID プロバイダーとして、Auth0 が今後提供予定の Auth for GenAI は、AI エージェントがエンドユーザーに代わってツールの API を呼び出す標準的な方法を OAuth と OpenID Connect に基づき提供します。
Auth0 は、AI エージェントと AI エージェントがユーザーに代わってアクセスしたいサービスとの間で、安全で制御されたやりとりを仲介します。スコープが付いたアクセストークンを提供することで行われます。これにより、エージェントと LLM は認証情報にはアクセスできず、 Auth0 で定義した権限でのみツールを呼び出せます。AI エージェントが認証のためにツールと直接通信する必要はなくなり、Auth0 とのみ通信すればよくなり、連携の実装が容易になります。
ユーザーに代わってファーストパーティ API を呼び出す
Auth0 を使っている AI エージェントが、同じ Auth0 テナントを使用している別のアプリケーションの API を呼び出す必要がある場合は、 認可コードフロー のような標準の OAuth 2.0 フローを使用して、アプリケーションから API トークンを取得できます。この場合に API トークンの有効期限が切れていると、 Auth0 はキャッシュされているリフレッシュトークンを使用して新しいアクセストークンの取得を行います。
ユーザーに代わってサードパーティ API を呼び出す
Auth0 を使っている AI エージェントが、Gmail、Calendar、Slack、Google Drive などの外部サービスを呼び出したい場合、Auth0 は AI エージェントがエンドユーザーに代わって外部サービスのアクセストークンを取得する支援します。Auth0 は AI エージェントに外部サービスを仲介して API アクセストークンを提供します。
これはトークン交換のフェデレーションにより可能になります。トークン交換のフェデレーションは、ユーザーが毎回再認証することなく、外部 ID プロバイダーからアクセストークンを取得する方法です。エンドユーザーは一度認証して外部サービスに接続すると、 Auth0 は認証および認可プロセスを仲介して、AI エージェントに API アクセストークンを提供します。Auth0 は、リフレッシュトークンを保存し、アクセストークンの有効期限が切れたときは新しいアクセストークンを取得します。
ツール呼び出しのセキュリティベストプラクティス
ツール呼び出しを行う AI エージェントを構築する際に考慮すべきセキュリティベストプラクティスの概要は以下の通りです。:
- 最小権限: 必要な最小限の権限を付与 (例: 読み取り専用アクセス)
- 監査ログ: API 呼び出しと認証情報の使用状況を追跡
- プロキシ化: ユーザの認証情報を保護するために、Auth0 のような IdP を AI エージェントとツールの間のブローカーとして使用する
- 暗号化: 認証情報を保存時および転送中は暗号化 (HTTPS / TLS)
- トークンローテーション: 定期的に API キーやトークンをローテーション
- サンドボックス化: 可能な場合はツールを隔離された環境で実行し、漏洩による損害を限定
AI エージェントと Auth for GenAI についてさらに学ぶ
本記事では AI エージェントの変革の可能性の一端を紹介し、安全なツール呼び出しにより、 AI エージェントがパーソナライズされた体験を提供する方法を紹介しました。 Auth for GenAI を使用したツール呼び出しに関する今後の記事にご期待ください。パーソナルアシスタントを Node.js と Python で構築し、好みの AI フレームワークと Auth0 を使用してさまざまなタイプのサービスと安全に統合する方法を紹介します。
最後にお知らせがあります。LlamaIndex、LangChain、CrewAI、Vercel AI、GenKit のような素晴らしい生成 AI フレームワークと協力して、より多くのコンテンツとサンプルアプリに取り組んでいます。 Auth for GenAI として、生成 AI アプリケーションにおけるユーザー情報の保護に役立つ機能を今後提供予定です。詳細の確認や質問は、Auth0 Lab Discord サーバー に参加ください。
About the author

Deepu K Sasidharan
Staff Developer Advocate