コンテンツにスキップ

9 AI Agent とエージェントシステム

AI Agent システムメインビジュアル

第 8 章では、モデルが文書に基づいて答えられるようにしました。第 9 章では、システムが目標に向かって行動するようにします。次の手を計画し、ツールを呼び、観察を読み、方針を調整し、安全に止まり、人がレビューできる trace を残します。

多 Agent フレームワークから始める必要はありません。まず、すべてのステップを見せられる小さな Agent を作ります。

ここまでに LLM 回答ループと RAG 証拠ループを作りました。この章では制御された行動を加えます。システムが次の手を決め、許可されたツールを呼び、観察を読み、状態を更新し、再生可能な trace とともに安全に停止します。

これはメインルート最後の中核アプリケーション層です。この章の後、10-12 章は製品特化になり、第13章ではオープンソースモデルのランタイム所有を扱います。Vision、NLP、Multimodal、自前配置の LLM は、同じ証拠、ツール、trace、安全習慣へ接続できます。

Agent 実行ループ

Agent は「ツール付きチャットボット」ではなく、制御された実行ループです。

部分やさしい意味必ず制御すること
目標Agent が達成したいこと範囲、成功基準、停止条件
状態(State)今分かっていること現在の入力、過去の観察、残り手順
計画(Plan)次に試すこと最大ステップ、代替経路、人への引き継ぎ
ツール(Tool)検索、ファイル読み取り、API 呼び出し、コード実行などスキーマ、検証、ホワイトリスト、リスクレベル
観察ツールが返した結果エラー処理、再試行ルール、信頼境界
記憶(Memory)ステップ間・実行間で残す情報短期状態と長期好みの境界
追跡記録(トレース)実行を再生できる記録目標、行動、引数、観察、コスト、最終結果

多 Agent の前に、単一 Agent を追跡可能にします。まず中核の単一 Agent ルート 9.1 -> 9.2 -> 9.3 -> 9.4 -> 9.8 -> 9.10 を進みます。MCP、フレームワーク、多 Agent、配置運用は、単一 Agent ループが安定してから学ぶ高度な章です。

手順読む内容手を動かすこと残す証拠
9.1Agent 基礎と構造目標、状態、計画、ツール、観察、記憶を説明する構成スケッチ
9.2推論と計画同じタスクで ReAct と Plan-and-Execute を比べるステップ追跡
9.3ツール呼び出しパラメータとエラーを持つツールを1~2個定義するtools_schema.md
9.4記憶現在状態と長期記憶を分ける記憶境界メモ
9.8評価と安全出力を採点し、危険な行動を止め、追跡記録を確認する追跡ログ、安全ブロック、評価ケース
9.10ステージプロジェクト9.10.5 実践:追跡可能な単一 Agent アシスタントを作る を動かすagent_traces.jsonl、安全境界、評価ケース
9.5MCP and protocolsMCP と agent handoff contract を、tools、data sources、peer agents の接続方法として理解するcapability card と接続メモ
9.6-9.7フレームワークと多 Agent単一 Agent ループが安定してから学ぶフレームワーク選択メモ
9.9配置と運用中核プロジェクトが動いてから runtime、recovery、cost、本番確認を足すリリースチェックリストと rollback メモ

必修コア

まず単一 Agent ループ、ツールスキーマ、ホワイトリスト、最大ステップ、state 境界、memory 境界、トレースログ、安全ブロック、評価ケースを学びます。これは単なるデモではなく、レビューできる Agent の最小スキルです。

任意の拡張

単一 Agent ループが安定した後で、MCP、フレームワーク比較、多 Agent 協調、配置運用、コスト最適化に戻ります。統合や規模が必要になったときに足す内容です。

深掘り課題

同じタスクを ワークフロー、RAG フロー、関数呼び出し、Agent トレース として比較し、最も単純で安全な設計を説明します。流行ではなく意図を持って Agent を使うためです。

Fast pass: 追跡可能な Agent loop を1つ作り、unsafe tool を1つ block します。agent_traces.jsonl と短い trace explanation を残します。

Standard pass: 中核ルート 9.1 -> 9.2 -> 9.3 -> 9.4 -> 9.8 -> 9.10 を完了します。tools_schema.mdsafety_boundary.md、eval cases、failure trace を残します。

Deep pass: 単一 Agent loop が動いてから、MCP、framework comparison、deployment readiness、multi-agent coordination のいずれかを追加します。workflow、RAG、function calling より Agent が安全または有用な理由を書く design memo を残します。

強い第 9 章の成果は control を証明します。Agent が何を許可され、何を許可されず、どう止まり、reviewer がどう trace を replay できるかを示します。

最初に動かすループ:トレース を表示する

Section titled “最初に動かすループ:トレース を表示する”

このオフラインスクリプトは LLM に依存しません。学ぶのは工程習慣です。すべての action は再生可能であるべきです。あとで固定 plan をモデル生成の計画に置き換えても、trace 形式は残します。

