Об этом проекте

Это хаб протокола группового чата, реализованный в соответствии со стандартом «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.