> For the complete documentation index, see [llms.txt](https://docs.maiagent.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.maiagent.ai/tech/maiagent-tech-ja/advanced-genai-tech/function-calling.md).

# Function Calling

## Function Calling とは？

Function Calling（関数呼び出し）とは、大規模言語モデル（LLM）がユーザーとのやり取りやタスクの処理の過程において、外部のプログラムや API（これらを「ツール」または「関数」と呼びます）をいつ実行する必要があるかを理解し、呼び出すべき関数の名前とそのパラメータを構造化された形式（通常は JSON）で正確に出力できる機能を指します。

重要な点として、LLM 自体はこれらの関数を直接実行するわけではなく、「どの関数を、どのようなパラメータで呼び出す必要があるか」を決定する役割のみを担います。実際の関数の実行は呼び出し側のプログラムが行い、その実行結果を LLM に返すことで、モデルはその情報を活用してより正確で関連性の高い応答を生成したり、より複雑なタスクを引き続き完了させたりできるようになります。

<figure><img src="/files/sDgy3CKX3b2stZbE9UWZ" alt=""><figcaption><p>RAG フロー</p></figcaption></figure>

## Function Calling の動作原理

Function Calling の動作フローは通常、以下のいくつかの重要なステップで構成され、動的なインタラクションのループを形成します。

### 1. 意図の認識と構造化された指示の生成

* ユーザーが自然言語でリクエストを行う
* LLM がリクエストを解析し、ユーザーの意図を理解する
* 外部関数を呼び出す必要があるかどうかを判断する
* 関数名とパラメータを含む構造化された出力（JSON 形式）を生成する
* モデル自体はいかなる関数も実行しない

### 2. 外部関数の実行

* アプリケーションが LLM の生成した構造化された指示を受け取る
* 関数名とパラメータに基づいて対応する外部関数を実行する
* 次のような処理が含まれる場合があります：
  * データベースのクエリ
  * サードパーティサービスの呼び出し
  * 計算処理

### 3. 結果の返却と統合

* 外部関数の実行が完了する
* 結果がアプリケーションに返される
* アプリケーションが結果を LLM に渡す

### 4. 最終的な応答の生成またはさらなるアクション

* LLM が関数の実行結果を受け取る
* 情報をコンテキストに統合する
* 最終的な自然言語の回答を生成する
* または次の関数を呼び出す必要があるかどうかを判断する

この閉ループのフローにより、LLM は単なるテキスト生成器から、外部の世界とインタラクションし、リアルタイムの情報を取得し、実際の操作を実行できるインテリジェントなエージェントへと変化します。

## Function Calling の中核的な用途と価値

Function Calling は LLM アプリケーションに革命的な変化をもたらし、より実用的で強力なものにしました。

### 1. リアルタイムかつ動的なデータの取得と統合

#### 用途

* 外部 API を自動的に呼び出して最新のデータを取得する
  * 天気の照会
  * 株式市場
  * リアルタイムニュース
  * 商品在庫
* 訓練データの知識カットオフの問題への依存を回避する

#### 価値

* 情報の即時性と正確性を確保する
* ユーザーの信頼度を向上させる

### 2. 複雑な業務プロセスの自動化

#### 用途

* 適用シーン
  * カスタマーサービス
  * 電子商取引
  * 企業内部システム
* 自動化される操作
  * 注文の照会
  * 商品のレコメンド
  * 予約の手配
  * 質問への回答
  * 返品の申請
  * チケットの作成

#### 価値

* 業務効率を向上させる
* 人件費を削減する
* 24時間365日のリアルタイムサービスを提供する
* ユーザー体験を改善する

### 3. 複数ステップのタスクにおけるインテリジェントエージェントと調整

#### 用途

* 複雑なタスクの処理例：
  * 旅行の計画
  * 航空券の予約
  * ホテルのレコメンド
  * スケジュールの調整
* 複数の関数をインテリジェントに調整する
  * 航空券 API
  * ホテル API
  * 地図サービス
  * カレンダー API

#### 価値

* エンドツーエンドのタスク自動化を実現する
* 複雑なユーザーニーズに対応する

### 4. LLM に構造化された操作能力を付与する

#### 用途

* 自然言語を構造化された操作に変換する
  * Text-to-SQL クエリ

#### 価値

* 技術者でないユーザーでも自然言語を通じて複雑なシステムとインタラクションできるようにする

## Function Calling のよくある活用シーン

| カテゴリ          | 活用シーンの例                                           | 中核的な特徴と強み                                    |
| ------------- | ------------------------------------------------- | -------------------------------------------- |
| **情報検索と質問応答** | AI アシスタントが企業の最新ポリシー、法律条文、製品仕様をリアルタイムで照会する         | 回答内容の即時性、正確性、出典の信頼性を保証する                     |
| **業務フローの自動化** | EC のカスタマーサービスで注文状況をセルフ照会、返金を開始、アフターサービス用チケットを自動作成 | 一問一答だけでバックエンドシステムの標準化されたプロセスをトリガーでき、効率を向上させる |
| **データ分析と可視化** | ユーザーの指示に応じて電卓、統計ライブラリ、グラフ生成 API を呼び出す             | 自然言語による駆動でデータの演算・分析と結果の可視化表現を実現する            |
| **外部システム連携**  | LLM がスマートホーム機器を制御、企業内部ソフトウェアを操作、メール／メッセージを送信      | LLM の理解能力を実際のシステム操作やハードウェア制御へと拡張する           |
| **コンテンツ生成支援** | SEO ツールを呼び出して記事を最適化、文法をチェック、画像／コードスニペットを生成        | 外部ツールと組み合わせて特定分野における LLM のコンテンツ生成品質を強化する     |

## MaiAgent の Function Calling ならではの強み

MaiAgent プラットフォームを選んで Function Calling 機能を実現・管理することで、お客様のアプリケーションに以下の重要なメリットがもたらされます。

1. **強力で柔軟なツール管理**：\
   MaiAgent は直感的で使いやすいインターフェースと API を提供しており、外部関数（ツール）の登録、設定、管理を簡単に行えます。各ツールの名前、説明、入力パラメータ（型、必須かどうか、説明などを含む）、および想定される出力形式を詳細に定義できます。
2. **信頼性の高い構造化パラメータの生成**：\
   MaiAgent は、LLM がツール定義に基づいて JSON Schema やその他の指定された形式に準拠したパラメータを確実に生成できるようにし、形式エラーによる関数実行の失敗を低減します。
3. **シームレスな開発・連携体験**：\
   MaiAgent は直感的でユーザーフレンドリーなインターフェースを提供しており、ユーザーはコードを書くことなく簡単に連携でき、必要な関数呼び出しツールを素早く設定・構成して効率を向上させられます。

## まとめ

Function Calling 技術は、LLM を受動的な「知識質問応答マシン」から、能動的な「タスク実行者」かつ「インテリジェントエージェント」へと進化させます。標準化されたインターフェースを通じて、LLM の強力な自然言語理解能力と外部世界の具体的な実行能力を完璧に組み合わせ、開発者に無限のアプリケーションイノベーションの余地を切り開きます。

MaiAgent はツール管理、開発連携、プラットフォームの安定性における強みを活かし、理想的な Function Calling ソリューションを提供します。これにより、より賢く、より強力で、実際の課題をより的確に解決できる AI Agent アプリケーションを簡単に構築できます。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.maiagent.ai/tech/maiagent-tech-ja/advanced-genai-tech/function-calling.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
