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

マルチエージェントの現在地を整理してみた

Avatar for oracle4engineer oracle4engineer PRO
April 22, 2026
370

 マルチエージェントの現在地を整理してみた

Avatar for oracle4engineer

oracle4engineer PRO

April 22, 2026

More Decks by oracle4engineer

Transcript

  1. Agenda 3 Copyright © 2026, Oracle and/or its affiliates 1

    2 3 4 エージェントの基礎 マルチエージェント エージェントのオブザーバビリティ まとめ
  2. AIエージェントとは Gartner*では以下のように定義されている AIエージェントは、アプリやクラウドといったデジタル環境、そしてロボットやセンサー機器といった物理的な環境 で、AIの手法を使って状況を把握し、判断し、行動し、目標を達成できる自律(または半自律)のソフトウェアです 従来のAIツールとの違いを考えると・・・ 1. チャットボットは事前定義されたルールに基づく一問一答型 • 推論・学習機能を持たない 2.

    LLMを利用したもの(ChatGPTなど)はユーザーの質問に「答える」ことに最適化 • 柔軟に質問に答えることはできるが、LLM単体では自ら計画を立てて実行することはできない 3. AIエージェント • 目標を与えるだけで、自ら計画を立て、ツールを使い分け、実行結果を評価し、自己修正をしながらタスクを 完遂する 5 Copyright © 2026, Oracle and/or its affiliates ※ https://www.gartner.co.jp/ja/articles/ai-agents
  3. AIエージェントの構成要素 • モデル • ツール • メモリ • ナレッジベース •

    オーケストレーション 6 Copyright © 2026, Oracle and/or its affiliates オーケストレー ション モデル ツール メモリ ナレッジベース ユーザー
  4. AIエージェントの構成要素 ツール エージェントが外部に作用するために必要 主に3つのカテゴリーがある • ローカルツール • エージェントのコードに実装されているツール • 内部で解決するもの(計算処理や、ローカルにあるファイル参照など)

    • APIベースのツール • エージェントのコードの実装されているツール • 外部のAPIを呼び出す • MCP • エージェントの外に実装されているツール ツールといえばMCPのようなイメージがあるが、MCPは選択肢の一つ 8 Copyright © 2026, Oracle and/or its affiliates
  5. ローカルツールの例 9 Copyright © 2026, Oracle and/or its affiliates langchain_coreのtoolsデコレータを使ってツールを定義

    処理は内部で完結する https://github.com/sogawa-yk/orajam-multi-agent/tree/main/tools/local_tools
  6. APIベースのツールの例 10 Copyright © 2026, Oracle and/or its affiliates langchain_coreのtoolsデコレータを使ってツールを定義

    外部のAPIを呼び出す https://github.com/sogawa-yk/orajam-multi-agent/tree/main/tools/api_tools
  7. MCPの例 11 Copyright © 2026, Oracle and/or its affiliates MCPサーバーとの接続設定

    MCPサーバーのツールをLangChain ツールとして読み込む https://github.com/sogawa-yk/orajam-multi-agent/tree/main/tools/mcp_tools
  8. コンテキストエンジニアリング LLMに対する入力を組み立てる LLMに対する入力を、コンテキストという 何をLLMに入力するかが、LLMの推論品質を高めるために非常に重要 メモリの内容などを使って、コンテキストを組み立てる 13 Copyright © 2026, Oracle

    and/or its affiliates 短期メモリ 長期メモリ ナレッジストア 今のユーザー入力 ツール定義 必要な情報を抽出 [System Prompt] [Tool Definitions] [Retrieved Context(RAG)] [Long-term Memory] [Short-term Memory / Conversation History] [Current User/Agent Input] [Scratchpad / Intermediate State] コンテキスト LLM
  9. デモ エージェントにメモリがないとどうなるか 14 Copyright © 2026, Oracle and/or its affiliates

    https://github.com/sogawa-yk/orajam-multi-agent/tree/main/memory/no-memory
  10. デモ エージェントにメモリがあるとどうなるか 15 Copyright © 2026, Oracle and/or its affiliates

    https://github.com/sogawa-yk/orajam-multi-agent/tree/main/memory/with-memory-responses-api
  11. AIエージェントの構成要素 メモリ エージェントの記憶を保持する メモリには2種類ある • 短期メモリ • 現在のタスクを実行中に保持する記憶を格納する • 会話履歴などに用いる

    • 長期メモリ • タスクを横断して保持する記憶を格納する • 過去の成功パターンや、ユーザーの行動に基づくパーソナライズに用いる 16 Copyright © 2026, Oracle and/or its affiliates
  12. 短期メモリを利用する場合のコード Responses APIの場合 18 Copyright © 2026, Oracle and/or its

    affiliates 前回のレスポンスのIDも含めて リクエストを投げる https://github.com/sogawa-yk/orajam-multi-agent/tree/main/memory/with-memory-responses-api
  13. 短期メモリを利用する場合のコード Conversations APIの場合 19 Copyright © 2026, Oracle and/or its

    affiliates 会話のIDを指定する https://github.com/sogawa-yk/orajam-multi-agent/tree/main/memory/with-memory-conversations-api
  14. (参考)Response IDによる会話チェーン 20 Copyright © 2026, Oracle and/or its affiliates

    Response IDで会話チェーンを表現する場合、リクエス トの際に任意のレスポンスIDを指定する • ある程度を会話を進めた後に戻る(rewind) • レスポンスIDだけわかっていれば良いので管理が楽 などのメリットがある Conversations APIを使う場合は、Conversation IDを指定す る(チェーンにはならない)
  15. 短期メモリ 実装場所 エージェントのインスタンス メリット • 最速でアクセスできる • 外部サービスが増えない デメリット •

    インスタンスが落ちると消える • スティッキーセッションが必須 Redis, Valkeyなどのデータストア メリット • 高速アクセス • スティッキーセッション不要 デメリット • 運用の手間 • 耐久性は努力目標 Oracle, PostgreSQLなどのRDB メリット • 強い耐久性とトランザクション • 状態がSQLで検査できる デメリット • レイテンシが大きい • RDBは永続化する場所なので、短 期化が表現しづらい Copyright © 2026, Oracle and/or its affiliates 21 メモリ エージェント のロジック エージェントのインスタンス エージェント のロジック メモリ エージェントの インスタンス Redisの インスタンス エージェント のロジック メモリ エージェントの インスタンス RDBの インスタンス
  16. デモ 長期メモリがないとどうなるか 24 Copyright © 2026, Oracle and/or its affiliates

    新しい会話を作成すると 会話を跨いだ記憶はない
  17. デモ 長期メモリがあると 25 Copyright © 2026, Oracle and/or its affiliates

    新しい会話を作成すると 会話を跨いで記憶を保持している https://github.com/sogawa-yk/orajam-multi-agent/tree/main/memory/long-term-memory
  18. 長期メモリの利用方法 26 Copyright © 2026, Oracle and/or its affiliates memory_subject_idをリクエスト時に送る

    ユーザーごとにこのIDを管理しておけば、 ユーザーごとに属性を記憶できる
  19. 長期メモリの管理 いつ書き込むか • 即時書き込み • バッチ書き込み • 2段階書き込み 記憶の抽出と圧縮 •

    LLMを使った要約 • 時間経過に応じて削除 どう読み出すか • すべて読み出す • ベクトル検索で関連するものを読み出す 27 Copyright © 2026, Oracle and/or its affiliates 他にも様々な方法がある これと言った正解があるわけではないので、 ユースケースに応じて最適化する必要がある
  20. 長期メモリ管理の例 28 Copyright © 2026, Oracle and/or its affiliates ユーザー

    AI ①会話内容を埋め込みモデルに 埋め込みモデル 随時内容を要約 ②メモリに保存 要約モデル ③メモリを参照 長期メモリ
  21. ReAct 各ステップ「考える → 行動する → 観察する」のループを回し、状況を見ながら次の手を動的に判断するパターン 32 Copyright © 2026,

    Oracle and/or its affiliates メリット • 各ステップLLMが判断するので、状況の変化に柔軟に対応で きる • ツールの実行結果を見て次の行動を決めるため、事前に手 順を決められないタスクをこなせる デメリット • 各ステップLLM呼び出しが発生するため、コストと遅延が大 きい • 1ステップごとに計画するため、局所最適な判断を行なっ てしまう
  22. デモ ReAct 33 Copyright © 2026, Oracle and/or its affiliates

    https://github.com/sogawa-yk/orajam-multi-agent/tree/main/orchestration/react
  23. Planner-Executor 最初に全体計画を立て、あとはその計画通りに実行するパターン 34 Copyright © 2026, Oracle and/or its affiliates

    メリット • 高価な大きいモデルを呼ぶのはPlannerの1回で済む • 計画が先に確定するため、予測可能でデバッグしやすい デメリット • 実行中に状況が変わっても計画を変更できない
  24. デモ Planner-Executor 35 Copyright © 2026, Oracle and/or its affiliates

    https://github.com/sogawa-yk/orajam-multi-agent/tree/main/orchestration/planner_executor
  25. Reflection ReActのループに「自己検証」のステップを挟み込むパターン 36 Copyright © 2026, Oracle and/or its affiliates

    メリット • ReActの弱点である「局所最適な判断の積み重ね」を緩和で きる デメリット • 検証のための追加LLM呼び出しが発生するため、コストと遅 延がさらに増える
  26. デモ Reflection 37 Copyright © 2026, Oracle and/or its affiliates

    https://github.com/sogawa-yk/orajam-multi-agent/tree/main/orchestration/reflection
  27. オーケストレーションのデザインパターンの変化 モデルが賢くなるにつれて、オーケストレーションのデザインパターンも変化してきている 38 Copyright © 2026, Oracle and/or its affiliates

    従来 • グラフで制御フローを組む • ステートマシンを設計する • ノード間の遷移を書く 制御ロジックを設計することが焦点 現在 • ReActループに任せる • コンテキストをステートとしてReActに渡して、 ス テートマシンは設計しない ツール・スキル・コンテキストを設計することが焦点
  28. マルチエージェントとは 複数の自律エージェントが協調するシステム マルチエージェントシステムは以下の3要素で構成される 41 Copyright © 2026, Oracle and/or its

    affiliates エージェント アーキテクチャ 通信方法 各々が独自のコンテキス トとツールを持つ 単独でも価値を持つ 役割分担と指揮系統を定 める • スーパーバイザー • スウォーム 情報をやり取りする仕組 み • サブエージェント • A2A • MCP
  29. マルチエージェントシステムの代表的なアーキテクチャ • スーパーバイザー型 • スウォーム型 42 Copyright © 2026, Oracle

    and/or its affiliates スーパーバイザー型 中央に調整役のエージェントがいて、ユーザーから の入力を受け取ってどのワーカーに振り分けるかを 動的に判断する スウォーム型 中央の調整役をおかず、エージェント同士が直接制 御を受け渡す
  30. エージェント間の通信方法 • サブエージェント • MCPツール化 • A2A 43 Copyright ©

    2026, Oracle and/or its affiliates サブエージェント エージェントを内部的に呼び出す MCPツール化 エージェントをツールとして呼び出す A2A エージェントをピアとして協調
  31. A2A Agent Card エージェントの名刺として機能するメタデータ文書 構成要素 • エージェントの名前 • バージョン •

    エンドポイント • スキル • 認証方式 など /.well-known/agent-card.jsonで公開する 49 Copyright © 2026, Oracle and/or its affiliates
  32. A2A Task A2Aにおける作業の基本単位で、ライフサイクルを持つ 構成要素 • 会話の文脈(タスクを跨ぐ) • 現在の状態 • タスク内でのメッセージ(後述するMessage)

    以下の状態がある • submitted • working • input-required • auth-required • completed • failed 50 Copyright © 2026, Oracle and/or its affiliates
  33. A2A Message エージェント間の対話の1ターンを表すオブジェクト 構成要素 • ロール • user • agent

    • Part(後述) • TextPart • DataPart • FilePart 51 Copyright © 2026, Oracle and/or its affiliates
  34. A2A PartとArtifact Part Messageや成果物を構成する最小単位 • TextPart: プレーンテキストやマークダウン • DataPart: 構造化データ(JSON)

    • FilePart: バイナリデータ Artifact タスクの最終成果物 Partで構成される 52 Copyright © 2026, Oracle and/or its affiliates
  35. A2Aを使ったエージェントの動的発見 A2Aでは、各エージェントのWell-Known URIにAgent Cardが公開されている つまり、各エージェントのドメイン名が分からなければ、そもそもそのエージェントを発見することができない エージェントのドメイン名が分からない状態でもエージェントを発見できるようには、レジストリが必要 53 Copyright © 2026,

    Oracle and/or its affiliates エージェントA エージェントB Well-Known URIで 公開してるよ そもそも接続先がわからない レジストリ エージェントA エージェントB 自分のAgent Cardを登録 する レジストリの接続先さえわ かっていればどんなエー ジェントがいるかわかる レジストリがない場合 レジストリがある場合
  36. A2A on Kafka https://www.confluent.io/blog/google-agent2agent-protocol-needs-kafka/ A2Aの通信経路として、Kafka(メッセージブローカーの代表的プロダクト)を使うことが提案されている 55 Copyright © 2026, Oracle

    and/or its affiliates メリット • 複数のコンシューマーがメッセージに基づいて行 動できる(ターゲットのエージェント以外も) • エージェントのやり取りを永続的に保存でき、監 査やデバッグに利用できる • 接続経路が一つになるので、シンプルになる
  37. A2Aのデモ スーパーバイザー型 56 Copyright © 2026, Oracle and/or its affiliates

    https://github.com/sogawa-yk/orajam-multi-agent/tree/main/multi_agent/supervisor
  38. A2Aのデモ スウォーム型 57 Copyright © 2026, Oracle and/or its affiliates

    https://github.com/sogawa-yk/orajam-multi-agent/tree/main/multi_agent/swarm
  39. エージェントの認可の課題 通常のアプリケーションと違い、エージェントにはいくつか課題がある 58 Copyright © 2026, Oracle and/or its affiliates

    挙動が実行時まで決まらない プロンプトインジェクション 権限の組み合わせが新しい能力を生む 粒度のミスマッチ • 従来のアプリはコードで挙動が固定されている • エージェントは入力次第で毎回挙動が異なる • LLMは入力テキストを指示として受け取るので、 参照するデータなどに悪意のあるプロンプトが紛 れていても区別がつかない • 従来のアプリは機能はコードで書いた範囲のみ • エージェントはツールを動的に組み合わせるので、 個別の権限は安全でも組み合わせると危険になる 恐れがある • OAuthのスコープはread:gmailのような粗い単位 • エージェントに必要なのは、「この1件の返信用 に」といった動的で細かい権限
  40. マルチエージェントではさらに課題が出てくる 59 Copyright © 2026, Oracle and/or its affiliates 権限委譲の連鎖

    プロンプトインジェクション 権限の組み合わせ問題はエージェント単位でも • エージェントの呼び出しチェーンの中で、権限は 狭まるべきだが、OAuth Bearerトークンはそのまま 転送されると全権限が伝わってしまう • 標準的な方法がまだ確立されていない • プロンプトインジェクションの問題はマルチエー ジェントの場合でも同様 • ツールの連鎖の危険性は、エージェント単位でも 起こる • エージェント単位では安全でも、組み合わさると 危険になる恐れがある
  41. エージェントシステムのObservability 以下のような要素を監視する必要がある 61 Copyright © 2026, Oracle and/or its affiliates

    インフラ層 コスト層 ワークフロー層 出力品質層 協調層 (マルチエージェントの場合) ユーザーフィードバック層 • CPU、メモリ、ネットワークなど • コンテナやノードの稼働率 • 依存サービスの可用性 • トークン消費量 • モデル別コスト • キャッシュヒット率 • タスク成功率 • レイテンシ • リトライ回数、ループ回数 • 推論プロセスの追跡 • ハルシネーション検出 • 埋め込みドリフト • コンテキスト利用状況 • ポリシー遵守 • エージェント間の依存関係 • 処理依頼 の成功率 • 処理依頼の適切性 • 再質問率、放棄率 • 明示的評価 • ユーザー満足度の定量化
  42. エージェントシステムのObservability Stack 例えば… 62 Copyright © 2026, Oracle and/or its

    affiliates アプリ側の計装ロジック • OpenTelemetry SDK + OpenLLMetry • Langfuse SDK 収集 • OpenTelemetry Collector バックエンド • Prometheus • Grafana Loki • Grafana Tempo • Langfuse UI • Grafana • Langfuse
  43. OpenLLMetry LLM SDK向け自動計装ライブラリ モンキーパッチによって自動計装を実現 生成されるSpanは通常のOTel SDKが作るSpanと互換 自動で記録されるデータ • LLMのプロバイダ •

    モデル名 • 入力トークン数 • 出力トークン数 • プロンプト本文 • レスポンス本文 など デコレーターを使って手動計装もできる 63 Copyright © 2026, Oracle and/or its affiliates モンキーパッチによって、普通のSDKを呼び出すだけで計装される
  44. Langfuse トレーシング • LLM呼び出しの入出力 • 使用モデル • トークンコスト • 所要時間

    などを1リクエスト単位で記録できる 65 Copyright © 2026, Oracle and/or its affiliates デコレータをつけるだけ
  45. まとめ • エージェントは以下の要素で構成される • モデル • ツール • メモリ •

    ナレッジストア • オーケストレーション • マルチエージェントは、シングルエージェントでは解ききれないタスクにのみ適用する • エージェントが他のエージェントを呼び出すための標準プロトコルとして、Agent-to-Agentがある • エージェントの認可はまだまだ発展途上、マルチエージェントなら尚更 • エージェントの開発・運用にはO11yが必須 67 Copyright © 2026, Oracle and/or its affiliates