🟡 🤝 エージェント 公開日: · 4 分で読めます ·

LangChain:トークンストリームからエージェントストリームへ — 型付きチャネルがマルチエージェントUIの古典的ストリーミングに取って代わる

編集イラスト:トークンストリームからエージェントストリームへ — 型付きチャネルがマルチエージェントUIの古典的ストリーミングに取って代わる

LangChainは2026年5月21日、Christian BromannとNick Hollonによるポストを公開し、トークンストリームから構造化されたエージェントストリームへのパラダイム的進化を論じた。現代のAIエージェントはタスクを計画し、サブエージェントに委任し、ツールを呼び出し、人間のレビューのために一時停止する — 古典的なテキストトークンストリーミングではその作業を表示するのに不十分だ。LangChainはLangGraphでメッセージ、ツール呼び出し、状態変化、サブエージェントの活動、カスタムイベントを運ぶ型付きチャネルを提案する。アプリケーションは関連する型のみをサブスクライブし、長時間実行のワークロードでも効率的なUIを実現する。

🤖

この記事はAIにより一次情報源から生成されました。

LangChainは2026年5月21日、Christian BromannとNick Hollonによるエンジニアリングポストを公開した。2022年から生成AIアプリケーションのUXを支配してきたトークンストリーミングのパラダイムが限界に達しており、型付きエージェントストリーミングモデルに置き換える必要があることを論じている。このポストは新しいアプローチを実装するLangGraphライブラリのアップデートと同時に公開された。

トークンストリーミングの何が問題だったのか?

古典的なトークンストリームはシンプルだ。モデルがトークンを一つずつ生成し、フロントエンドがインクリメンタルに表示し、ユーザーはリアルタイムでテキストが構築されるのを見る。これはChatGPTスタイルのアプリでは主な活動がテキスト生成であるため、うまく機能した。

問題は現代のAIエージェントはテキスト生成以上のことをするという点だ。典型的なエージェントワークフローには以下が含まれる。

  • ツールの呼び出し — エージェントがどのツールを呼び出すかを決定し(ウェブ検索、ファイル読み取り、API呼び出し)、結果を待って続行する
  • サブエージェントへの委任 — メインエージェントが並列のサブタスクのためにサブエージェントを生成する
  • 状態 — エージェントが内部データ構造(計画、追跡リスト、ドラフト出力)を更新する
  • 人間によるレビューの一時停止 — エージェントが次の取り消し不可能なステップを実行する前に停止してユーザーの承認を待つ
  • カスタムシグナル — デバッグログ、進捗の更新、パフォーマンスメトリクス

トークンストリームはこれらの活動の間にエージェントが生成するテキストのみを表示する。実際にはユーザーはスピナーローダー付きの空のウィンドウしか見えず、エージェントが数分から数時間バックグラウンドで作業しているのに可視シグナルがない。これは悪いUXだ。

型付きエージェントストリームとは何か?

LangChainが提案するモデルでは、エージェントが同じチャネルを通じて異なるタイプのイベントをemitするが、各イベントには型が付く。クライアント(UIアプリケーション)はどの型をサブスクライブするかと各型の表示方法を選択する。

イベントタイプの例:

  • message — テキストトークン(古典的)
  • tool_call — 引数付きのツール呼び出し
  • tool_result — ツール呼び出しの結果
  • state_update — エージェント状態の変化
  • subagent_event — サブエージェントからのイベント(再帰的)
  • human_review_request — エージェントが停止して承認を要求
  • custom — デベロッパーが定義する任意のイベントタイプ

これによりUIレイヤーがエージェントの作業をマルチペインビジュアライゼーションとして表示できる — メインウィンドウにチャットテキスト、サイドバーにツール呼び出し、別のパネルに状態、サブエージェントの活動をツリービジュアライゼーションで表示。CursorとClaude Codeはすでにこのアプローチのバリアントを内部で実装している。LangChainはこれをAPIとして正式化する。

LangGraphでどのように機能するか?

LangGraph — LangChainのステートフルグラフオーケストレーションライブラリ — がエージェントストリームのネイティブサポートを取得した。開発チームがグラフのノード、エッジ、状態を定義すると、実行時にLangGraphがすべてのグラフの活動に対して型付きイベントを自動的にemitする。

クライアントは標準の非同期イテレーターパターンを使用してサブスクライブする。

  • すべてのイベントをサブスクライブ → 典型的なダッシュボードモード
  • messageのみをサブスクライブ → 古典的なチャットUIモード
  • message + tool_callをサブスクライブ → デバッグUIに便利

これにより、これまでエージェントフロントエンドで主流だったカスタムWebSocketプロトコルやポーリングパターンが不要になる。

エージェントAIツールのエコシステムにとって何を意味するか?

エージェントストリームはAnthropicやOpenAIなどがすでに内部で実装しているパターンに収束するアーキテクチャ上の前進だ。標準化されたAPIは小規模な開発チームがゼロから自分たちのバリアントを構築する代わりにLangGraphに頼れることを意味する。

長期的には、エージェントストリームはREST APIやSSEがWebアプリケーションのデファクトスタンダードになったように普及する可能性がある。他のエージェントフレームワーク(Microsoft AutoGen、CrewAI、OpenAI Swarm)が今後のバージョンで同様の型付きイベントモデルを採用するか注目だ。

よくある質問

LangChain用語でエージェントストリームとは何か?
エージェントストリームは、テキストトークンの列だけでなく、リアルタイムでメッセージ・ツール呼び出し・状態変化・サブエージェントの活動・カスタムシグナルなど異なる種類のイベントをemitする構造化された型付きチャネルだ。
なぜ古典的なトークンストリームは現代のエージェントには不十分なのか?
エージェントはテキスト生成以上のことをする — ツールを呼び出し、人間のレビューを待ち、サブエージェントに委任し、状態を変更する。トークンストリームはテキストしか表示せず、実際の作業についてユーザーを暗闇に置き去りにする。
アプリケーションはどのようにエージェントストリームの型をサブスクライブするか?
LangGraphはクライアントが望む型のイベントのみをサブスクライブできるAPIを提供し、エージェントが長時間実行のワークロードを処理するときの過負荷を回避する。