エージェントループとは?ロボットとサンドイッチと、もう一度やってみる技術
見る、選ぶ、やる、確かめる。エージェントループを楽しく図解するガイドです。5歳の子にもわかるくらいシンプルに、でも大人向けの話もたっぷりと。
Pip という名前の小さなロボットを思い浮かべてください。
あなたは言います。「ジャムサンドを作ってくれる?」
Pip はテーブルを見ます。パンがあります。ジャムがあります。そして、なぜかピーナッツバターがやたらとついたスプーンがあります。
Pip はいきなり「サンドイッチ完成!」と宣言するでしょうか?
いいえ。それはただの演説で、サンドイッチではありません。
Pip は見て、小さな一歩を選び、それをやって、何が起きたかを確かめる必要があります。そうして初めて、次に何をするかを決められるのです。
この繰り返しのパターンがエージェントループです。
考え方のすべてを、たった4つの言葉で
見る。選ぶ。やる。確かめる。
- 見る:いま何が起きている?
- 選ぶ:次にやると役に立つことは何?
- やる:それをやる。
- 確かめる:実際には何が起きた?もう終わった?
まだ終わっていなければ、新しい情報を持ってもう一周します。
ループとは、何かが繰り返されることです。エージェントとは、与えられたツールと権限を使って、目標に向かって行動できるシステムのことです。
合わせると:エージェントループは、お手伝い役が行動し、結果を見て、次に何をするかを決められるようにする仕組みです。
とても真剣なサンドイッチ作戦に戻りましょう
Pip の最初の小さな一歩は、ジャムの瓶を開けることです。
やる:フタをひねる。
確かめる:フタはびくともしない。
ここが面白いところです。瓶を開けるのが計画だったからといって、Pip は瓶が開いたふりをしてはいけません。
そして、太陽がレーズンになるまでひたすらひねり続けてもいけません。
Pip は許可されている別の方法を試すこともできますし、「このフタ、手伝ってもらえる?」と頼むこともできます。助けを求めるのは立派な成果です——ロボットサイズの失敗なんかではありません。
瓶が開いたら、Pip はジャムを塗り、パンを重ね、あなたのお願いと照らし合わせて結果を確かめます。
パンは2枚?間にジャム?お皿の上?完璧です。
食パン1斤の上に瓶がのっている?独創的ですね。でもサンドイッチではありません。
AI はどこで出てくるの?
キッチンの話はたとえ話です。ソフトウェアのエージェントのツールは、パンを扱う代わりに、ファイルを読んだり、ページを検索したり、ドキュメントを編集したり、テストを実行したりします。
AI エージェントでは、言語モデルが次の一歩を選ぶ手助けをします。周りのソフトウェアが許可されたツール呼び出しを実行し、その結果を返します。するとモデルは、その情報を踏まえてもう一度ターンを得ます。
3つの異なる役割として考えてみましょう:
| 要素 | Pip の空想キッチン | ソフトウェア版 |
|---|---|---|
| 目標 | ジャムサンドを作る | 壊れたリンクを直す |
| 判断役 | 次の小さな一歩を選ぶ | モデルがアクションを提案する |
| ツール | 手とスプーン | ファイルリーダー、エディタ、ブラウザ |
| 観察 | フタはまだ閉まったまま | ツールがエラーや結果を返す |
| 作業メモ | 瓶は開いた。パンも準備OK | 関連するタスク履歴と結果 |
| 完了チェック | 頼まれたサンドイッチができた | 目的のリンクが動くことを確認する |
モデルがアクションを提案することと、そのアクションが実際に起きることは同じではありません。そして、アクションが起きたからといって、目標が達成されたとは限りません。
「ファイルを保存した」と「正しいファイルを正しい内容で保存した」は別の主張です。その違いが効いてくるのが、確認のステップです。
ちょっとした冒険:消えた画像
ソフトウェアのお手伝い役に、Webページで表示されない画像を直してほしいと頼んだとしましょう。
役に立つループは、たとえばこんな感じです:
- 見る:ページを読んで、画像のパスを特定する。
- 選ぶ:参照されている画像が存在するか確認する。
- やる:関連するファイルを調べる。
- 確かめる:ページは
cat.pngを要求しているのに、ファイル名はcat.jpgだった。 - もう一周:参照を修正し、ページが目的の画像を読み込むか確認する。
- 止まる:行った変更と、実際に行った確認を報告する。
それでも画像が表示されないなら、「ページを編集しました」では不十分です。結果が次の一歩を導くべきなのです。
これをループたらしめているものに注目してください:次のアクションは、前のアクションで明らかになったことに左右されます。同じことをただ繰り返しているわけではありません。
一周するたびに良くなる?
いいえ。動きが多いからといって、進歩が多いとは限りません。
Pip のサンドイッチ作戦について、作り話のグラフを用意しました。マイルストーンを1つ達成するごとに1点をあげます:瓶を開ける、ジャムを塗る、サンドイッチを組み立てる、そして最後にお願いどおりか確かめる。
平らな部分が大切です。何も変わっていないなら、お手伝い役はそれに気づく必要があります——何回挑戦したかを自慢するのではなく。
大人向けには、こんな問いが役に立ちます:何か学べた?状態は変わった?同じ失敗を繰り返していない?もう一回試すだけのコストをかける価値はある?
それ以外のみんなへ:ドアに「引く」と書いてあるなら、もっと強く押すのは作戦とは言えません。
お手伝い役には、地球まるごとではなく柵を
まともなエージェント設計には、「繰り返し」ボタン以上のものが必要です。
- はっきりしたゴールライン。「ペンギンの写真を3枚見つけて」のほうが、「全部すごくして」よりずっと確認しやすい。
- 適切な権限。メールの下書きができるからといって、送信まで許されるとは限らない。
- 止めるための予算。試行回数、時間、支出に上限を設ける。行き詰まったタスクを終わりのないタスクにしてはいけない。
- 聞く手段。情報が足りない、アクセス権がない、重大な選択がある——そんなときは人の出番かもしれない。
- 正直な確認。目標に合った証拠を使う。「ツールが返ってきた」を「すべて正しい」にすり替えない。
これらは設計の原則であって、すべての製品が実装しているという約束ではありません。ループがあるだけで、システムが魔法のように安全で信頼できるものになるわけではないのです。
Pip のキッチンで言えば:サンドイッチを作る。ジャムをトラック1台分注文しない。大人用の家電を使う前には聞く。
エージェントループはスクリプトと同じ?
必ずしもそうではありません——でも、その境界は「スクリプトはおバカ、エージェントは賢い」ではありません。スクリプトだって、ループも条件分岐も優れた確認処理も持てます。
注目すべき違いは、次のアクションがどう選ばれるかです。固定されたワークフローでは、開発者があらかじめ道筋を敷いています。モデル駆動のエージェントループでは、モデルがタスクと最新の観察結果をもとに、使えるアクションの中から選べます。実際のシステムでは両方を組み合わせることもできます。
予測可能な仕事なら、小さなスクリプトがまさにうってつけかもしれません。正午にベルを鳴らすのに、哲学するロボットはいりません。
未知の障害がありそうなタスクなら、新しい証拠から次の一歩を選べることが役に立ちます。その柔軟さがあるからこそ、制限と検証が重要になるのです。
冷蔵庫に貼るマグネット版
エージェントループとは:
役に立つ一歩を試す。何が起きたかを見る。わかったことを活かす。意味がある間だけ繰り返す。
魔法ではありません。保証でもありません。「永遠に続ける」ことでもありません。
目標、行動、そして実際の結果をつなぐための方法です——何度も何度も、お手伝い役がやり終えるか、止まるべきときが来るまで。
Pip なら、もっとシンプルに説明するでしょう:
「見る。やってみる。確かめる。そして、サンドイッチができるまでサンドイッチとは言わない。」