Skip to content

ClassCat® AI Research

クラスキャット – assistant-ui, AG-UI, Agno, MCP, LangChain/LangGraph

Menu
  • ホーム
    • ClassCat® AI Research ホーム
    • クラスキャット・ホーム
  • OpenAI API
    • OpenAI Python ライブラリ 1.x : 概要
    • OpenAI ブログ
      • GPT の紹介
      • GPT ストアの紹介
      • ChatGPT Team の紹介
    • OpenAI platform 1.x
      • Get Started : イントロダクション
      • Get Started : クイックスタート (Python)
      • Get Started : クイックスタート (Node.js)
      • Get Started : モデル
      • 機能 : 埋め込み
      • 機能 : 埋め込み (ユースケース)
      • ChatGPT : アクション – イントロダクション
      • ChatGPT : アクション – Getting started
      • ChatGPT : アクション – アクション認証
    • OpenAI ヘルプ : ChatGPT
      • ChatGPTとは何ですか?
      • ChatGPT は真実を語っていますか?
      • GPT の作成
      • GPT FAQ
      • GPT vs アシスタント
      • GPT ビルダー
    • OpenAI ヘルプ : ChatGPT > メモリ
      • FAQ
    • OpenAI ヘルプ : GPT ストア
      • 貴方の GPT をフィーチャーする
    • OpenAI Python ライブラリ 0.27 : 概要
    • OpenAI platform
      • Get Started : イントロダクション
      • Get Started : クイックスタート
      • Get Started : モデル
      • ガイド : GPT モデル
      • ガイド : 画像生成 (DALL·E)
      • ガイド : GPT-3.5 Turbo 対応 微調整
      • ガイド : 微調整 1.イントロダクション
      • ガイド : 微調整 2. データセットの準備 / ケーススタディ
      • ガイド : 埋め込み
      • ガイド : 音声テキスト変換
      • ガイド : モデレーション
      • ChatGPT プラグイン : イントロダクション
    • OpenAI Cookbook
      • 概要
      • API 使用方法 : レート制限の操作
      • API 使用方法 : tiktoken でトークンを数える方法
      • GPT : ChatGPT モデルへの入力をフォーマットする方法
      • GPT : 補完をストリームする方法
      • GPT : 大規模言語モデルを扱う方法
      • 埋め込み : 埋め込みの取得
      • GPT-3 の微調整 : 分類サンプルの微調整
      • DALL-E : DALL·E で 画像を生成して編集する方法
      • DALL·E と Segment Anything で動的マスクを作成する方法
      • Whisper プロンプティング・ガイド
  • Gemini API
    • Tutorials : クイックスタート with Python (1) テキスト-to-テキスト生成
    • (2) マルチモーダル入力 / 日本語チャット
    • (3) 埋め込みの使用
    • (4) 高度なユースケース
    • クイックスタート with Node.js
    • クイックスタート with Dart or Flutter (1) 日本語動作確認
    • Gemma
      • 概要 (README)
      • Tutorials : サンプリング
      • Tutorials : KerasNLP による Getting Started
  • Keras 3
    • 新しいマルチバックエンド Keras
    • Keras 3 について
    • Getting Started : エンジニアのための Keras 入門
    • Google Colab 上のインストールと Stable Diffusion デモ
    • コンピュータビジョン – ゼロからの画像分類
    • コンピュータビジョン – 単純な MNIST convnet
    • コンピュータビジョン – EfficientNet を使用した微調整による画像分類
    • コンピュータビジョン – Vision Transformer による画像分類
    • コンピュータビジョン – 最新の MLPモデルによる画像分類
    • コンピュータビジョン – コンパクトな畳込み Transformer
    • Keras Core
      • Keras Core 0.1
        • 新しいマルチバックエンド Keras (README)
        • Keras for TensorFlow, JAX, & PyTorch
        • 開発者ガイド : Getting started with Keras Core
        • 開発者ガイド : 関数型 API
        • 開発者ガイド : シーケンシャル・モデル
        • 開発者ガイド : サブクラス化で新しい層とモデルを作成する
        • 開発者ガイド : 独自のコールバックを書く
      • Keras Core 0.1.1 & 0.1.2 : リリースノート
      • 開発者ガイド
      • Code examples
      • Keras Stable Diffusion
        • 概要
        • 基本的な使い方 (テキスト-to-画像 / 画像-to-画像変換)
        • 混合精度のパフォーマンス
        • インペインティングの簡易アプリケーション
        • (参考) KerasCV – Stable Diffusion を使用した高性能画像生成
  • TensorFlow
    • TF 2 : 初級チュートリアル
    • TF 2 : 上級チュートリアル
    • TF 2 : ガイド
    • TF 1 : チュートリアル
    • TF 1 : ガイド
  • その他
    • 🦜️🔗 LangChain ドキュメント / ユースケース
    • Stable Diffusion WebUI
      • Google Colab で Stable Diffusion WebUI 入門
      • HuggingFace モデル / VAE の導入
      • LoRA の利用
    • Diffusion Models / 拡散モデル
  • クラスキャット
    • 会社案内
    • お問合せ
    • Facebook
    • ClassCat® Blog
