01
チャットボットとエージェントはどこが違う?
ネットショップのサポートチャットに、お客さまが「昨日買ったスニーカーのサイズが合いません。返金してください」と書き込みました。下の図で、チャットボットとエージェントを切り替えてみましょう。
- 1
- まず注文を探す
- 2
- 注文を検索(昨日)
- 3
- #1042 スニーカー1足
- 4
- 返品期間内か確認
- 5
- 返品ポリシーを検索(#1042)
- 6
- 7日以内なら返品無料
- 7
- 期間内なので返金手続きへ
- 8
- 返金を申請(#1042)
- 9
- 受付完了、3日以内に返金
- 10
- 返金の手続きをしました。3日以内に返金されます。
依頼:「昨日買ったスニーカーのサイズが合いません。返金してください」
3周しながら注文を探し、返品期間を確かめ、実際に返金を申請してから答えました。各ステップで何をするかは、前のステップの結果を見てモデルが決めています。
チャットボットは質問を受け取り、答えを1回書いて終わりです。エージェントは目標を受け取り、その目標を達成するまで動き続けます。何をするか考え、ツールを使って実際に行動し、結果を見て、また考える。これをくり返します。ポイントは、どのツールをどの順番で使うかを人があらかじめ決めておくのではなく、モデルがその場その場で決めることです。
エージェントを構成するもの
判断を担うモデル(LLM)、仕事の内容と守るべきルールを書いた指示、行動に使うツール、これまでの出来事をためておくメモリ、そして目標を達成するまで回り続ける実行ループ。
どこまで自分でやるか
聞かれたことに答えるだけのもの、決まった仕事を任されて処理するもの、目標だけを受け取って計画から実行まで自分でこなすものまで、自律性の度合いはさまざまです。
| 種類 | すること | 例 |
|---|---|---|
| 質問応答型 | 聞かれたら情報を探して答える | 社内規程の案内 |
| タスク型 | 決まった仕事を任され、ツールで処理する | 配送先の変更、会議室の予約 |
| 自律型 | 目標を受け取り、計画・実行・確認まで自分で行う | 出張準備をまるごと、アラートを見て自分で対処 |
問題文にこんな表現があれば → これを選ぶ
- “自分で計画し、ツールを使ってタスクを最後までやり遂げる”AIエージェント
- “質問に答えるだけで、システムは変更しない”質問応答型(チャットボット)
- “決まった業務を任され、ツールで処理する”タスク型エージェント
- “目標を与えるだけで、計画から実行まで自分で行う”自律型エージェント
エージェントの力はツールから生まれます。でも、LLMにできるのは文章を書くことだけです。それなのに、どうやって注文システムを呼び出せるのでしょうか。
02
ツールの使い方(Function Calling)
LLMは文章を書くだけで、ほかのシステムに自分で接続することはできません。そこでアプリが、LLMに使えるツールの一覧と説明をいっしょに渡します。ツールの名前、何をするツールか、どんな値を受け取るかを書いた一覧です。
ツール: order_lookup説明: お客さまの注文の状態と配送場所を返すパラメータ: order_id(文字列、必須)
LLMは、答えるのにこのツールが必要だと判断すると、すぐには答えません。代わりに「order_lookup を order_id 1042 で呼んでほしい」という依頼を、決まった形式で返します。実際に実行するのはアプリで、その結果をLLMに送り返すと、LLMが結果をもとに答えを書きます。このしくみをFunction Calling(関数呼び出し)、またはツール呼び出しといいます。下の図で、メッセージをひとつずつ進めてみましょう。
- 1. ユーザー→アプリ(実行役)
- 注文はいまどこですか?
- 2. アプリ(実行役)→LLM
- 質問 + 使えるツール一覧
- 3. LLM→アプリ(実行役)
- 注文検索(1042)の呼び出し依頼
紫 = LLMのツール呼び出し依頼 ・ 黄緑 = アプリが実際にツールを実行
LLMはツールを自分では実行しません。「このツールをこの値で呼んでほしい」という依頼を、決まった形式で返すだけです。
モデルがツールを選ぶ手がかりは、ツールの説明だけです。だから、何のためのツールなのかをはっきり書いておきましょう。また、アプリはLLMが依頼してきたツールと値をそのまま信用してはいけません。許可されたツールか、値が正しいかを確認してから実行します。
問題文にこんな表現があれば → これを選ぶ
- “LLMが外部APIを使えるように、名前・説明・パラメータを定義する”Function Calling(ツール定義)
- “LLMがツールを直接実行する”誤り — 実行するのはアプリ
- “ツールの結果を受け取って最終的な答えを作る”LLMの役割
- “モデルが的外れなツールを選んでしまう”ツールの説明をはっきり書き直す
ツールを1回呼ぶのは、まだ入り口です。1章の返金のように、いくつものツールを順番に、結果に応じて使い分けなければならないとき、エージェントはどう動くのでしょうか。
広告
03
考えて、行動して、結果を見る(ReActと計画)
1章のエージェントは、思考 → 行動 → 観察をくり返していました。考えたことを文章に書き出し(推論、Reasoning)、それにもとづいてツールを使い(行動、Acting)、結果を次の思考に反映する。このやり方をReActと呼びます。先に考えを書かせると次の行動をうまく選べるようになり、結果を見てから考えるので、間違った方向に進んでもすぐに軌道修正できます。
仕事が大きいときは、まずやることを小さなタスクに分けます。これを計画(プランニング)といいます。下の図は、出張の準備を任されたエージェントです。一度最後まで進めたら、ホテル予約ツールを失敗させて、もう一度進めてみましょう。
- 予定を確認
- 待機中
- 新幹線を予約
- 待機中
- ホテルを予約
- 待機中
- 旅程表を送る
- 待機中
大きな目標を受け取ったエージェントが、タスクに分けてひとつずつ片づける
目標を受け取ると、まずタスクを4つに分けました。これを計画(プランニング)といいます。
決まった手順をなぞるだけの自動化は、途中で想定外の結果が返ってくると止まってしまいます。エージェントは「満室」という観察結果を見て計画を直し、別のホテルを探しました。このように、結果を見て次の行動を変えられることこそ、エージェントを使う理由です。
逆に、エージェントが終わらずに同じ行動をくり返してしまうこともあります。そのため、最大で何ステップまで回すか、コストがいくらを超えたら止めるか、といった上限を決めておきます。
問題文にこんな表現があれば → これを選ぶ
- “推論と行動を交互に行い、結果を反映する”ReAct
- “大きな目標を小さなタスクに分ける”計画(タスク分解)
- “ツールの結果を見て、次のステップを変える”観察にもとづく再計画
- “同じ行動を延々とくり返す”最大ステップ数・コストの上限を設ける
エージェントが長く働いたり、同じユーザーと何度もやり取りしたりすると、前回わかったことを覚えておく必要が出てきます。
Pro限定
ここまでは無料で読めます
残りの5章はPro会員向けです。各章に3D図解と「問題文にこんな表現があれば」の整理が続き、最後の章では実際に解いて確かめられます。
- 04メモリ
- 05マルチエージェント
- 06MCPとA2A
- 07安全対策
- 08エージェントが向いている仕事
PasslyExam
概念をつかんだら、次は試験形式の問題で確かめましょう
PasslyExamは、各資格の出題範囲に合わせて作成したオリジナルの練習問題・解説・本番形式の模擬試験を提供しています。正解の選択肢がなぜ正しく、似た選択肢がなぜ誤りなのかまで解説します。登録すると毎日無料で練習問題に取り組めます。