AI エージェントの可視化
エージェントは言語モデルを反復するループに組み込みます。モデルが行動を要求し、実行基盤が処理し、その結果をコンテキストへ戻します。モデルは結果を読んで次の行動を決めます。このアニメーション集では、ツール要求から結果までの経路と、ループの継続・終了を確認します。
言語モデル単体はテキストを生成します。実行基盤はツール要求を検索、計算、データベース照会などに変え、結果をモデルへ返します。ツール、ループ、ターン間の状態を組み合わせたものがエージェントです。各要素を個別に学んでから、その連携を見ます。
エージェントを構成する要素
- ツール:モデルが関数名と引数を含む構造化要求を出し、実行基盤が処理結果を返します。
- ループ:推論、行動、観察を繰り返し、結果から次の行動を決めます。計画を途中で調整できます。
- 記憶:ターンをまたぐ状態は、後のリクエストに含める必要があります。ウィンドウの容量に応じて情報を保持、要約、削除します。
- 根拠となる情報:検索した文書をコンテキストに入れ、モデルが提供された資料をもとに回答できるようにします。
ループを学ぶレッスン
| レッスン | 観察する内容 |
|---|---|
| エージェントループ | while ループがモデル呼び出しとツール実行を繰り返し、テキスト回答で終了する。実行基盤は実行上限を設定する |
| ツール呼び出し | モデルが構造化された関数呼び出しを要求し、実行結果を読む |
| MCP プラグイン | 外部ツールの説明をホストのツール群へ追加し、MCP クライアント経由で呼び出す。経路の欠落とツールの検索失敗を区別する |
| 権限管理 | allow、deny、ask の規則が実行の可否を決める |
| フック | イベントとツールのマッチャーが、実行前後のコールバックを決める |
| ReAct ループ | 推論、行動、観察をタスク完了まで繰り返す |
| コンテキストとメモリ | ターン間の情報がウィンドウを使う様子 |
| システムプロンプト組み立て | 実行時の情報源からシステムセクション、ツール定義、選択したコンテキストを作る。スキルやファイルの一覧だけでは本文を読んだことにならない |
| エラー回復 | 再試行の前に失敗を分類する。待つ、コンテキストを圧縮する、出力予算を上げる、互換の代替モデルへ切り替える、または停止してエラーを返す |
| サブエージェント | Task が新しい messages[] 上で子ループを開始し、探索過程を子コンテキストに残して結果カードを返す |
| 計画してから実行 | 完了条件を確認し、失敗したら修復して再検証する |
| タスクシステム | 目標を依存関係グラフに分け、tasks.json に保存し、中断の影響を受けたタスクから再開する |
| バックグラウンドタスク | 遅いコマンドを独立した shell で動かし、エージェントは別の作業を進め、ターン境界で完了通知を受け取る |
| エージェントチーム | インターフェースの取り決めの更新を別コンテキストの受信箱へ送り、API と UI の連携を検証する |
| RAG | 関連文書を検索してプロンプトに入れる |
学習の順序
最初はエージェントループです。モデルを呼び出し、要求されたツールを実行し、モデルがテキストを返すまで繰り返します。通常の継続・終了は stop_reason が示し、実行基盤は別に上限を設けます。次のツール呼び出しでは、一つの構造化要求、ツール実行、結果返却を追い、要求するモデルと実行するコードを区別します。
続いて権限管理とフックを学びます。権限の規則は実行前に許可、拒否、承認要求を選び、未回答の承認は待機したままです。フックはイベントとツールの条件に応じて呼び出されます。実行前の阻止、実行後の報告、条件不一致で呼び出されない場合を見比べます。ReAct ループは同じ流れをモデルの推論から見ます。行動を選び、結果を観察し、次の行動を修正します。
次はコンテキストとメモリです。モデルは呼び出し間でリクエストの状態を保持しないため、必要な情報を再送します。ウィンドウの容量は有限です。サブエージェントは新しいコンテキストで探索し、結論を返します。親が渡していないタスク情報を、自動的に受け取るわけではありません。計画してから実行では、作業と完了条件を明記し、「試した」と「完了を証拠で確認した」を区別します。
タスクシステムは作業を時間軸で分けます。依存関係グラフをディスクに保存し、依存先に応じて実行し、プロセスが中断されたら影響を受けたタスクから再開します。バックグラウンドタスクは遅いコマンドを独立して動かします。その間に進められるのは、コマンドの出力に依存しない作業です。完了通知は次のターン境界で届きます。エージェントチームは独立したコンテキストをつなぎます。タスクの完了状態だけでは API フィールドの変更は伝わりません。同僚エージェントのメッセージで変更を共有し、UI が応答を読めるか確認します。エラー回復は、失敗した一回のモデル呼び出しに戻ります。まず原因を分類し、その原因を直してから再試行するか、停止します。何も変えずに送り直しても、多くの場合は同じ結果になります。
最後の RAG では、質問に関連する文書を検索してプロンプトに入れ、モデルがそれをもとに回答します。回答に必要な根拠を補う仕組みです。
すべてのエージェントレッスン
ツール呼び出しの次に MCP プラグイン を開きます。同じツール要求で Notes 連携を切り替え、その後に存在しないノートを検索します。連携の解除ではホスト側の経路がなくなります。ノートが存在しない場合はツールに到達しますが、ツールがエラーを返します。
コンテキストとメモリの次に システムプロンプト組み立て を開きます。スキルの一覧と本文の読み込みを比較し、メモリの読み込みを有効にして、必要な私的情報が組み立てたリクエストに入るか確認します。
下のレッスンを選び、入力の変更やステップ実行で結果を確認できます。