このプロジェクトについて
本プロジェクトは、『AG-UI 群聊拡張プロトコル標準 v1.0』に準拠して実装された群聊プロトコルハブ(Hub)であり、C# / .NET 10 の ASP.NET Core Minimal API で構築されています。「群聊(グループチャット)」をサードパーティアプリがアクセス可能なプロトコル層として定義し、グループとメンバーのライフサイクル、メッセージのファンアウト、購読およびリアルタイムダウンリンクを同一のイベントおよびエラーコード規約に従って管理します。AIエージェントはグループメンバーの一員として参加します。
【プロトコル機能】
- グループライフサイクル:作成、更新、解散(GROUP_CREATED / GROUP_UPDATED / GROUP_DISBANDED に対応)。
- メンバー管理:加入、削除、自発的な退会、ロールおよびプロファイルの変更(GROUP_MEMBER_*)。
- メッセージファンアウト:ユーザーメッセージを TEXT_MESSAGE_START/CONTENT/END の三元組でブロードキャストし、all、mentioned、private の3つの可視範囲を提供。撤回、既読回執、入力中ステータスをサポート。
- 購読メカニズム:GROUP_SUBSCRIBE / GROUP_UNSUBSCRIBE / GROUP_SUBSCRIBE_ACK / GROUP_STATE_SNAPSHOT。
- デュアル伝送:WebSocket 全二重(/ws)と SSE 単方向ダウンリンク(/sse)を提供し、ハートビートによる生存確認を実装。SSE は HTTP インターフェース経由で動的に購読・解除が可能。
- エージェントトリガー規則(プロトコル §6):メンショントリガー、全量リスニング、キーワードトリガー、コンテキストトリガー(モデルが文脈に基づき発言を決定)。
- HTTP アップリンク API:グループ作成、カスタマーサポート知聚への発見/進入、グループ名の自動生成、メンバー増減、メッセージ送信、添付ファイルのアップロード/ダウンロード、撤回、既読、人機交互意思決定、スナップショットおよびメンバーリストなどを網羅。エラーは一律に code + message で返し、ステータスコードを 403/404/409/400 にマッピング。書き込みインターフェースはトークン識別子でリクエストボディの身分フィールドを上書きし、読み取りインターフェースは呼び出し者がグループメンバーであることを検証します。
【エージェントと記憶】
- AguiGroupChat.Agents:Microsoft Agent Framework に基づき IAgentGateway を実装。Mock 提供者が標準で利用可能であり、OpenAI 互換エンドポイント(Ollama / vLLM / Azure OpenAI / DeepSeek)の設定も可能。トリガー後はテキストイベントをストリーミングで還元し、関数呼び出しは TOOL_CALL_START としてファンアウトされます。
- 人機交互(HITL):ツールに ApprovalRequiredAIFunction をマークすることで承認が必要な設定が可能。モデル呼び出し時に実行を中断し、群聊に AGENT_INTERACTION_REQUEST 交互カードをブロードキャスト。トリガーしたユーザーのみが承認または拒否でき、決定後に同一セッションが再開されます。
- RAG 意味記憶:MemoryContextProvider が検索コンテキストを注入。ベクトルは pgvector に保存され、embedding は HTTP エンドポイントまたは LLamaSharp ローカルモデル(bge-m3 など)を利用。知識ベースはドキュメントのスライスと検索をサポートし、記憶範囲、TopK、類似度しきい値などの調整項目を備えています。
- 記憶擬人タイプ:各デジタル従業員に5段階の記憶プリセットと口調モードを設定可能。未設定時はプラットフォームのグローバル設定を継承し、後方互換性を維持します。
- 内蔵ツールセット:計算機、単位換算、グループ記憶検索、添付ファイル読み取りなどを含む。联网の web_search / read_url はデフォルトでオフ。
- 画像理解:画像添付があるターンの返信は視覚モデルにルーティングされ、画像は base64 マルチモーダルコンテンツとして渡されます。
- 思考モードブリッジ:外部サービスの REASONING_MESSAGE_CONTENT は独立したチャネルを通り、フロントエンドで折りたたみ可能な思考プロセスブロックとしてレンダリングされます。
【アプリケーションおよび拡張機能】
- ユーザー管理:登録、ログイン、ログアウト、パスワード変更、プロファイル維持。PBKDF2 パスワードハッシュとセッショントークンを使用し、WS/SSE はトークン認証をサポート。ログインインターフェースにはユーザー名列挙防止と失敗時のレート制限処理を実装。
- プラットフォーム級 RBAC:SuperAdmin / Admin / Operator / User の4段階。構成リストによるブートストラップまたはスーパー管理者のオンライン付与が可能。また、ユーザーグループとグループ別権限管理により、デジタル従業員とスキルの可視性ホワイトリストを制御します。
- スキルライブラリ:prompt / shell / http / dotnet の4種類に分類。実行能力を持つスキルはシステム管理者のみが変更可能。自然言語によるスキル定義の生成と試運転をサポート。
- ワンクリック組織編成:一文の要求から SSE ストリーミングでポスト方案を生成。組織構造、スキル、指派関係をプレビューした後に一括保存し、作成時に同時にグループを作成可能。
- 単聊(個人チャット)とカスタマーサポート知聚:デジタル従業員に対してべき等的にプライベートな2人単聊を作成可能。カスタマーサポート知聚では一般ユーザーが参加者として進入し、セッションは互いに隔離されます。
- グローバル検索:メッセージ、意味記憶、知識ベースを横断して検索し、可視性に基づいて結果をフィルタリングします。
- その他:リンクプロキシ、データエクスポート/インポート、ランタイムモデル設定、監査ログ、アカウント削除などの企業コンプライアンス機能を提供。
【デプロイとプロジェクト形態】
- Webデモ、プロトコルHubのみ、Windowsデスクトップ(WPF + WebView2)、クロスプラットフォームデスクトップ(Avalonia)の4つの実行方式を提供。デスクトップ版は複数インスタンスで同一のバックエンドプロセスを共有可能です。
- 持続化:JSON単一ファイルスナップショット、または postgres / mysql / sqlite データベースを選択可能。docker compose により postgres(pgvector) + 内蔵 Ollama + Web を一括起動でき、デフォルトで意味記憶が有効になります。
- 付属資産:サードパーティ接入SDK(AguiClient + AguiRealtimeClient、net8.0/net10.0 対応)、サンプルクライアント、ユニットテストおよびエンドツーエンドテスト、Playwright ブラウザ自動化スクリプトを同梱しています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.