AI Agent
AIエージェントは、環境を観測し、アクションを選択し、ツールを通じて実行するループをタスク完了まで繰り返して目標を達成します。エージェントの仕組みを解説します。
AIエージェントとは、環境を繰り返し観察し、次のステップを決定して実行し、その結果を使って次の行動を選ぶことで、目標を追求するシステムです。古典的な教科書人工知能:現代的アプローチでは、エージェントを、センサーを通じて環境を知覚し、アクチュエーターを通じて環境に働きかけるものと定義しています。この定義は、サーモスタット、ゲームプログラム、ロボットにも当てはまります。2023年以降、この用語は主に大規模言語モデル(LLM)を基盤とするエージェントを指します。モデルは目標を読み取り、ウェブ検索、コード実行、業務APIなどのツールを呼び出し、各ツールの結果を読み取り、タスクが完了したと判断するまで処理を続けます。リポジトリ全体を編集してテストするコーディングアシスタント、数十の情報源を検索して引用するリサーチアシスタント、スクリーンショットやクリックを通じてデスクトップを操作するコンピューター操作エージェントは、すべてこのように動作します。
AIエージェントの仕組み#
LLMエージェントはループの中で動作します。モデルは目標、これまでの会話、利用可能なツールの一覧を受け取り、最終回答を書くか、ツール呼び出しを出力します。エージェントハーネスと呼ばれる周辺プログラムは、アクションが許可されているか確認して実行し、その結果を新たな観察情報としてモデルのコンテキストに追加します。モデルはその情報を踏まえて次のステップを決定します。ReActプロンプティングは、文章による推論とアクションを交互に行うパターンを確立しました。現在の推論モデルは、強化学習でトレーニングされ、長いツール呼び出しの連鎖にわたってこのように動作します。
ほとんどのエージェントは、同じ4つの構成要素を組み合わせています。汎用LLMまたは視覚言語モデルであるモデルが各ステップを決定します。ツールは、名前、目的、引数用のJSONスキーマで記述される関数です。モデルコンテキストプロトコル(MCP)を使うと、エージェントは他のチームが公開するツールに接続できます。メモリは、現在のタスクを保持するコンテキストウィンドウと、エージェントが過去の情報を検索するファイル、データベース、ベクトルデータベースにまたがります。エージェントスキルは、タスクで必要になったときだけ読み込む再利用可能な指示をまとめたものです。プランニングでは目標をステップに分解して完了状況を追跡し、ステップが失敗した場合は計画を見直します。
AIエージェントとモデルおよびワークフロー#
Anthropicの効果的なエージェントの構築ガイドで広く使われている定義では、LLMが自身の処理とツールの使用を指示するシステムを「エージェント」と呼びます。
- AIモデル:モデルは、画像から検出された物体の一覧を得るように、1つの入力を1つの出力に対応付けます。エージェントは、多くの場合、モデルを何度も呼び出し、その出力を使って次の行動を決定します。
- エージェント型ワークフロー:開発者が事前に定義したコードパスに従って、LLMの呼び出しとツールを実行します。たとえば、抽出、分類、要約の順に処理します。エージェントでは、タスクに必要なステップ数と各ステップで使うツールをモデルが決定します。
- チャットボット:チャットボットはメッセージに1つずつ回答します。エージェントはメッセージの合間にアクションを実行し、人が介在せずに数分から数時間動作できます。
- マルチエージェントシステム:役割とコンテキストが個別に設定された複数のエージェントが、作業を割り当てて結果を統合するオーケストレーション層のもとで、1つのタスクに協力して取り組みます。
AIエージェントの種類#
RussellとNorvigによる教科書の分類体系では、世界についてどれほど推論するかに基づいてエージェントを分類します。
- 単純反射エージェント:サーモスタットや、人の動きを検知して点灯する照明のように、現在の入力に対して固定された条件・行動ルールで反応します。
- モデルベース反射エージェント:すでに見た人物など、現在は観察できない世界の状態を追跡する内部状態を保持します。
- 目標ベースエージェント:経路プランナーのように、明示された目標に到達するアクションの系列を探索または計画します。
- 効用ベースエージェント:効用スコアを使って結果を選び、速度、コスト、リスクのバランスを取ります。
- 学習エージェント:通常は報酬を通じて、経験から動作を改善します。
LLMエージェントは、テキスト内で計画を立てる目標ベースエージェントです。また、ツール使用タスクで強化学習を用いてトレーニングされたエージェントは、学習エージェントでもあります。
シンプルなビジョンエージェントの構築#
カメラベースのエージェントは、検出モデルを通じて認識し、コードを通じて動作します。このモデルベース反射エージェントでは、Ultralytics YOLO26のトラッキングにより、動画フレームをまたいで各人物に永続的なIDが付与されます。エージェントはすでに対応したIDを保存するため、フレームごとに1回ではなく、人物ごとに1回だけアラートが発生します。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
video = "https://github.com/ultralytics/assets/releases/download/v0.0.0/decelera_portrait_min.mov"
alerted = set() # The agent's memory of people it has already acted on
for frame, result in enumerate(model.track(video, stream=True, classes=[0])):
# Perceive: IDs of the people tracked in this frame
ids = set(result.boxes.id.int().tolist()) if result.boxes.is_track else set()
# Decide and act: alert once for each person not seen before
for track_id in sorted(ids - alerted):
print(f"Frame {frame}: person {track_id} entered, alert sent")
alerted |= ids出力ログには新たに検出された人物ごとに1行が記録され、状態を持つことの違いが示されます。モデルだけでは、すべてのフレームで同じ人物を繰り返し報告します。
実際のアプリケーション#
- エージェント型コーディング:コーディングエージェントはリポジトリを読み取り、ファイルを編集してテストを実行し、変更がテストに合格するまで失敗を修正しながら反復します。
- 調査と分析: 調査エージェントは多数の検索を実行し、情報源を読み、出典を明記したレポートを作成します。多くの場合、質問を複数のサブエージェントに分担させます。
- 製造: 外観検査エージェントは、欠陥検出器を工場システムと連携させ、欠陥が集中した際にコンベヤーを停止し、欠陥を記録して、保守チケットを作成します。
- フィジカルAI: 倉庫や家庭で働くロボットは、カメラで周囲を認識し、物をつかむ動作や経路を計画して、モーターを介して動作します。この一連の処理を毎秒何度も繰り返します。
信頼性と安全性#
長いタスクではエラーが積み重なります。1つの誤ったステップが後続のすべてのステップを狂わせる可能性があるため、チームはエージェント評価ベンチマークと実行時のトレースを使って、エージェントをエンドツーエンドで測定します。Webページ、メール、ファイルを読むエージェントは、エージェントの誘導を試みるコンテンツ内に埋め込まれた指示であるプロンプトインジェクションに遭遇することがあります。そのため、ハーネスは各ツールの権限を制限し、コードをサンドボックス内で実行し、支払いや削除など取り消せない操作の前には人に確認を求めます。能力は急速に向上しています。METRの調査では、フロンティアエージェントが50%の信頼性で完了できるソフトウェアタスクの長さは、2019年から2025年初頭にかけて約7か月ごとに倍増していました。










