71 lines
4.6 KiB
Markdown
71 lines
4.6 KiB
Markdown
# TODO - Projeto Arthur (Agente de Suporte Técnico N2)
|
|
|
|
Este documento serve como o roteiro técnico detalhado para a implementação do Agente Arthur. O foco é soberania (local-only), otimização de CPU e integração auditável via e-mail.
|
|
|
|
## Fase 1: Planejamento e Arquitetura de Dados
|
|
- [x] **Consolidação do PRD N2:** Definição de escopo, hardware e lógica de atendimento.
|
|
- [ ] **Mapeamento do Tenant Resolver (Financeiro):**
|
|
- Definir endpoints/queries no Sistema Financeiro de Produção para buscar: `ID`, `Nome`, `Domínios de E-mail` e `Status`.
|
|
- Criar esquema Pydantic para o objeto `TenantContext`.
|
|
- [ ] **Design do Schema de Auditoria:**
|
|
- Criar modelo de banco de dados (PostgreSQL) para registrar: `TicketID`, `Remetente`, `Contexto Coletado`, `Pensamento do Modelo`, `Resposta Enviada` e `Status de Resolução`.
|
|
- [ ] **Mapeamento de Segredos:**
|
|
- Listar todas as credenciais necessárias (Zabbix, DB, E-mail) e definir variáveis p/ Docker Secrets.
|
|
|
|
## Fase 2: Infraestrutura e Conectores Core (Músculos)
|
|
- [ ] **Ambiente de Inferência Local:**
|
|
- Configurar Ollama ou llama.cpp para rodar Llama 3.2 1B (Triagem) e Llama 3.1 8B (Especialista) em CPU.
|
|
- Otimizar threads (Xeon v3) para evitar contenção.
|
|
- [ ] **Configuração do Qdrant Multitenant:**
|
|
- Inicializar Qdrant com persistência `on_disk: true`.
|
|
- Definir coleção com suporte a `payload filtering` por `customer_id`.
|
|
- [ ] **Módulo de Comunicação (Mail Client):**
|
|
- Implementar `MailListener` (IMAP) para `mail.itguys.com.br`.
|
|
- Implementar `MailResponder` (SMTP) com suporte a threads de e-mail (Headers Message-ID/References).
|
|
- [ ] **Conector Zabbix API:**
|
|
- Implementar wrapper usando `zabbix_utils`.
|
|
- Criar funções específicas: `get_host_status`, `get_active_problems`, `get_neighbor_alerts` (Causa Raiz).
|
|
- [ ] **Segurança de Infraestrutura:**
|
|
- Configurar suporte a **Docker Secrets** no orquestrador.
|
|
- Garantir usuário de API do Zabbix com permissão **Read-Only**.
|
|
- Implementar **Regex Redaction Filter** (DLP) no módulo de input para sanitizar logs e anexos.
|
|
|
|
## Fase 3: Orquestração e Raciocínio (Cérebro)
|
|
- [ ] **Desenvolvimento do Multi-Agent Dispatcher:**
|
|
- Criar o orquestrador (LangGraph) que gerencia o estado do chamado.
|
|
- Incluir lógica de `RateLimiter` por Tenant na entrada do Dispatcher (Fila de Prioridade/Descarte).
|
|
- [ ] **Implementação do Agente de Triagem (1B):**
|
|
- Prompt Engineering para extração de entidades (Cliente, Tecnologia, Problema).
|
|
- Lógica de decisão de ferramentas (Single Dispatcher).
|
|
- [ ] **Desenvolvimento do Analista de Causa Raiz:**
|
|
- Código Python para comparar alertas do host atual com alertas de sub-rede/vizinhança no Zabbix.
|
|
- [ ] **Implementação do Agente Especialista (8B):**
|
|
- Prompt de Resolução N2: Recebe o "Contexto Enriquecido" (Zabbix + Histórico 24h + Manuais RAG) e gera a resposta técnica final.
|
|
- [ ] **Camada de Validação e Segurança (Self-Correction):**
|
|
- Implementar Schemas Pydantic rigorosos para todas as saídas de ferramentas.
|
|
- Criar nó de "Crítico/Reflexão" no LangGraph para validar a existência de hosts/serviços antes de sugerir ações.
|
|
- Adicionar asserções de segurança (Defensive Programming) para bloquear ações em domínios não permitidos.
|
|
|
|
## Fase 4: Flywheel e Qualidade (Aprendizado)
|
|
- [ ] **Pipeline de Ingestão de RAG:**
|
|
- Criar script para processar diretórios de Markdowns/PDFs técnicos e indexar no Qdrant com metadados de tecnologia.
|
|
- **Segurança:** Implementar passo de sanitização onde anexos rodam em sandbox e apenas texto puro é extraído.
|
|
- [ ] **Parser de Feedback de Encerramento:**
|
|
- Desenvolver lógica para ler respostas de e-mail dos técnicos e identificar se o caso foi "Resolvido" ou "Reaberto".
|
|
- [ ] **Módulo de Memória Episódica:**
|
|
- Lógica para salvar casos resolvidos como "Lições Aprendidas" para futuras consultas similares.
|
|
|
|
## Fase 5: Implantação e Monitoramento
|
|
- [ ] **Configuração do Langfuse Local:**
|
|
- Subir Langfuse via Docker para rastreamento (tracing) de todos os chamados.
|
|
- [ ] **Teste de Stress e Latência:**
|
|
- Validar tempo de resposta com 5+ chamados simultâneos (Contenção de CPU Xeon).
|
|
- [ ] **Homologação com Sistema Financeiro:**
|
|
- Validar a busca dinâmica de clientes em tempo real.
|
|
|
|
---
|
|
### Diretrizes para Agentes de Execução:
|
|
1. **CPU Only:** Nunca tente usar bibliotecas que exijam CUDA/GPU sem autorização expressa.
|
|
2. **Auditabilidade:** Toda decisão do Arthur deve gerar um log no PostgreSQL.
|
|
3. **Isolamento:** Garanta que os dados da ENSEG nunca vazem para um diagnóstico da OESTEPAN via filtros de Payload no Qdrant.
|