Menu

AG-UI 入門 : コンセプト – コア・アーキテクチャ

Posted on 04/19/2026 by Masashi Okumura

Agent User Interaction プロトコル (AG-UI) は、柔軟なイベント駆動型アーキテクチャの上に構築されていて、フロントエンド App と AI エージェント間のシームレスで効率的な通信を可能にします。このドキュメントでは、主要なアーキテクチャのコンポーネントとコンセプトについて解説します。

AG-UI : コンセプト – コア・アーキテクチャ

作成 : Masashi Okumura (@classcat.com)
作成日時 : 04/19/2026
バージョン : v0.0.52

* 本記事は docs.ag-ui.com の以下のページを参考にしています :

  • Concepts – Core architecture

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。

 

 

AG-UI : コンセプト – コア・アーキテクチャ

AG-UI がフロントエンド・アプリケーションを AI エージェントにどのように接続するのかを理解します。

Agent User Interaction プロトコル (AG-UI) は、柔軟なイベント駆動型アーキテクチャの上に構築されていて、フロントエンド・アプリケーションと AI エージェント間のシームレスで効率的な通信を可能にします。このドキュメントでは、主要なアーキテクチャのコンポーネントとコンセプトについて解説します。

 

デザイン原理

AG-UI は軽量で、(設計上の押し付けを) 最小限にするように設計されていて、幅広いエージェント実装との統合を容易にしています。プロトコルの柔軟性は、以下の単純な要件に由来します :

  1. イベント駆動型通信:エージェントは実行中に 16 個の標準化されたイベントタイプのいずれかを発行し、クライアントが処理可能な更新のストリームを生成する必要があります。

  2. 双方向インタラクション:エージェントはユーザーからの入力を受け付け、人間と AI がシームレスに連携する協調ワークフローを可能にします。

このプロトコルは、組み込みのミドルウェア層を含み、これは 2 つの主要な方法で互換性を最大化します :

  • 柔軟なイベント構造:イベントは AG-UI のフォーマットに正確に一致する必要はありません – AG-UI 互換である必要があるだけです。これは、既存のエージェントフレームワークが最小限の労力でネイティブのイベントフォーマットを適応させることを可能にします。

  • トランスポート非依存:AG-UI はイベントの配信方法を規定せず、Server-Sent Events(SSE)、Webhook、WebSocket を含む、トランスポートメカニズムをサポートしています。この柔軟性により、開発者はアーキテクチャに最適なトランスポートを選択できます。

この実用的なアプローチにより、AG-UI は既存のエージェント実装やフロントエンド・アプリケーションに大きな変更を加える必要なしに、容易に導入できます。

 

アーキテクチャ概要

AG-UIは、エージェントとアプリケーション間の通信を標準化するクライアント・サーバー・アーキテクチャに従っています :
​

  • アプリケーション:ユーザー向けアプリケーション (i.e. チャットや AI 有効化アプリケーション)。

  • AG-UI クライアント:HttpAgent のような汎用通信クライアント、または既存プロトコルに接続するための専用クライアント。

  • エージェント:リクエストを処理し、ストリーミングレスポンスを生成するバックエンド AI エージェント。

  • セキュアなプロキシ:追加機能を提供し、セキュアなプロキシとして機能するバックエンドサービス。

 

コア・コンポーネント

プロトコルレイヤー

AG-UI のプロトコルレイヤーは、エージェント通信のための柔軟な基盤を提供します。
​

  • ユニバーサル互換性 : run(input: RunAgentInput) -> Observable<BaseEvent> を実装することで、任意のプロトコルに接続できます

このプロトコルの主要な抽象化は、アプリケーションがエージェントを実行し、イベントのストリームを受信することを可能にします :

// Core agent execution interface
type RunAgent = () => Observable

class MyAgent extends AbstractAgent {
  run(input: RunAgentInput): RunAgent {
    const { threadId, runId } = input
    return () =>
      from([
        { type: EventType.RUN_STARTED, threadId, runId },
        {
          type: EventType.MESSAGES_SNAPSHOT,
          messages: [
            { id: "msg_1", role: "assistant", content: "Hello, world!" }
          ],
        },
        { type: EventType.RUN_FINISHED, threadId, runId },
      ])
  }
}

 

標準 HTT Pクライアント

AG-UIは、標準 HTTP クライアントである HttpAgent を提供しています、これは RunAgentInput 型のボディを持つ POST リクエストを受け取り、BaseEvent オブジェクトのストリームを送信する、任意のエンドポイントに接続するために使用できます。

HttpAgent は以下のトランスポートをサポートしています :

  • HTTP SSE (Server-Sent Events)

    • 幅広い互換性のためのテキストベースのストリーミング

    • 読みやすくデバッグしやすい

     

  • HTTP バイナリ・プロトコル

    • 高性能かつ省スペースなカスタムトランスポート

    • 本番環境向けの堅牢なバイナリ・シリアライゼーション

 

