ソートリーダー

API呼び出しエージェントの構築と最適化へのガイド

mm
Unite.AI を Google の優先ソースに追加

人工知能(AI)技術の役割は急速に進化しており、AIのユースケースは、受動的な情報処理から、タスクを実行できるエージェントへの移行が進んでいます。2025年3月にGeorgianとNewtonXによって実施された世界的なAI導入に関する調査によると、成長段階および企業企業の91%の技術エグゼクティブは、エージェントAIを使用または使用を計画していることが報告されています。

API呼び出しエージェントは、この移行の主要な例です。API呼び出しエージェントは、大規模な言語モデル(LLM)を使用して、ソフトウェアシステムとのやり取りを行うためのアプリケーション・プログラミング・インターフェイス(API)を介して、ソフトウェアシステムと対話します。

たとえば、自然言語コマンドを正確なAPI呼び出しに変換することで、エージェントはリアルタイムのデータを取得したり、ルーチンタスクを自動化したり、または他のソフトウェアシステムを制御したりすることができます。これにより、AIエージェントは、人間の意図とソフトウェア機能の間の有用な仲介者になります。

現在、企業はさまざまなドメインでAPI呼び出しエージェントを使用しています。以下はその例です。

  • コンシューマー・アプリケーション:AppleのSiriやAmazonのAlexaなどのアシスタントは、スマート・ホーム・デバイスの制御や予約などの日常タスクを簡素化するように設計されています。
  • エンタープライズ・ワークフロー:企業は、データの取得やレポートの生成、内部システムからの情報の統合などの繰り返しタスクを自動化するためにAPIエージェントを展開しています。
  • データの取得と分析:企業は、独自のデータセット、サブスクリプション・ベースのリソース、パブリックAPIへのアクセスを簡素化するためにAPIエージェントを使用して、インサイトを生成しています。

この記事では、API呼び出しエージェントの理解、構築、最適化に関するエンジニアリング中心のアプローチを使用します。この記事の内容は、GeorgianのAIラボによる実践的な研究と開発に基づいています。API呼び出しエージェントに関するAIラボの研究の多くは、次の質問によって動機づけられています。「組織がAPIを持っている場合、そのAPIと自然言語を使用して対話できるエージェントを構築する最も効果的な方法は何ですか?」

API呼び出しエージェントのしくみと、パフォーマンスを確実に実現するためのアーキテクチャとエンジニアリングについて説明します。最後に、エンジニアリングチームがAPI呼び出しエージェントを実装するために使用できる体系的なワークフローを提供します。

I. キー定義

  • APIまたはアプリケーション・プログラミング・インターフェイス:異なるソフトウェア・アプリケーションが通信し、情報を交換できるようにするルールとプロトコルのセット。
  • エージェント:環境を感知し、決定を下し、特定の目標を達成するために行動を取るように設計されたAIシステム。
  • API呼び出しエージェント:自然言語の指示を正確なAPI呼び出しに変換する特殊なAIエージェント。
  • コード生成エージェント:ソフトウェア開発を支援するためにコードを書き、変更し、デバッグするAIシステム。ここでの私の焦点は、APIを「呼び出す」エージェントですが、AIはこれらのエージェントを「構築」するのにも役立ちます。
  • MCP(モデル・コンテキスト・プロトコル):LLMが外部ツールやデータ・ソースに接続して利用する方法を定義するプロトコル。特に、Anthropicによって開発されました

II. コア・タスク:自然言語をAPIアクションに変換する

API呼び出しエージェントの基本的な機能は、ユーザーの自然言語のリクエストを解釈し、それを1つまたは複数の正確なAPI呼び出しに変換することです。このプロセスには、通常、以下のステップが含まれます。

  1. インテントの認識:ユーザーの目標を理解すること、曖昧に表現されている場合でも。
  2. ツールの選択:利用可能なオプションのセットから、インテントを満たすことができるAPIエンドポイント(または「ツール」)を特定すること。
  3. パラメーターの抽出:選択されたAPI呼び出し(または呼び出し)に必要なパラメーターをユーザーのクエリから特定し、抽出すること。
  4. 実行とレスポンスの生成:API呼び出しを行い、レスポンスを受け取り、それをまとめて回答を生成したり、後続のアクションを実行したりすること。

「Hey Siri、今日の天気はどうですか?」というリクエストを考えてみましょう。エージェントは、天気APIを呼び出す必要があることを特定し、ユーザーの現在の場所(または場所の指定を許可)を決定し、天気情報を取得するためにAPI呼び出しを形成する必要があります。

