初心者のMCPお試しノート #2 – AIエージェントの全体像

に公開

GMACモデル

筆者がAIエージェントの全体像を説明するため作った言葉です

具体的には、
G: Generate, LLMで生成
M: MCP, ツール接続
A: AIエージェント, タスク実行
C: Coordination, AIエージェント同士の協調(A2A)

LLM(Large Language Model)

  • 大規模言語モデル
  • 人間の言葉を理解して文章を生成できるAIモデル
  • 例:ChatGPT、Claude

MCP(Model Context Protocol)

  • AI(モデル、エージェント)に外部ツールを使わせるための標準規格
  • MCPが提供するサービスをAIにアクセスできるため、AIの運用が広めている
  • 例:国土交通データプラット​フォームのMCP

https://www.mlit-data.jp/#/Page?id=apps_mcp

AIエージェント

  • ユーザーから与えられた指示に基づき、自律的に問題解決やタスク実行を行うソフトウェア(IPAより引用)
  • 従来型の生成AIと異なる点は、内容の作成のみではなく、自律的にタスクを完成することです。例えば、チケットを基づき、コードの実装、修正、テスト、プルリクエスト出すの一連作業を行います。
  • 例:Microsoft / GitHub「Copilot Coding Agent」

https://www.ipa.go.jp/digital/kaihatsu/sds-column/ai-agent.html

AIエージェントとLLMの比較

例えば、明日の発表会で使うTeamsのURLを作成して、この告知をXに投稿するタスク例にして

LLMを使用する場合:
ユーザー:発表会の会議URLを作る
LLM:MCPサーバー経由で会議のURLを作成する(Teams)
ユーザー:告知文を作る
LLM:告知文生成する
ユーザー:Xに投稿する
LLM:MCPサーバー経由でXに投稿する

AIエージェントの場合:
ユーザー:明日の発表会で使うTeamsのURLを作成して、この告知をXに投稿する
AIエージェント:MCPサーバーで、発表会の会議URLを作る(Teams)
AIエージェント:LLMで告知文を作成する
AIエージェント:MCPサーバーで、Xに投稿する

AIエージェントの方は、ユーザーの一言で、裏の処理は全部AIエージェントに任せた

A2A(Agent to Agent)

  • AIエージェント間連携
  • AIエージェント同士が情報をやり取りのため作った共通のルール

具体的な例で理解する

ユーズケース

ユーザーがslackで「明日Teamsで発表会を行う。発表会の告知をXに投稿する」の指示を出す

従来型システム

1 Slack Bot(人間が書いたコード)が受け取る
Slack API用に書かれた専用コードで指示を受け取る
事前にルールを決めたif/elseで指示の内容を判断する
Teams側のAPIを叩く

2 Teams API を手書きコードで呼び出す
OAuth認証処理
Graph APIのエンドポイントを叩く
JSONを手動で構築
レスポンスを解析して URL を抽出
X APIを呼び出す

3 X APIを手動で呼び出す
token管理
下書き投稿のJSON生成
エラー時の再試行などもコードで実装

AIを使用する

1 Slackエージェント(LLM)が意図を理解
LLMが自然言語から以下を自動推定:

  • 発表会用のteams会議URLが必要
  • 告知文が必要
  • Xに投稿が必要

2 Slackエージェント → MCP経由でTeamsエージェントに依頼
SlackエージェントがLLMで判断:「Teamsエージェントに会議URLを作らせよう」

send_message(to="Teams api", text="明日発表会の会議URLを作って")

3 Teamsエージェントが MCP を使って Teams API を実行

create_event(title="発表会", date="明日")

統一形式の指示でTeams APIが実行され、会議URLが返る

4 Slackエージェント → Xエージェントに依頼
「このURLを使って発表会告知文を生成し、投稿して」

send_message(to="X api", text="このURLを使って発表会告知文を生成し、投稿して")

5 XエージェントがMCPを使い、X APIを実行

create_post(text="発表会は〜、URLはこちら")

指示でX APIが実行され、投稿する

エージェント同士(A2A)が自律的に協調しタスク完了

Slackエージェント
 → Teamsエージェント
 → Xエージェント
の流れはLLM同士が会話して自動で決める

GitHubで編集を提案

Discussion