minions-ai-agents/README.md

118 lines
5.6 KiB
Markdown

# Arthur - Agente de Suporte Técnico N2
> **Branch:** `arthur-suporte-tecnico-n2`
Agente de IA soberano para Suporte Técnico N2, operando 100% local em CPU. Correlaciona dados em tempo real (Zabbix), histórico de eventos e bases de conhecimento técnico para fornecer diagnósticos precisos em ambientes multitenant.
## 🎯 Objetivo
Automatizar a triagem e análise de chamados técnicos, oferecendo diagnósticos baseados em RAG e telemetria, com escalação inteligente para especialistas humanos quando necessário.
## 🏗 Arquitetura
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Telegram Bot │────▶│ Dispatcher │────▶│ Triage (1B) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Specialist (8B)│◀────│ RAG + Zabbix │
└─────────────────┘ └─────────────────┘
```
### Stack Tecnológica
- **Runtime:** Python 3.11+
- **LLMs:** Llama 3.2 1B (Triagem) + Llama 3.1 8B (Especialista) via Ollama
- **Vector DB:** Qdrant (Multitenant)
- **Monitoramento:** Zabbix API + Langfuse (Tracing)
- **Interface:** Telegram Bot
---
## 📞 Fluxo de Atendimento (Onboarding)
O Arthur identifica o usuário **antes** de processar qualquer solicitação técnica:
```
┌─────────────────────────────────────────────────────────────┐
│ Usuário envia mensagem no Telegram │
└───────────────────────────┬─────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Onboarding: is_known_user(telegram_id)? │
└───────────────────────────┬─────────────────────────────────┘
┌───────────────┴───────────────┐
▼ ▼
[NÃO CONHECIDO] [CONHECIDO]
│ │
▼ ▼
"Boa tarde! Primeira vez? "Boa tarde, João!"
Me confirma seu nome + Contexto histórico
e empresa?" carregado silenciosamente
│ │
▼ │
[Aguarda resposta] │
│ │
▼ ▼
register_user() ─────────────────────────►│
┌─────────────────────────────┐
│ Dispatcher → Triage → RAG │
│ → Specialist → Resposta │
└─────────────────────────────┘
```
**Regras de Segurança:**
- Usuários de empresas não-clientes recebem atendimento cordial, mas **nenhuma informação técnica** é fornecida.
- O Arthur atua como "mensageiro" nesses casos, registrando o recado para a equipe.
---
## 🚀 Como Rodar
### 1. Configuração
```bash
cp .env.example .env
# Edite o .env com suas credenciais (Telegram, Zabbix, etc.)
```
### 2. Executando com Docker
```bash
docker-compose up --build
```
O bot estará online e monitorando mensagens do Telegram.
### 3. Executando Homologação
```bash
docker exec arthur_agent python -c "from src.deployment.homologation import run_homologation; import asyncio; asyncio.run(run_homologation('staging'))"
```
---
## 📁 Estrutura do Projeto
```
src/
├── agents/
│ ├── dispatcher.py # State machine de atendimento
│ ├── triage_agent.py # Extração de entidades (1B)
│ ├── specialist_agent.py# Diagnóstico técnico (8B)
│ └── onboarding.py # Identificação de usuários
├── clients/
│ ├── telegram_client.py # Interface Telegram
│ ├── ollama_client.py # Inferência LLM
│ └── zabbix_connector.py# Telemetria
├── flywheel/
│ ├── episodic_memory.py # Memória de longo prazo
│ └── rag_pipeline.py # Ingestão de documentos
└── security/
└── dlp_filter.py # Redação de dados sensíveis
```
---
## 📚 Documentação Adicional
- [PRD Completo](.gemini/PRD_Suporte_Tecnico_N2.md)
- [Roadmap de Desenvolvimento](.gemini/TODO_Arthur.md)