「Hey Siri、今日の天気はどうですか?」というリクエストの場合、サンプルのAPI呼び出しは以下のようになります。

GET /v1/weather?location=New%20York&units=metric

この変換プロセスには、自然言語の曖昧さやエージェントがマルチステップの対話全体でコンテキストを維持する必要性などの初期の課題が含まれています。

たとえば、エージェントは、現在のアクションを通知するために、会話の以前の部分や以前のAPI呼び出しの結果を「覚える」ことが必要です。コンテキストの喪失は、明示的に管理されない場合に一般的な障害モードです。

III. ソリューションのアーキテクチャ:キー・コンポーネントとプロトコル

有効なAPI呼び出しエージェントを構築するには、構造化されたアーキテクチャ・アプローチが必要です。

1. エージェントのツールの定義

LLMがAPIを使用するには、そのAPIの機能をLLMが理解できる方法で説明する必要があります。各APIエンドポイントまたは関数は、通常、「ツール」として表されます。ロバストなツール定義には、以下のものが含まれます。

  • ツールの目的と機能の明確な自然言語による説明。
  • 入力パラメーターの正確な仕様(名前、タイプ、必要かどうか、説明など)。
  • ツールが返す出力またはデータの説明。

2. モデル・コンテキスト・プロトコルの役割

MCPは、LLMによる外部ツールやデータ・ソースの使用を標準化し、ロバスト化するための重要なエナブラーです。MCPは、モデルが外部ツールやデータ・ソースに接続して利用する方法を定義する構造化された形式を提供します。

MCPの標準化は、以下の理由で有益です。

  • 多様なツールの統合が容易になります。
  • ツール定義の再利用が促進され、異なるエージェントやモデル間でツールを共有できます。
  • エンジニアリング・チームにとって、OpenAPI仕様などの明確に定義されたAPI仕様から始めることがベスト・プラクティスです。Stainless.aiなどのツールは、これらのOpenAPI仕様をMCP構成に変換するのに役立ち、APIを「エージェント対応」にします。

3. エージェント・フレームワークと実装の選択

エージェント自体を構築するためのいくつかのフレームワークがあります。これらには以下が含まれます。

  • Pydantic:エージェント・フレームワークとしてだけではなく、ツールの入力と出力のデータ構造を定義し、タイプ・セーフティを確保するのに役立ちます。多くのカスタム・エージェント実装では、構造的完全性のためにPydanticを使用します。
  • LastMileのmcp_agent:MCPと密接に連携するように設計されたフレームワークで、Anthropicなどの研究に基づくエージェントの構築に関するベスト・プラクティスに沿った構造を提供します。
  • 内部フレームワーク:AIコード生成エージェント(CursorやClineなどのツールを使用)を使用して、エージェント、ツール、および周囲のロジックのボイラープレート・コードを書くこともできます。GeorgianのAIラボの経験では、カスタム・フレームワークの作成に役立ちます。

IV. 信頼性とパフォーマンスのためのエンジニアリング

エージェントがAPI呼び出しを信頼性とパフォーマンスで実行することを保証するには、集中したエンジニアリングの努力が必要です。これを行う2つの方法は、データセットの作成と検証、およびプロンプト・エンジニアリングと最適化です。

1. データセットの作成と検証

エージェントをトレーニング(該当する場合)、テスト、および最適化するには、高品質のデータセットが必要です。このデータセットには、自然言語のクエリと対応する望ましいAPI呼び出しのシーケンスまたは結果が含まれる必要があります。

  • 手動作成:データセットを手動でキュレーションすることで、精度と関連性が高まりますが、手間がかかります。
  • 合成生成:プログラムによってデータを生成するか、LLMを使用することで、データセットの作成を拡張できますが、このアプローチには重大な課題があります。Georgian AIラボの研究では、合成的に生成されたAPI呼び出しとクエリの正確性と現実的な複雑さを確保することは非常に困難であることがわかりました。生成された質問は、しばしばあまりにも単純または不可能に複雑で、繊細なエージェントのパフォーマンスを測定することは困難でした。合成データの慎重な検証は、絶対に重要です。

重要な評価の場合、少量の高品質の手動検証済みデータセットは、大量のノイズのある合成データよりも信頼性の高い洞察を提供することがよくあります。

2. プロンプト・エンジニアリングと最適化

