minions-ai-agents/README.md

5.6 KiB

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

cp .env.example .env
# Edite o .env com suas credenciais (Telegram, Zabbix, etc.)

2. Executando com Docker

docker-compose up --build

O bot estará online e monitorando mensagens do Telegram.

3. Executando Homologação

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