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] 危険な操作への確認や実行上限など、安全に失敗できる設計
解説: 自律的に動くからこそ、暴走への備え(確認・上限・権限分離)が実用化の鍵になります。