LLMベースのエージェントのパフォーマンスは、エージェントの推論とツールの選択を導くために使用されるプロンプトによって大幅に影響を受けます。

  • 効果的なプロンプティングには、エージェントのタスクを明確に定義し、利用可能なツールの説明を提供し、プロンプトを構造化して正確なパラメーターの抽出を促進することが含まれます。
  • フレームワークを使用した体系的な最適化、たとえば、DSPy を使用すると、パフォーマンスを大幅に向上させることができます。DSPyを使用すると、エージェントのコンポーネント(たとえば、思考の生成、ツールの選択、パラメーターの書式設定のためのモジュール)を定義し、データセットからの少量の例を使用してコンパイラのようなアプローチでこれらのコンポーネントの最適化されたプロンプトまたは構成を見つけることができます。

V. 有効なAPIエージェントへの推奨パス

堅牢なAPI呼び出しAIエージェントを開発することは、反復的なエンジニアリングの分野です。Georgian AIラボの研究の結果に基づいて、アウトカムは、以下のような体系的なワークフローを使用することで大幅に改善できます。

  1. 明確なAPI定義から始める:エージェントが対話するAPIのための、構造化されたOpenAPI仕様から始めます。
  2. ツール・アクセスの標準化:OpenAPI仕様をMCPツールに変換します。Stainless.aiなどのツールは、このプロセスを容易にし、APIを「エージェント対応」にします。
  3. エージェントの実装:適切なフレームワークまたはアプローチを選択します。これには、Pydanticを使用したデータ・モデリングが含まれるかもしれません。カスタム・エージェント構造内でタイプ・セーフティを確保するために、またはMCPに基づいて構築されたLastMileのmcp_agentなどのフレームワークを使用することが含まれるかもしれません。
  4. 高品質の評価データセットのキュレーション:手動で作成するか、慎重に検証したデータセットを作成します。これは、信頼性の高いテストと最適化に不可欠です。
  5. エージェントのプロンプトとロジックの最適化:DSPyなどのフレームワークを使用して、エージェントのプロンプトと内部ロジックを改良し、データセットを使用して精度と信頼性の向上を推進します。

VI. ワークフローのイラストレーション

以下は、API呼び出しエージェントの構築のための推奨されるワークフローの簡略化された例です。

ステップ 1: 明確なAPI定義から始める

シンプルなTo-Doリストを管理するAPIを想像してみましょう。これはOpenAPIで定義されています。

openapi: 3.0.0

info:

title: To-Doリスト API

version: 1.0.0

paths:

/tasks:

post:

summary: 新しいタスクを追加する

requestBody:

required: true

content:

application/json:

schema:

type: object

properties:

description:

type: string

responses:

‘201’:

description: タスクが正常に作成されました

get:

summary: すべてのタスクを取得する

responses:

‘200’:

description: タスクのリスト

ステップ 2: ツール・アクセスの標準化

OpenAPI仕様をMCPに変換します。Stainless.aiなどのツールを使用すると、以下のようになります。

ツール名 説明 入力パラメーター 出力の説明
タスクの追加 To-Doリストに新しいタスクを追加します。 `description` (string, required): タスクの説明 タスク作成の確認
タスクの取得 To-Doリストからすべてのタスクを取得します。 なし タスクのリストと説明

ステップ 3: エージェントの実装

Pydanticを使用してデータ・モデリングを行い、MCPツールに対応する関数を作成します。次に、LLMを使用して自然言語のクエリを解釈し、適切なツールとパラメーターを選択します。

ステップ 4: 高品質の評価データセットのキュレーション

データセットを作成します。

クエリ 期待されるAPI呼び出し 期待される結果
「私のリストに ‘買い物’ を追加してください」 「タスクの追加」で `description` = “買い物” タスク作成の確認
「私のリストは何ですか?」 「タスクの取得」 タスクのリスト、含む「買い物」

ステップ 5: エージェントのプロンプトとロジックの最適化

DSPyを使用して、プロンプトを改良し、明確な指示、ツールの選択、パラメーターの抽出に焦点を当て、キュレーションされたデータセットを使用して評価と改善を行います。

これらのビルディング・ブロックを統合することで、エンジニアリング・チームは、より有能で信頼性が高く、メンテナンスが容易なAPI呼び出しAIエージェントを構築できます。

ロドリゴ・セバロス・レンティーニは、GeorgianのAI LabのAIテクニカルリードであり、ジェネレーティブおよびエージェントAIプロジェクトから有形な成果を達成するためにポートフォリオ企業を支援しています。ロドリゴは、ETHチューリッヒからコンピュータビジョンに焦点を当てたニューラルシステムと計算の修士号を持ちます。