Visão Geral da Arquitetura
Arquitetura de Serviços
Seção intitulada “Arquitetura de Serviços”O Prodgy é uma plataforma distribuída composta por múltiplos serviços que se comunicam entre si. Cada serviço possui uma responsabilidade específica e pode ser implantado de forma independente.
Serviços Principais
Seção intitulada “Serviços Principais”| Serviço | Tecnologia | Porta | Descrição |
|---|---|---|---|
| API | Node.js / Express | 4000 | Backend principal — autenticação, CRUD, websockets, API REST |
| Web | React / Vite | 3000 | Frontend da plataforma (SPA) |
| Service | Node.js / Express / BullMQ | 5000 | Processamento de filas e tarefas assíncronas |
| Engine | Python / FastAPI / LangGraph | 8001 | Motor de execução de IA — orquestração de agentes e workflows |
| Studio | React / Vite | 5173 | Editor visual de workflows |
| Gateway | Node.js / Express / MCP SDK | 3100 | Servidor MCP — expõe integrações e ferramentas para clientes MCP externos |
| Agentic | Node.js / Express / AI SDK | 3200 | Orquestrador de agentes de IA — execução multi-step com provedores de LLM |
| Assistant | C# / .NET 8 | 443 / 8445 | Bot para Microsoft Teams (chamadas e mensagens) |
| Docs | Astro / Starlight | 4321 | Documentação da plataforma |
Diagrama de Comunicação
Seção intitulada “Diagrama de Comunicação”┌──────────┐ │ Web │ (3000) │ Studio │ (5173) └────┬─────┘ │ HTTP ┌────▼─────┐ │ API │ (4000) └──┬─┬─┬──┘ │ │ │ ┌──────────┘ │ └──────────┐ │ │ │ ┌─────▼────┐ ┌───▼────┐ ┌────▼─────┐ │ Service │ │ Engine │ │ Supabase │ │ (5000) │ │ (8001) │ │ (Postgres)│ └─────┬─────┘ └───┬────┘ └──────────┘ │ │ ┌────▼─────┐ │ │ Redis │◄──────┘ │ (6379) │ └──────────┘ ┌───────────┐ │ Gateway │ (3100) │ (MCP) │──── HTTP ──→ API (4000) └───────────┘ ┌───────────┐ │ Agentic │ (3200) │ (AI SDK) │──── HTTP ──→ API (4000) └───────────┘ ┌───────────┐ │ Assistant │ (443/8445) │ (.NET) │──── HTTP ──→ API (4000) └─────┬──────┘ Redis (6379) │ Microsoft Teams
Responsabilidades por Serviço
Seção intitulada “Responsabilidades por Serviço”API (Backend)
Seção intitulada “API (Backend)”O serviço central da plataforma. Todas as requisições dos frontends e integrações externas passam por ele.
- Autenticação e autorização (JWT + API Tokens)
- API REST para todos os recursos (agentes, integrações, conhecimento, etc.)
- WebSocket via Socket.io para atualizações em tempo real
- Gerenciamento de organizações, produtos e usuários
- Comunicação com Supabase (PostgreSQL)
- Proxy para Engine e Service
Web (Frontend)
Seção intitulada “Web (Frontend)”Aplicação React que fornece a interface da plataforma.
- Dashboard de monitoramento
- Playground de chat com agentes
- Gerenciamento de integrações e base de conhecimento
- Painel administrativo
- Tema claro/escuro
Service (Filas)
Seção intitulada “Service (Filas)”Processa tarefas assíncronas utilizando BullMQ com Redis como broker.
- Processamento de pipelines de dados
- Importação e indexação de documentos
- Execução de tarefas em background
- Retentativas automáticas com backoff configurável
Engine (Motor de IA)
Seção intitulada “Engine (Motor de IA)”Motor de execução de agentes de IA escrito em Python.
- Orquestração de agentes via LangGraph
- Busca semântica com embeddings (pgvector)
- Integração com provedores de LLM (OpenAI, Anthropic, Google)
- Execução de workflows e ferramentas MCP
Studio (Editor de Workflows)
Seção intitulada “Studio (Editor de Workflows)”Aplicação React para criação visual de workflows de agentes.
- Editor drag-and-drop de workflows
- Configuração de nos e conexões
- Preview e teste de workflows
- Disponível apenas para usuários do sistema
Gateway (Servidor MCP)
Seção intitulada “Gateway (Servidor MCP)”Servidor MCP que expõe as integrações e ferramentas do Prodgy para clientes MCP externos (Claude Code, Cursor, Windsurf, etc.).
- Protocolo MCP via HTTP (transporte StreamableHTTP)
- Ponte entre clientes de IA externos e o ecossistema de integrações do Prodgy
- Ferramentas da plataforma (busca de conhecimento, agentes, catálogo de integrações)
- Ferramentas dinâmicas de integração (carregadas das integrações ativas da organização)
- Comunicação com a API via tokens de serviço e tokens de usuário
Agentic (Orquestrador de Agentes)
Seção intitulada “Agentic (Orquestrador de Agentes)”Serviço de orquestração de agentes de IA utilizando Vercel AI SDK.
- Execução multi-step de agentes com
streamTextegenerateText - Suporte a múltiplos provedores de LLM (OpenAI, Azure OpenAI, Anthropic, Google)
- Endpoints de streaming (SSE) e execução direta
- Descoberta automática de agentes por workspace
- Carregamento dinâmico de ferramentas de integração via API
Assistant (Bot Teams)
Seção intitulada “Assistant (Bot Teams)”Serviço .NET para integração com Microsoft Teams.
- Mensagens e chamadas via Bot Framework
- Transcrição de audio em tempo real
- Agendamento de tarefas via Redis
- Requer certificado SSL e Azure AD
Bancos de Dados
Seção intitulada “Bancos de Dados”PostgreSQL (Supabase)
Seção intitulada “PostgreSQL (Supabase)”Banco de dados principal da plataforma.
| Aspecto | Detalhe |
|---|---|
| Provedor | Supabase (PostgreSQL gerenciado) |
| Extensoes | pgvector (embeddings), UUID, JSONB |
| Autenticação | JWT (anon key + service role key) |
| Acesso | Via client Supabase (Node.js e Python) |
Cache e broker de filas.
| Aspecto | Detalhe |
|---|---|
| Versão | 7+ (Alpine) |
| DB 0 | Filas BullMQ (Service) |
| DB 1 | Cache e agendamento (Assistant) |
| Persistência | AOF (Append-Only File) |
Comunicação entre Serviços
Seção intitulada “Comunicação entre Serviços”A autenticação entre serviços é feita via tokens estaticos nos headers:
| Comunicação | Header | Variável de Ambiente |
|---|---|---|
| Qualquer → API | X-Api-Key | PRODGY_API_TOKEN |
| Service → Engine | X-Api-Key | PRODGY_ENGINE_TOKEN |
| API → Service | X-Api-Key | PRODGY_SERVICE_TOKEN |
| Gateway → API | X-Api-Key | PRODGY_API_TOKEN |
| Agentic → API | X-Api-Key | PRODGY_API_TOKEN |
| Assistant → API | X-Api-Key | Configurado em appsettings.json |