AIエージェント
AIエージェントとは
AIエージェントは、[[生成AI・LLM]] に道具(ツール)を持たせて、目標に向かって自律的に動かす仕組みです。1回の質問に1回答えるチャットと違い、エージェントは「考える → 行動する → 結果を見る → また考える」のループを回します。
目標: 「明日の東京の天気に合わせて服装を提案して」
考える: まず天気を調べる必要がある
行動する: 天気APIを呼び出す(ツール利用)
結果を見る: 「明日は雨、気温18度」
考える: この条件で服装を組み立てよう
回答する: 「撥水ジャケットと…」
コーディング支援の Claude Code や各種の自動化アシスタントは、この構造で動いています。
ツール利用 — エージェントの手足
LLM自体は文章を書くことしかできません。エージェントは、あらかじめ定義されたツールを呼び出すことで外の世界に働きかけます。
- ツールの実体は関数や [[REST API]] の呼び出し(検索・ファイル操作・コマンド実行など)
- LLMは「どのツールを・どんな引数で呼ぶか」を [[JSON]] で出力し、実行結果を受け取って次を判断する
- どんなツールを持たせるかの定義と、エージェントの役割・制約を決めるシステムプロンプトの設計([[プロンプトエンジニアリング]])が構築の中核
初学者向けポイント
- チャットとの違いはループと道具: 一問一答ではなく、複数ステップの作業を自分で分解して進める
- 暴走への備えが必須: 削除・送信など取り返しのつかない操作は確認を挟む、実行回数や権限に上限を設ける([[最小権限の原則]])— 人間の監督(Human in the Loop)が前提
- 知識が必要な場面では [[RAG(検索拡張生成)]] を「検索ツール」としてエージェントに持たせる構成が定番
- 結果の信頼性はLLM由来の限界([[ハルシネーション]])を引き継ぐ。重要な判断は人間が検証する
- 動かしている間に賢くなるわけではない: [[強化学習]] のエージェントは報酬から行動方針そのものを学習しますが、LLMエージェントは学習済みモデルを推論のループで回しているだけで、実行中にモデルが更新されることはありません。改善はプロンプト・ツール・ループ制御の設計で行います
設計の勘所
| 要素 | 決めること |
|---|---|
| システムプロンプト | 役割・口調・してはいけないこと |
| ツールセット | 何ができるか(=できないことの境界) |
| ループ制御 | 最大試行回数・停止条件・エラー時の振る舞い |
| 権限とガード | 危険な操作の確認・実行環境の分離 |
「賢さ」より「安全に失敗できる設計」がエージェント実用化の鍵です。
関連技術とのつながり
- [[生成AI・LLM]] — 判断エンジンとしての頭脳
- [[プロンプトエンジニアリング]] — 役割・制約・ツール説明の設計
- [[RAG(検索拡張生成)]] — エージェントに知識検索の道具を持たせる定番構成
- [[REST API]] / [[JSON]] — ツール呼び出しの実体と入出力形式
- [[プロンプトインジェクション]] — 外部データに紛れた指示でツールを悪用される攻撃
Q: AIエージェントがチャット型のLLM利用と最も違う点はどれ?
- [ ] より長い文章を生成できる
- [x] ツールを使いながら「考える→行動する→結果を見る」のループを自律的に回す
- [ ] 学習データが新しい
解説: 一問一答ではなく、目標に向かって複数ステップを自分で分解・実行するのがエージェントです。
Q: エージェントのツール利用の仕組みとして正しいのはどれ?
- [x] LLMが呼び出すツールと引数をJSONで出力し、実行結果を受け取って次を判断する
- [ ] LLMが直接OSのメモリを書き換えて操作する
- [ ] ツールの結果を人間が毎回手入力で貼り付ける
解説: 「どの道具をどう使うか」の指示を構造化データで出し、実行は外側の仕組みが担います。
Q: エージェント設計で「賢さ」と並んで重要とされているのはどれ?
- [ ] 応答をできるだけ長くすること
- [ ] ツールを無制限に与えること
- [x] 危険な操作への確認や実行上限など、安全に失敗できる設計
解説: 自律的に動くからこそ、暴走への備え(確認・上限・権限分離)が実用化の鍵になります。