メッセージ・タイプ

​​AG-UIは、エージェント通信の様々な側面のために、幾つかのイベントカテゴリを定義しています :

  • ライフサイクル・イベント

    • RUN_STARTED, RUN_FINISHED, RUN_ERROR
    • STEP_STARTED, STEP_FINISHED

     

  • テキストメッセージ・イベント

    • TEXT_MESSAGE_START, TEXT_MESSAGE_CONTENT, TEXT_MESSAGE_END

     

  • ツール呼び出しイベント

    • TOOL_CALL_START, TOOL_CALL_ARGS, TOOL_CALL_END

     

  • 状態管理イベント

    • STATE_SNAPSHOT, STATE_DELTA, MESSAGES_SNAPSHOT

     

  • 特殊イベント

    • RAW, CUSTOM

 

エージェントの実行

エージェントを実行するには、クライアントインスタンスを作成してそれを実行します :

// Create an HTTP agent client
const agent = new HttpAgent({
  url: "https://your-agent-endpoint.com/agent",
  agentId: "unique-agent-id",
  threadId: "conversation-thread"
});

// Start the agent and handle events
agent.runAgent({
  tools: [...],
  context: [...]
}).subscribe({
  next: (event) => {
    // Handle different event types
    switch(event.type) {
      case EventType.TEXT_MESSAGE_CONTENT:
        // Update UI with new content
        break;
      // Handle other event types
    }
  },
  error: (error) => console.error("Agent error:", error),
  complete: () => console.log("Agent run complete")
});

 

状態管理

AG-UIは、以下の特殊イベントを通じて効率的な状態管理を提供します :

  • STATE_SNAPSHOT : ある時点における完全な状態表現

  • STATE_DELTA: JSON Patch 形式(RFC 6902)を使用した漸進的な状態変化

  • MESSAGES_SNAPSHOT: 完全な会話履歴

これらのイベントは、最小限のデータ転送で効率的なクライアント側の状態管理を可能にします。

 

ツールとハンドオフ

AG-UI は、標準化されたイベントを通じてエージェント-to-エージェントのハンドオフとツール使用をサポートしています :

  • ツール定義は runAgent パラメータで渡されます。

  • ツール呼び出しは、TOOL_CALL_START → TOOL_CALL_ARGS → TOOL_CALL_END イベントのシーケンスとしてストリーミングされます。

  • エージェントは、コンテキストの継続性を維持しながら、他のエージェントにハンドオフできます。

 

イベント

AG-UI におけるすべての通信は、型付きイベントに基づいています。すべてのイベントは BaseEvent を継承します :

interface BaseEvent {
  type: EventType
  timestamp?: number
  rawEvent?: any
}

イベントは厳密に型付け・検証され、コンポーネント間の信頼性の高い通信を保証します。

 

以上





クラスキャット

最近の投稿

  • AG-UI 入門 : コンセプト – コア・アーキテクチャ
  • CopilotKit 入門 : クイックスタート (LangChain, Mastra, Pydantic AI, Agno)
  • AG-UI 入門 – クイックスタート : クライアントの構築
  • AG-UI 入門 – クイックスタート : 統合の構築 – イントロダクション
  • AG-UI 入門 – クイックスタート : アプリケーションの構築

タグ

AG2 (14) Agno (46) Agno 2.x (22) assistant-ui (19) AutoGen (13) ClassCat Press Release (20) ClassCat TF/ONNX Hub (11) Cursor (20) DGL 0.5 (14) Edward (17) FLUX.1 (16) Gemini (20) HuggingFace Transformers 4.5 (10) HuggingFace Transformers 4.29 (9) Keras 2 Examples (98) Keras 2 Guide (16) Keras 3 (10) Keras Release Note (17) Kubeflow 1.0 (10) LangChain (45) LangChain v1.0 (10) LangGraph (24) LangGraph 0.5 (9) MediaPipe 0.8 (11) Model Context Protocol (16) NNI 1.5 (16) OpenAI Cookbook (13) OpenAI platform (10) OpenAI platform 1.x (10) TensorFlow 2.0 Advanced Tutorials (33) TensorFlow 2.0 Advanced Tutorials (Alpha) (15) TensorFlow 2.0 Advanced Tutorials (Beta) (16) TensorFlow 2.0 Guide (10) TensorFlow 2.0 Guide (Alpha) (16) TensorFlow 2.0 Guide (Beta) (9) TensorFlow 2.0 Release Note (12) TensorFlow 2.0 Tutorials (20) TensorFlow 2.0 Tutorials (Alpha) (14) TensorFlow 2.0 Tutorials (Beta) (12) TensorFlow 2.4 Guide (24) TensorFlow Probability (9) TensorFlow Programmer's Guide (22) TensorFlow Release Note (18) TensorFlow Tutorials (33) TF-Agents 0.4 (11)
2026年4月
月 火 水 木 金 土 日
 12345
6789101112
13141516171819
20212223242526
27282930  
« 3月    
© 2026 ClassCat® AI Research | Powered by Minimalist Blog WordPress Theme