Sobre o projeto
Este é um Hub de protocolo de chat em grupo implementado de acordo com o "Padrão de Protocolo de Extensão de Chat em Grupo AG-UI v1.0", escrito utilizando ASP.NET Core Minimal API em C# / .NET 10. Ele transforma o "chat em grupo" em uma camada de protocolo acessível para aplicações de terceiros: o ciclo de vida de grupos e membros, o fan-out de mensagens, as assinaturas e o downlink em tempo real seguem um conjunto unificado de convenções de eventos e códigos de erro, com agentes de IA participando como membros do grupo.
Capacidades do Protocolo
- Ciclo de Vida do Grupo: Criação, atualização e dissolução, correspondendo a GROUP_CREATED / GROUP_UPDATED / GROUP_DISBANDED.
- Gestão de Membros: Entrada, remoção, saída voluntária, alterações de função e perfil (GROUP_MEMBER_*).
- Fan-out de Mensagens: Mensagens de usuário são transmitidas via trios TEXT_MESSAGE_START/CONTENT/END, com escopos de visibilidade 'all', 'mentioned' e 'private', suportando revogação, confirmação de leitura e status de 'digitando'.
- Mecanismo de Assinatura: GROUP_SUBSCRIBE / GROUP_UNSUBSCRIBE / GROUP_SUBSCRIBE_ACK / GROUP_STATE_SNAPSHOT.
- Transmissão Dual: Full-duplex via WebSocket (/ws) e downlink unidirecional via SSE (/sse), com keep-alive; o SSE permite assinatura e cancelamento dinâmico via interface HTTP.
- Regras de Gatilho de Agentes (Protocolo §6): Gatilhos por menção, monitoramento total, palavras-chave ou contexto (decidido pelo modelo com base no contexto).
- API de Uplink HTTP: Cobre criação de grupos, descoberta/entrada em centros de conhecimento de atendimento, geração automática de nomes de grupo, gestão de membros, envio de mensagens, upload/download de anexos, revogação, leitura, decisões de interação humano-máquina, snapshots e listas de membros; erros retornam code + message, mapeados para 403/404/409/400. Interfaces de escrita sobrescrevem campos de identidade via token, e interfaces de leitura validam se o chamador é membro do grupo.
Agentes e Memória
- AguiGroupChat.Agents: Implementa IAgentGateway baseado no Microsoft Agent Framework; fornece mock pronto para uso ou configuração de endpoints compatíveis com OpenAI (Ollama / vLLM / Azure OpenAI / DeepSeek). Após o gatilho, eventos de texto são injetados via streaming, e chamadas de função utilizam fan-out TOOL_CALL_START.
- Interação Humano-Máquina (HITL): Ferramentas marcadas com ApprovalRequiredAIFunction exigem aprovação; a execução do modelo é interrompida, um cartão de interação AGENT_INTERACTION_REQUEST é transmitido ao grupo, e apenas o gatilho pode aprovar ou rejeitar para retomar a sessão.
- Memória Semântica RAG: MemoryContextProvider injeta contexto de recuperação; vetores são armazenados no pgvector, com embeddings via endpoint HTTP ou modelo local LLamaSharp (ex: bge-m3); a base de conhecimento suporta fragmentação de documentos e recuperação, com parâmetros ajustáveis de escopo de memória, TopK e limiar de similaridade.
- Tipos de Memória Personificada: Cada funcionário digital pode ter cinco predefinições de memória e modos de tom de voz; caso não configurado, utiliza o global da plataforma para compatibilidade.
- Conjunto de Ferramentas Internas: Inclui calculadora, conversão de unidades, recuperação de memória de grupo, leitura de anexos; web_search / read_url ficam desativados por padrão.
- Compreensão de Imagens: Respostas com anexos de imagem são roteadas para modelos de visão, com imagens passadas como conteúdo multimodal base64.
- Ponte de Modo de Raciocínio: O conteúdo REASONING_MESSAGE_CONTENT de serviços externos segue um canal independente, permitindo que o frontend renderize blocos de raciocínio colapsáveis.
Funcionalidades de Aplicação e Extensão
- Gestão de Usuários: Registro, login, logout, alteração de senha e manutenção de perfil; hash de senha PBKDF2 e tokens de sessão; autenticação via token para WS/SSE; proteção contra enumeração de usuários e rate limit em falhas de login.
- RBAC de Nível de Plataforma: Quatro níveis (SuperAdmin / Admin / Operator / User), configuráveis via lista de bootstrap ou concedidos online pelo SuperAdmin; suporte a grupos de usuários e autorização por grupo para visibilidade de funcionários digitais e habilidades.
- Biblioteca de Habilidades: Dividida em prompt / shell / http / dotnet; habilidades com capacidade de execução são gerenciáveis apenas por administradores do sistema; suporta geração de definições de habilidades e testes via linguagem natural.
- Orquestração de Organização em Um Clique: Gera planos de cargos via streaming SSE a partir de um requisito textual; permite pré-visualizar estrutura organizacional, habilidades e atribuições antes de salvar e criar grupos simultaneamente.
- Chat Individual e Centros de Conhecimento: Criação idempotente de chats privados com funcionários digitais; em centros de conhecimento, usuários comuns entram como participantes com sessões isoladas.
- Busca Global: Pesquisa em mensagens, memória semântica e base de conhecimento, com filtragem por visibilidade.
- Capacidades Corporativas: Proxy de links, exportação/importação de dados, configuração de modelos em tempo de execução, logs de auditoria e exclusão de contas.
Implantação e Formatos do Projeto
- Modos de Execução: Demonstração Web, Hub de protocolo puro, Desktop Windows (WPF + WebView2) e Desktop multiplataforma (Avalonia); versões desktop suportam múltiplas instâncias compartilhando o mesmo processo de backend.
- Persistência: Opções de snapshot em arquivo JSON único ou bancos de dados postgres / mysql / sqlite; docker compose para inicialização rápida de postgres(pgvector) + Ollama interno + Web, com memória semântica ativada por padrão.
- Extras: SDK de integração para terceiros (AguiClient + AguiRealtimeClient, suporte net8.0/net10.0), clientes de exemplo, testes unitários e end-to-end, e scripts de automação de navegador Playwright.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.