copilotkit-agui
カスタムエージェントバックエンドの構築、AG-UIプロトコルの実装、ストリーミング問題のデバッグ、またはエージェントとフロントエンド間の通信の仕組みを理解したい場合に使用します。イベントタイプ、SSEトランスポート、AbstractAgent/HttpAgentパターン、状態同期、ツール呼び出し、ヒューマン・イン・ザ・ループフローをカバーします。
description の原文を見る
Use when building custom agent backends, implementing the AG-UI protocol, debugging streaming issues, or understanding how agents communicate with frontends. Covers event types, SSE transport, AbstractAgent/HttpAgent patterns, state synchronization, tool calls, and human-in-the-loop flows.
SKILL.md 本文
AG-UI プロトコル スキル
概要
AG-UI (Agent-User Interaction) は、エージェントと UI の通信のための CopilotKit のオープンなイベントベースプロトコルです。すべてのエージェント・フロントエンド間のインタラクションは、SSE (Server-Sent Events) またはバイナリ protobuf トランスポート経由でストリーミングされる型付きイベントを通じて行われます。エージェントは AbstractAgent.run() を実装して RxJS Observable<BaseEvent> を返し、クライアント SDK がイベント適用、状態管理、メッセージ履歴を処理します。
使用するケース
- AG-UI と通信する必要があるカスタムエージェントバックエンドを構築している場合
- 新しいフレームワーク統合用に
AbstractAgent.run()を実装する場合 - イベントがフロントエンドに到達しない、または不正な形式で到達している理由をデバッグする場合
- イベントの順序付け (ライフサイクル、テキスト、ツール呼び出し、状態) を理解する場合
- 状態同期 (スナップショット vs JSON Patch デルタ) で作業する場合
- 人間がループに介入する中断/再開フローを実装する場合
- SSE ストリーミングまたはエンコーディングの問題をトラブルシューティングする場合
使用しないケース
- CopilotKit React フック およびフロントエンドコンポーネント については
copilotkit-developを使用 - CopilotKit ランタイムのセットアップと設定については
copilotkit-setupを使用 - フレームワーク固有の統合ガイド (LangGraph、Mastra、CrewAI) については
copilotkit-integrationsを使用
クイックリファレンス
イベントファミリー
| ファミリー | イベント | 目的 |
|---|---|---|
| Lifecycle | RUN_STARTED, RUN_FINISHED, RUN_ERROR, STEP_STARTED, STEP_FINISHED | 実行の境界と進捗 |
| Text | TEXT_MESSAGE_START, TEXT_MESSAGE_CONTENT, TEXT_MESSAGE_END | ストリーミングテキストメッセージ |
| Tool Calls | TOOL_CALL_START, TOOL_CALL_ARGS, TOOL_CALL_END, TOOL_CALL_RESULT | エージェントのツール呼び出し |
| State | STATE_SNAPSHOT, STATE_DELTA, MESSAGES_SNAPSHOT | 状態同期 |
| Reasoning | REASONING_START, REASONING_MESSAGE_START/CONTENT/END, REASONING_END, REASONING_ENCRYPTED_VALUE | 思考過程の可視化 |
| Activity | ACTIVITY_SNAPSHOT, ACTIVITY_DELTA | 構造化された進捗更新 |
| Custom | RAW, CUSTOM | 拡張ポイント |
便利なチャンクイベント
TEXT_MESSAGE_CHUNK と TOOL_CALL_CHUNK はクライアントの transformChunks パイプラインを通じて Start/Content/End の三つ組に自動展開されます。バックエンド実装をより簡潔にするために使用します。
SSE ワイヤフォーマット
各イベントは JSON オブジェクトとして SSE データ行として送信されます:
data: {"type":"RUN_STARTED","threadId":"t1","runId":"r1"}\n\n
data: {"type":"TEXT_MESSAGE_START","messageId":"m1","role":"assistant"}\n\n
data: {"type":"TEXT_MESSAGE_CONTENT","messageId":"m1","delta":"Hello"}\n\n
data: {"type":"TEXT_MESSAGE_END","messageId":"m1"}\n\n
data: {"type":"RUN_FINISHED","threadId":"t1","runId":"r1"}\n\n
パッケージ
| パッケージ | npm | 目的 |
|---|---|---|
@ag-ui/core | イベント、型、スキーマ | プロトコル定義 |
@ag-ui/client | AbstractAgent、HttpAgent、ミドルウェア、イベント適用 | クライアント SDK |
@ag-ui/encoder | EventEncoder (SSE + protobuf) | サーバー側エンコーディング |
ワークフロー: AG-UI バックエンドの構築
- エンドポイントを定義 --
RunAgentInputボディの POST を受け入れ、text/event-streamで応答 - 入力を解析 -- リクエストボディから
threadId、runId、messages、tools、state、contextを抽出 - イベントを順序通りに発出 --
RUN_STARTEDをまず発出し、次にコンテンツイベント、その後RUN_FINISHEDまたはRUN_ERROR - SSE としてエンコード --
@ag-ui/encoderのEventEncoder.encode()を使用するか、手動でdata: JSON\n\nと記述 - ツール結果を処理 -- クライアントが
TOOL_CALL_RESULTを返送します。エージェントが処理して継続
完全に機能する例については references/building-agents.md を参照してください。
キープロトコルルール
- すべての実行は
RUN_STARTEDで開始し、RUN_FINISHEDまたはRUN_ERRORで終了する必須です TEXT_MESSAGE_CONTENT.deltaは空でない必須です- ツール呼び出しイベントは
toolCallIdでリンクされます STATE_DELTAは RFC 6902 JSON Patch 操作を使用します- 複数の順序付きの実行がサポートされています -- 各実行は次の実行が開始する前に完了する必須です
- メッセージは実行全体で累積されます。状態は
STATE_SNAPSHOTでリセットされない限り継続されます
リファレンス
references/protocol-spec.md-- スキーマと例を含むイベント型リファレンス全体references/building-agents.md-- AG-UI バックエンド構築のステップバイステップガイドreferences/event-flow-diagrams.md-- 一般的なフロー用の ASCII シーケンス図references/client-sdk.md-- @ag-ui/client API リファレンス
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- copilotkit
- リポジトリ
- copilotkit/skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/copilotkit/skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。