Upgrade to Pro — share decks privately, control downloads, hide ads and more …

速習 AIエージェント入門

速習 AIエージェント入門

Avatar for LegalOn Technologies, Inc

LegalOn Technologies, Inc PRO

November 18, 2025
Tweet

More Decks by LegalOn Technologies, Inc

Transcript

  1. 💥 背景 AI エージェントはこの1 年の間で急速に進化 用語が混乱しており、認識のズレが発生しやすい プラクティスが固まっていない 新しい情報がどんどん出てくる どこから学べば良いかわからない キャッチアップにかかる労力が非常に大きい

    🎯 ゴール 基礎知識や用語を整理し、共通理解を得る AI エージェントやその開発に関連する、これまでの 大きな流れをキャッチアップする ⏩ 知識の土台を作り、AI エージェント開発を効率化す る
  2. AI 研究の4 つのアプローチ 人間のように 合理的に 思考 🧠 認知科学的アプローチ 人間の思考を模倣 ⚙️

    論理学的アプローチ 記号的・形式的推論 行動 🤖 チューリングテストアプローチ 人間らしく振る舞う 🎯 合理的エージェントアプローチ 目標達成のため合理的に行動 現在のAI 研究の主流は「合理的エージェント」アプローチ エージェントは人間らしさより目標達成を重視 内部処理は人間と異なってもOK
  3. エージェントアプリケーションの例 Computer Use (OpenAI Operator 、Claude ) Browser Use (Browser

    Use 、Browserbase ) Gemini Deep Research ChatGPT Deep Research Open Deep Research (OSS) Claude Code Cursor Devin OpenHands (OSS) ChatGPT (agent mode ) Claude Gemini Microsoft Copilot Manus 近年のチャットAI は、ツール実行を行う「エージェント」へと進化 してきている コンピュータ・ブラウザ操作 リサーチエージェント コーディングエージェント 汎用エージェント
  4. AI エージェントという用語について AI エージェント(AI Agents ) LLM を使う場合、とくにLLM エージェントと呼ぶこともある 単に「エージェント」というと、ソフトウェア以外(人など)もエージェントの範疇に入りうる

    以降では便宜上、AI エージェント、さらにいうとLLM エージェントを「エージェント(agents ) 」と呼ぶこ とにする エージェントとは何かを厳密に定義することは難しく、共通の理解はまだ存在しない ここではエージェントを、便宜的に以下のように捉えることにする: 環境と相互作用し、与えられた目標(ゴール)を達成しようとするAI
  5. エージェントの「定義」について エージェントの定義は数多く提案されている 自律的に動作し、環境を知覚し、長期間に渡って、変化に適応し、目標を作成して追求する [AIMA] センサーで環境を知覚し、アクチュエーターで環境に働きかける存在 [AIMA] 環境を感知し、目標を追求し、環境に対して作用する [Fanklin & Graesser

    1996] 「エージェント」を厳密に定義することは難しいし、生産的ではない グラデーションやグレーゾーンがあり、例外が存在する 例:サーモスタットやエアコンは上記の定義に当てはまるがエージェントだろうか? また、製品マーケティングではエージェント的(=エージェンティック)ではない実装であっても「エー ジェント」と喧伝されることもある
  6. エージェンティック(agentic )な特性 Fanklin & Graesser 1996 による、エージェントの特性: 反応的である (reactive): 環境の変化に応じてタイムリーに行動する

    自律的である (autonomous) - 自身の行動を自らコントロールする 目標志向である (goal-oriented, proactive) - ただ反射的な反応をするだけではない 継続性がある (temporally continuous) - 1 回呼び出して終わりではなく、継続的に動作 社交性がある (communicative) - 他のエージェントとコミュニケーション 学習する、適応的である (learning, adaptive) - 過去の経験に基づいて行動を変える 柔軟である (flexible) - 行動が固定的ではない 特に最初の4 つは、全てのエージェントが持つべき特性である、としている その他の特性
  7. エージェントがもつべき能力 能力 概要 ツール利用 (tool use) 外部環境と相互作用するツールを呼び出し、知覚・行動する プロファイル (profile) エージェントに役割・ユーザーの好みなどを与え、振る舞いを最適化する

    計画 (planning) 目標(ゴール)を立て、それを分解して実行可能なサブタスクに落とし込む 内省 (reflection) 自らの出力やフィードバックを受けて方針を見直す 記憶 (memory) 短期や長期の情報を保持し、活用する
  8. ツールの例 Web 検索 (web search) Web ページ取得 (fetch) センサー情報の検知 (sensing)

    ブラウザ利用 (browser use) ファイル操作 (file I/O) メッセージ送信 (messaging) メール・チャット等 数値計算 (calculation) コード実行 (code run) 現状、ツールはMCP サーバー、もしくはPython 関数として実装されることが多い
  9. エージェントの推論ループ 環境 エージェント ツール エージェント プログラム ツール 知覚 ⾏動 LLM

    停⽌ エージェントは、目標(ゴール)を与えられたとき、その目標を自律的に追求しようとする LLM を使って反復的・段階的・自律的にタスクをこなす
  10. エージェントの推論ループ 環境 エージェント ツール エージェント プログラム ツール 知覚 ⾏動 LLM

    停⽌ エージェントプログラムは、停止するまで以下のステップを繰り返し実行する: 思考(reason ) :LLM でツール選択、停止判定 行動(act ) :ツールを呼び出し、環境に影響を与える 知覚(perceive ) :環境からのフィードバックを受け取る
  11. 基本的なエージェントの内部構造 環境 エージェント ツール エージェント プログラム ツール 知覚 ⾏動 LLM

    プロファイル 計画 内省 記憶 エージェントは、必要に応じて以下のようなモジュー ルを持つ: モジュール 概要 プロファイル (profile ) LLM に役割を指示するプロンプト 計画(planner ) サブタスクの生成や、生成した計画の取 得 内省(reflection ) ツール実行結果を元に計画を修正 記憶(memory ) コンテキストの永続化を行い、必要にな ったら想起
  12. ReAct エージェント:シンプルな設計パターン 最も基本的なエージェントの設計パターン continue done start agent tools end ReAct

    = Reasoning + Act エージェントを素直に実装している 推論(Reasoning ) と 行動(Act ) を交互に繰り返 す どのツールを選択・どのように実行するかをLLM が 決定 タスクが完了したかどうかもLLM が判定する
  13. ワークフローとエージェントの違い ワークフロー(workflow ) 固定のロジックと依存関係を事前に定義 決められた条件で動作 挙動が予測可能で一貫性がある 柔軟な対応が難しい true false input

    output fail Gate A B エージェント(agents ) 事前に定義されたツールを利用 自律的に動作して目標を達成 推論ループを実行 柔軟性が高いが制御しづらい continue done input agent tools output
  14. マルチエージェントシステム なぜマルチエージェントが必要か? 課題 LLM はlong context を扱えるようになったが、1 回のLLM 呼び出しではうまくいかないケースも コンテキスト劣化(Context

    Rot ) Lost in the Middle 、Attention Sink など たくさんのツールを1 つのエージェントに持たせると精度が下がる ツールが多すぎると使いこなせない マルチエージェントによる解決 複数の部分問題・ステップに分割し、それぞれのエージェントに役割を持たせて実行 専門のエージェントに少数のツールを持たせる
  15. 初歩的なマルチエージェントパターン Routing パターン(Hand-off ) ルーティング先のエージェントに委譲する 呼び出されたエージェントがユーザーに回答 input output output Agent

    A Agent B Router Supervisor パターン(Agent as Tools ) ツール実行としてエージェントを呼び出す 呼び出し側から見ると「自然言語で指示できるツ ール」 例えば、MCP 呼び出しでも実装可能 input output Agent A Agent B Supervisor Supervisor
  16. エージェント間の通信 ー A2A とMCP エージェント間の通信にはいくつかのパターンがある ツールとして呼び出す(Agent as Tools ) 関数呼び出し

    MCP 専用プロトコルで呼び出す A2A ACP (A2A に統合された) A2A は、AgentCard により、エージェントのdiscovery をサポート エージェントが異なるエージェントを「発見」できる 全体として非常に自律性の高いシステムにしたい場合に有効?
  17. 代表的なエージェント開発フレームワーク SDK OpenAI Agents SDK Google ADK (Agent Development Kit)

    Microsoft Agent Framework AutoGen とSemantic Kernel を統合 Amazon Bedrock Bedrock Agents Strands Agents Bedrock AgentCore LangChain & LangGraph Mastra CrewAI ノーコード・ローコード n8n Dify
  18. MCP (Model Context Protocol )の概要 ツール利用のための汎用的なプロトコル 「AI アプリケーションにとってのUSB-C 」 外部システム・DB

    を、エージェントと接続 2 種類の通信方式(Transports ) Streamable HTTP :リモート動作OK Stdio (標準入出力) :ローカルのみ MCP Architecture. https://modelcontextprotocol.io/specification/2025-06- 18/architecture#core-components
  19. MCP サーバーのAPI MCP サーバーはいくつかのAPI を持っている tools/list : どんなツールがあるかを提示 tools/call :

    ツールを呼び出して結果を取得 他にも色々あるが、基本はこの2 つを抑えておけば OK
  20. MCP サーバーの実装 SDK を用いることで MCP サーバーを簡単に開発でき る 言語によって仕様のサポート状況はまちまち TypeScript とPython

    の実装が比較的先行 TypeScript: MCP TypeScript SDK Python: FastMCP v2 Python での実装例(Streamable HTTP ) from fastmcp import FastMCP mcp = FastMCP(name="MyServer") @mcp.tool def greet(name: str) -> str: """Greet a user by name.""" return f"Hello, {name}!" if __name__ == "__main__": mcp.run(transport="http", host="127.0.0.1", port=9000)
  21. ツールの粒度 シンプルなツール群 プリミティブな操作1 つを1 つのツールとして定義・ 実装 ✅ ツール選択・操作をエージェントに任せるので柔 軟性が高い ⚠️

    ツールがたくさんあるとコンテキスト圧迫&ツ ール選択の精度が下がる 複雑な単一ツール ひとかたまりのワークフロー(ユースケース)を1 つ のツールとして定義・実装 ✅ 挙動の一貫性が高まる ⚠️ 丁寧なツール設計が必要で、工数がかかる
  22. ここまでのまとめ ツールの実装 MCP はエージェントとツールを接続するための汎用プロトコル MCP サーバーの重要なAPI tools/list tools/call MCP サーバーの実装には各言語のSDK

    を利用するとよい TypeScript 、Python など ツール粒度のトレードオフ シンプルなツール群 複雑な単一ツール エージェントのユースケースに応じて選択する
  23. チャットUI エージェントへの指示 基本は テキストフォーム として実装される 画像や文書ファイルなどを添付してコンテキスト に含める場合も トークンのストリーミング トークン生成をリアルタイム表示できるとUX が

    良い HTTP SSE (Server Sent Events ) やWebSocket で実装される エージェントの状態のサマリー表示 例: 「考え中… 」 「〜をしています」など トークン、エージェントの中間状態などの変化を イベントのストリーム として抽象化すると実装 しやすい 会話スレッド管理 過去の会話を探したり再開したりするUI サイドバー として実装されることが多い タイトル生成、スレッドの共有などの機能も考慮 する
  24. Generative UI の実装イメージ 右のようなJSON をstructured output で生成 サーバーでスキーマや値をバリデーション イベントに変換しフロントエンドに送信 フロントエンドでデータを指定されたUI

    コンポーネ ントにマッピングして表示 { "type": "card", "title": "経費申請 #1234", "body": [ {"type": "text", "value": "申請者: Takuya Asano"}, {"type": "text", "value": "金額: ¥12,300"}, {"type": "text", "value": "用途: 交通費"} ], "actions": [ { "type": "button", "label": "承認", "style": "primary", "action_id": "approve_expense" }, { "type": "button", "label": "却下", "style": "secondary", "action_id": "reject_expense" } ] }
  25. 代表的なエージェントUI フレームワーク Vercel AI SDK フレームワーク非依存 UI コンポーネントは提供されないため、自分たちで 用意する CopilotKit

    AG-UI というプロトコルでエージェント↔UI の通信 を標準化 ヘッドレスを選択可能 UI コンポーネントはassistant-ui と比べると少なめ assistant-ui CopilotKit と同様、React ベース CopilotKit のようなランタイムサーバー(BFF )が不 要 OpenAI ChatKit この中では最も新しい(2025 年11 月リリース) UI コンポーネントは提供されたものをカスタマイズ するという考え方
  26. ここまでのまとめ エージェントシステムのUI チャットUI トークンストリーミング、会話スレッドの管理、エージェントの状態の表示など ヒューマンインザループ(HITL ) エージェントのアクション前後に人間が確認・修正・承認できる仕組み Generative UI エージェントがリッチな情報を返し、フロントエンドでUI

    コンポーネントをレンダリング アンビエントエージェント 環境のイベントによってトリガーされるエージェント 代表的なエージェントUI フレームワーク Vercel AI SDK 、CopilotKit 、assistant-ui 、OpenAI ChatKit など
  27. セキュリティ対策 モデルだけに頼らず、追加のセキュリティ対策を検討する 参照:OWASP Top 10 for LLM Applications LLM の出力を検証

    サニタイズ、機密情報のマスク・フィルタ システム全体での対策 アクセス制御、ライブラリの脆弱性対応 LLM ガードレール製品を検討 OpenAI Moderation API 、Model Armor 、Guardrails AI など レートリミットの設定 大量・高頻度・過剰なリソース要求をするリクエスト をブロック レッドチーミング 人手により脆弱性を継続的にテスト
  28. まとめ AI エージェントとは 環境と相互作用し、目標を達成しようとするAI ツール利用、計画、内省、記憶などの能力を持つ 推論ループを実行して自律的に動作 エージェントシステムの設計 ReAct パターンなどの基本的な設計 ワークフローとエージェントの組み合わせ(Agentic

    Workflow ) MCP によるツールの実装 エージェントシステムのUI チャットUI 、HITL 、Generative UI 、アンビエントエ ージェント 代表的なエージェントUI フレームワーク エージェントシステムのセキュリティ プロンプトインジェクション セキュリティ対策
  29. さらに学ぶために(1 ) 📚 書籍 現場で活用するためのAI エージェント実践入門 LangChain とLangGraph によるRAG ・AI

    エージェント[実践]入門 LLM のプロンプトエンジニアリング 🔍 フォローすべき情報源 OpenAI ニュースリリース Anthropic 公式ブログ LangChain 公式ブログ・YouTube ・SNS Andrew Ng 氏の記事・SNS
  30. さらに学ぶために(2 ) 🌐 ガイド・ホワイトペーパー Business guides and resources | OpenAI

    AI エージェント実践ガイドブック | Google Cloud Prompt Engineering Guide 12-Factor Agents - Principles for building reliable LLM applications