Об этом проекте
Это хаб протокола группового чата, реализованный в соответствии со стандартом «AG-UI Group Chat Extension Protocol Standard v1.0» с использованием ASP.NET Core Minimal API на C# / .NET 10. Он превращает «групповой чат» в протокольный слой для сторонних приложений: жизненный цикл групп и участников, рассылка сообщений, подписки и доставка в реальном времени следуют единому соглашению о событиях и кодах ошибок, где AI-агенты участвуют как члены группы.
Возможности протокола
- Жизненный цикл группы: создание, обновление, расформирование (GROUP_CREATED / GROUP_UPDATED / GROUP_DISBANDED).
- Управление участниками: вступление, удаление, добровольный выход, изменение ролей и профилей (GROUP_MEMBER_*).
- Рассылка сообщений: сообщения пользователей транслируются триплетом TEXT_MESSAGE_START/CONTENT/END с тремя уровнями видимости (all, mentioned, private); поддерживаются отзыв, подтверждение прочтения и статус «печатает».
- Механизм подписок: GROUP_SUBSCRIBE / GROUP_UNSUBSCRIBE / GROUP_SUBSCRIBE_ACK / GROUP_STATE_SNAPSHOT.
- Двойная передача: полнодуплексный WebSocket (/ws) и однонаправленный SSE (/sse) с heartbeat-поддержанием; SSE поддерживает динамическую подписку через HTTP-интерфейс.
- Правила триггеров агентов (§6 протокола): триггеры по упоминанию, полный мониторинг, ключевые слова и контекстные триггеры (решение о ответе принимает модель).
- HTTP Upstream API: охватывает создание групп, поиск/вход в базу знаний поддержки, автогенерацию имен групп, управление участниками, отправку сообщений, работу с вложениями, отзыв, прочтение, принятие решений человеком, снимки состояния и списки участников. Ошибки возвращаются в формате code + message с маппингом на 403/404/409/400. Интерфейсы записи перекрывают поля идентификации токеном, интерфейсы чтения проверяют членство в группе.
Агенты и память
- AguiGroupChat.Agents реализует IAgentGateway на базе Microsoft Agent Framework: доступен встроенный mock-провайдер или конфигурация OpenAI-совместимых эндпоинтов (Ollama / vLLM / Azure OpenAI / DeepSeek). После триггера текстовые события передаются потоком, вызовы функций — через TOOL_CALL_START.
- Человеко-машинное взаимодействие (HITL): инструменты с меткой ApprovalRequiredAIFunction требуют одобрения. При вызове модель приостанавливается, в чат рассылается карточка AGENT_INTERACTION_REQUEST; только инициатор может одобрить или отклонить действие, после чего сессия возобновляется.
- Семантическая память RAG: MemoryContextProvider внедряет контекст поиска, векторы хранятся в pgvector, эмбеддинги через HTTP или локально через LLamaSharp (например, bge-m3). База знаний поддерживает сегментацию документов и поиск с настраиваемыми параметрами (диапазон памяти, TopK, порог сходства).
- Персонализация памяти: для каждого цифрового сотрудника можно настроить один из пяти пресетов памяти и стилей общения; при отсутствии настроек используются глобальные параметры платформы.
- Встроенный набор инструментов: калькулятор, конвертер единиц, поиск по памяти группы, чтение вложений; web_search / read_url отключены по умолчанию.
- Понимание изображений: ответы с изображениями маршрутизируются в визуальные модели, изображения передаются в base64.
- Мост режима размышлений: REASONING_MESSAGE_CONTENT внешних сервисов идет по отдельному каналу, фронтенд отрисовывает сворачиваемые блоки процесса мышления.
Приложения и расширенные функции
- Управление пользователями: регистрация, вход, выход, смена пароля, профили; хеширование PBKDF2 и токены сессий; аутентификация в WS/SSE; защита от перебора имен пользователей и ограничение частоты попыток входа.
- Платформенный RBAC: четыре уровня (SuperAdmin / Admin / Operator / User); настройка через списки или назначение супер-администратором; групповые разрешения для управления видимостью цифровых сотрудников и навыков.
- Библиотека навыков: четыре типа (prompt / shell / http / dotnet); изменение навыков с исполнительным кодом доступно только системным администраторам; поддержка генерации определений навыков на естественном языке.
- Оркестрация организации в один клик: генерация схемы должностей по текстовому запросу через SSE; предпросмотр структуры, навыков и назначений перед сохранением с возможностью синхронного создания групп.
- Личные чаты и база знаний поддержки: идемпотентное создание приватных чатов с цифровыми сотрудниками; в базе знаний поддержки обычные пользователи входят как участники с изолированными сессиями.
- Глобальный поиск по сообщениям, семантической памяти и базе знаний с фильтрацией по правам доступа.
- Прокси ссылок, экспорт/импорт данных, конфигурация моделей в рантайме, аудит-логи и удаление аккаунтов для соответствия корпоративным стандартам.
Развертывание и формы проекта
- Четыре варианта запуска: Web-демо, только протокольный Hub, Windows Desktop (WPF + WebView2) и кроссплатформенный Desktop (Avalonia); десктопные версии поддерживают несколько экземпляров с общим бэкенд-процессом.
- Персистентность: JSON-снимки или БД (Postgres / MySQL / SQLite); docker compose для быстрого запуска Postgres(pgvector) + встроенный Ollama + Web с включенной семантической памятью.
- В комплекте: SDK для сторонней интеграции (AguiClient + AguiRealtimeClient, поддержка net8.0/net10.0), примеры клиентов, unit- и e2e-тесты, а также скрипты автоматизации Playwright.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.