【ITニュース解説】いまさら聞けない? Function calling を Agent Development Kit (ADK) で理解する

2025年09月08日に「Zenn」が公開したITニュース「いまさら聞けない? Function calling を Agent Development Kit (ADK) で理解する」について初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

ITニュース概要

大規模言語モデル(LLM)が外部の関数やツールを呼び出す「Function calling」。この仕組みにより、LLMは最新情報の取得や特定タスクの実行が可能になる。記事ではAgent Development Kit (ADK)を用い、その仕組みを分かりやすく解説する。(119文字)

ITニュース解説

大規模言語モデル(LLM)は、人間のように自然な文章を生成する能力で注目を集めているが、その真価はテキストの生成だけにとどまらない。LLMが外部のシステムやサービスと連携し、より高度なタスクを実行するための鍵となる技術が「Function calling(関数呼び出し)」である。この技術は、LLMを単なる対話相手から、能動的に問題を解決する「AIエージェント」へと進化させる上で不可欠な要素となっている。

Function callingの基本的な考え方は、LLMが持つ知識の限界を克服することにある。LLMは、学習した膨大なデータに基づいて応答を生成するが、その知識は学習時点のものであり、リアルタイムの情報、例えば今日の天気や最新のニュース、社内データベースの特定の値などを知ることはできない。Function callingは、こうした外部の情報を取得したり、外部のシステムを操作したりするための「橋渡し」の役割を担う。具体的には、ユーザーからの指示をLLMが解釈し、そのタスクを達成するためにどのプログラム(関数)を、どのような情報(引数)を添えて実行すべきかを判断し、その実行計画をJSONという構造化されたデータ形式で出力する機能である。ここで重要なのは、LLM自身がプログラムのコードを直接実行するわけではないという点だ。LLMはあくまで「司令塔」として、どの関数を呼び出すべきかを提案する役割に徹し、実際の実行はLLMを組み込んでいるアプリケーション側が担当する。

この仕組みは、一連のステップを経て機能する。まず、開発者はアプリケーション側で、LLMに使用させたい関数を定義する。このとき、関数の名前、機能の説明、そして実行時に必要となる引数の情報を明確にし、LLMに提供しておく。例えば「現在の天気を取得する関数」を定義し、その実行には「場所」という情報が必要であることを伝える。次に、ユーザーが「東京の天気は?」といった質問をLLMに投げかける。するとLLMは、この質問の意図と、事前に提供された関数定義を照らし合わせ、「現在の天気を取得する関数」を「場所:東京」という引数で呼び出すことが適切だと判断する。そして、その判断結果を「関数名:get_current_weather、引数:{ location: '東京' }」といった内容のJSON形式でアプリケーションに返す。アプリケーションはこのJSONを受け取ると、その指示通りに実際に天気情報を取得するAPIを呼び出し、関数の処理を実行する。実行後、アプリケーションは得られた結果、例えば「晴れ、気温25度」という情報を、再びLLMにフィードバックする。最後にLLMは、その実行結果を基に、ユーザーに対して「東京の天気は晴れ、気温は25度です」といった自然な文章を生成して最終的な回答を提示する。この一連の流れにより、LLMは自身の知識の範囲を超えた、正確で最新の情報に基づいた応答が可能になる。

このようなFunction callingの仕組みを活用し、自律的にタスクを計画・実行するプログラムが「AIエージェント」と呼ばれる。しかし、AIエージェントを構築するために、前述したLLMとの一連の通信や処理のフローを毎回ゼロから実装するのは複雑で手間がかかる。そこで役立つのが、「Agent Development Kit(ADK)」のような開発支援ツールキットである。ADKは、Function callingを利用したAIエージェントの開発を大幅に簡略化することを目的としている。開発者は、LLMに実行させたいツール(関数)の具体的な処理ロジックを実装することに集中できる。ADKが、LLMへのツール情報の登録、LLMからの実行指示の解釈、ツールの呼び出し、そして実行結果のLLMへのフィードバックといった、煩雑なプロセスを裏側で自動的に管理してくれる。これにより、開発のハードルが大きく下がり、より迅速に高度なAIエージェントを構築することが可能になる。

結論として、Function callingは、LLMを閉じた知識の世界から解放し、現実世界のデータやシステムと連携させるための基盤技術である。これにより、LLMは単なる情報検索や文章作成ツールを超え、データベースの操作、外部APIとの連携、業務プロセスの自動化など、より実践的で価値の高いタスクを担うことができるようになる。そして、ADKのような開発キットは、この強力な機能をより多くの開発者が容易に活用できるようにし、AIエージェント開発の普及を加速させる。システムエンジニアを目指す上で、LLMがどのようにして外部と連携し、実用的なアプリケーションへと組み込まれていくのか、その中核にあるFunction callingの概念を理解することは極めて重要である。

関連コンテンツ

【ITニュース解説】いまさら聞けない? Function calling を Agent Development Kit (ADK) で理解する | いっしー@Webエンジニア