ch09_agent_trace.py を作成し、Python 3.10 以降で実行してください。

import json
def search_docs(tool_input: dict) -> str:
return "Found notes about RAGOps, AgentOps, evaluation sets, and trace logs."
def make_todo(tool_input: dict) -> str:
topic = tool_input["topic"]
return f"1) Review {topic} notes; 2) add one eval case; 3) write failure notes."
TOOLS = {
"search_docs": {"fn": search_docs, "risk": "read_only"},
"make_todo": {"fn": make_todo, "risk": "draft_only"},
}
goal = "Prepare a short RAG review plan."
plan = [
{
"thought": "Find relevant course materials before making a plan.",
"action": "search_docs",
"input": {"query": "RAGOps AgentOps evaluation trace"},
},
{
"thought": "Turn the materials into a small review checklist.",
"action": "make_todo",
"input": {"topic": "RAG evaluation"},
},
]
trace = []
for step_number, step in enumerate(plan, start=1):
tool = TOOLS.get(step["action"])
if tool is None:
observation = "Blocked: tool is not whitelisted."
risk = "blocked"
else:
observation = tool["fn"](step["input"])
risk = tool["risk"]
trace.append(
{
"step": step_number,
"goal": goal,
"thought": step["thought"],
"action": step["action"],
"input": step["input"],
"risk": risk,
"observation": observation,
}
)
for item in trace:
print(json.dumps(item, ensure_ascii=False))

期待される出力の先頭:

Terminal window
{"step": 1, "goal": "Prepare a short RAG review plan.", "thought": "Find relevant course materials before making a plan.", "action": "search_docs", ...
{"step": 2, "goal": "Prepare a short RAG review plan.", "thought": "Turn the materials into a small review checklist.", "action": "make_todo", ...

操作メモ: make_todo をホワイトリスト外の send_email などに変えてください。スクリプトはそれをブロックするはずです。これが安全境界の最小版です。

段階証明できること
最低合格1つの追跡記録を実行し、各目標、行動、入力、観察、結果を説明できる。
実務準備ツールスキーマ を定義し、ホワイトリスト外のツールをブロックし、最大ステップを設定し、失敗追跡を保存できる。
深い確認ワークフローの方が Agent より安全な場面と、危険な行動に人間承認を置く場所を判断できる。

Agent、ワークフロー、RAG、関数呼び出し の選び方

Section titled “Agent、ワークフロー、RAG、関数呼び出し の選び方”

Agent 境界選択図

Agent は強力ですが、常に最初の選択肢ではありません。

問題まず使うものAgent を使う目安
手順が固定で既知ワークフロー観察のたびに経路が変わる
私有情報や新情報が必要RAG検索が大きな目標の一部にすぎない
1回の構造化された行動で十分関数呼び出し複数のツール呼び出しと状態更新が必要
リスクが高い人間確認付きワークフローAgent は下書きし、高リスク行動は人が確認
探索に計画、ツール、記憶、回復が必要Agentすべてのステップを記録し、安全に止められる
  • 単一 Agent が安定する前に多 Agent を作る。
  • スキーマ、検証、有用なエラーメッセージなしでツールを呼ぶ。
  • 停止条件がなく、ループとコスト増加を招く。
  • 高リスクツールを人間確認なしで動かす。
  • 成功デモだけ見せ、失敗追跡を残さない。
  • 記憶を置き場にしてしまい、現在状態、長期好み、タスク履歴を分けない。

この章を出る前に、次をできるようにしてください。

  • 目標、状態、計画、ツール、観察、記憶、追跡記録、ガードレールを説明できる。
  • 追跡スクリプトを動かし、ホワイトリスト外ツールをブロックできる。
  • agent_traces.jsonltools_schema.mdprotocol_card.mdsafety_boundary.mdfailure_cases.md を保存できる。
  • タスクにワークフロー、RAG、関数呼び出し、Agent のどれが合うか判断できる。
  • 第 9 章フルワークショップを動かし、評価タスク1つと安全ブロック例1つを追加できる。

印刷用チェックリストは 9.0 学習チェックリスト を使ってください。プロジェクトから始めたい場合は 9.10.5 実践:追跡可能な単一 Agent アシスタントを作る へ進みます。

このページを終えたら、この証拠カードを残します。

中核ルート
9.1 9.2 9.3 9.4 9.8 9.10 を先に
エージェントループ
目標 計画 ツール/アクション 観測 記憶 評価
追跡規則
すべての操作は 入力、出力、判断、エラー記録 を残すべき
Protocol Rule
tool discovery、authorization、agent handoff は capability card に分ける
安全ルール
権限、ツール境界、sandbox guardrails、ロールバックは設計の一部
段階分割
単一 Agent のループが安定してから MCP/フレームワーク/マルチ Agent/デプロイへ進む