Go to file
João Pedro Toledo Goncalves 14865c049f fix(ux): Corrigir timezone e adicionar variações humanas nas mensagens
PORQUE FOI FEITA ESSA ALTERAÇÃO?
Melhoria de UX. Correção de dois problemas identificados no teste:
1. Timezone: Bot usava UTC mostrando 'Boa noite' às 16h do Brasil
2. Formatação: Markdown literal (**text**) não era renderizado no Telegram

QUAIS TESTES FORAM FEITOS?
- pytest tests/test_onboarding.py: 12 testes passaram
- Teste manual no Telegram confirmando timezone e formatação HTML

A ALTERAÇÃO GEROU UM NOVO TESTE?
Não, testes existentes cobrem a lógica. Alterações foram:
- Uso de zoneinfo com America/Sao_Paulo
- parse_mode='HTML' em todas as mensagens
- 3 variações de boas-vindas (random.choice)
- 3 variações de confirmação de cadastro (agradecimento natural)
2026-02-02 16:30:17 -03:00
.gemini feat(agents): Implementar Fase 8 - Persona, Onboarding e Escalação Inteligente 2026-02-02 16:18:22 -03:00
docker feat: Fase 5 Completa - Implantação e Monitoramento 2026-02-01 12:37:00 -03:00
docs documentacao 2026-01-28 17:11:58 -03:00
src fix(ux): Corrigir timezone e adicionar variações humanas nas mensagens 2026-02-02 16:30:17 -03:00
tests feat(agents): Implementar Fase 8 - Persona, Onboarding e Escalação Inteligente 2026-02-02 16:18:22 -03:00
.env.example feat: Implementação da Fase 1 - Arquitetura de Dados do Agente Arthur 2026-02-01 11:52:07 -03:00
.gitignore update .gitgnore 2026-01-08 22:48:00 -03:00
Dockerfile Commit changes from oxy worktree 2026-01-08 20:54:18 -03:00
README.md feat(agents): Implementar Fase 8 - Persona, Onboarding e Escalação Inteligente 2026-02-02 16:18:22 -03:00
agent_logs_tg.txt feat(telegram): Integração Telegram e otimizações para CPU 2026-02-02 15:22:10 -03:00
docker-compose.yml feat(telegram): Integração Telegram e otimizações para CPU 2026-02-02 15:22:10 -03:00
package-lock.json Commit changes from oxy worktree 2026-01-08 20:54:18 -03:00
pytest.ini feat: Implementação da Fase 1 - Arquitetura de Dados do Agente Arthur 2026-02-01 11:52:07 -03:00
requirements.txt feat(telegram): Integração Telegram e otimizações para CPU 2026-02-02 15:22:10 -03:00

README.md

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