Sales Agent

Sales Agent - Documentação Completa

📋 Visão Geral

O Sales Agent é um agente autônomo do CSuite que converte intenção comercial em decisão executável com governança. Ele analisa contexto do cliente (RFM, histórico, crédito), avalia produtos e estoque, e gera decisões comerciais respeitando políticas.

Status:Template Implementado (v1.0.0) - Pronto para uso


🎯 Propósito

O Sales Agent existe para:

  1. Converter Intenção em Decisão: Transformar intenção comercial em ações executáveis
  2. Governar Decisões: Respeitar políticas de desconto, crédito e autonomia
  3. Automatizar Vendas: Executar ações automaticamente quando confiança é alta
  4. Escalar Complexidade: Escalar para humanos quando necessário

🏗️ Arquitetura

Fluxo de Execução

1. Recebe Payload
   
2. Build Context
   ├─ Customer (RFM, segment, credit)
   ├─ Product (SKU, stock, base_price)
   ├─ Pricing (tier, max_discount)
   └─ History (last_quote, conversion_rate)
   
3. Determine Decision Type
   ├─ SALES.QUOTE (RFM >= 80)
   ├─ SALES.FOLLOW_UP (RFM >= 60)
   └─ SALES.ESCALATION (RFM < 60)
   
4. Calculate Confidence
   
5. Propose Actions
   ├─ CREATE_QUOTE
   ├─ SEND_MESSAGE
   ├─ SCHEDULE_FOLLOWUP
   └─ ESCALATE_TO_HUMAN
   
6. Policy Validation
   
7. Policy Engine Integration
   
8. Execute Actions
   
9. Record Outcome

Componentes


🔌 Integrações

1. Policy Engine

Base URL: https://csuite.internut.com.br/executive

Endpoint Descrição Uso
POST /v1/policy/evaluate Avaliar decisão Validação de políticas
POST /v1/policy/decisions Histórico de decisões Auditoria

2. Sales Decision API

Base URL: https://csuite.internut.com.br/sales-decision

Endpoint Descrição Uso
POST /4c/decide Decisão 4C Lite Decisões para revendas

3. Sales Manager API

Base URL: https://csuite.internut.com.br/sales-manager

Endpoint Descrição Uso
GET /manager/today Tasks do dia Lista de tasks
POST /tasks/{task_id}/complete Completar task Marcar task como concluída

4. Customer Decisions API

Base URL: https://csuite.internut.com.br/customer-decisions

Endpoint Descrição Uso
POST /decide Decisão completa Decisões de clientes

5. Pricing Agent

Base URL: https://csuite.internut.com.br/pricing

Endpoint Descrição Uso
POST /run Calcular preço Cálculo de preço final

📊 Decision Types

SALES.QUOTE

Condição: RFM score >= 80

Ações:
- CREATE_QUOTE - Criar orçamento
- SEND_MESSAGE - Enviar mensagem com orçamento

Autonomia: L2 (Follow-up automático)

SALES.FOLLOW_UP

Condição: RFM score >= 60 e < 80

Ações:
- SCHEDULE_FOLLOWUP - Agendar follow-up
- SEND_MESSAGE - Enviar mensagem de follow-up

Autonomia: L1 (Execução automática)

SALES.ESCALATION

Condição: RFM score < 60 ou confiança < 0.7

Ações:
- ESCALATE_TO_HUMAN - Escalar para humano

Autonomia: L0 (Sempre recomendação)

SALES.REJECT

Condição: Cliente sem crédito ou produto sem estoque

Ações:
- Nenhuma ação (rejeição silenciosa)


⚙️ Configuração

Variáveis de Ambiente

# URLs dos Serviços
CSUITE_POLICY_ENGINE_URL=https://csuite.internut.com.br/executive
CSUITE_SALES_DECISION_URL=https://csuite.internut.com.br/sales-decision
CSUITE_SALES_MANAGER_URL=https://csuite.internut.com.br/sales-manager
CSUITE_CUSTOMER_DECISIONS_URL=https://csuite.internut.com.br/customer-decisions
CSUITE_PRICING_URL=https://csuite.internut.com.br/pricing

# Database
DB_HOST=localhost
DB_USER=user
DB_PASSWORD=password
DB_NAME=csuite_agents

🚀 Execução

Via FastAPI

cd agents/sales
uvicorn main:app --reload --host 0.0.0.0 --port 8000

Exemplo de Request

curl -X POST http://localhost:8000/run \
  -H "Content-Type: application/json" \
  -d '{
    "org_id": 0,
    "customer": {
      "id": "123",
      "segment": "PREMIUM",
      "rfm_score": 85,
      "credit_status": "APPROVED"
    },
    "product": {
      "sku": "SKU-001",
      "stock": 10,
      "base_price": 10000
    },
    "pricing": {
      "price_tier": "A",
      "max_discount": 8
    },
    "history": {
      "last_quote_at": "2025-01-01",
      "conversion_rate": 0.3
    }
  }'

Exemplo de Response

{
  "status": "success",
  "agent": "CSuite.Sales.Agent",
  "result": {
    "decision": {
      "decision_type": "SALES.QUOTE",
      "confidence": 0.85,
      "proposed_actions": [
        {
          "type": "CREATE_QUOTE",
          "price": 9200.00,
          "discount_pct": 8.0
        },
        {
          "type": "SEND_MESSAGE",
          "message": "Orçamento especial: R$ 9.200,00"
        }
      ]
    },
    "context": {...},
    "execution": {
      "status": "EXECUTED",
      "actions": [...]
    },
    "decision_log_id": 12345,
    "run_id": 67890
  }
}

📋 Policies

Validações Locais

  1. Confiança Mínima: 0.7
  2. Decisões com confiança < 0.7 são escaladas

  3. RFM Mínimo para Autonomia L1: 70

  4. Clientes com RFM < 70 requerem aprovação humana

  5. Desconto Máximo: 8%

  6. Descontos acima de 8% são bloqueados

  7. Preço Mínimo: > 0

  8. Preços <= 0 são inválidos

Integração com Policy Engine

O Sales Agent integra com o Policy Engine para:
- Validação de políticas de desconto
- Validação de crédito
- Instrumentação de decisões (pg_decision_log)
- Criação de snapshots (ctx_decision_context_snapshot)
- Registro de outcomes (ctx_policy_outcomes)
- Registro de runs (agent_runs)


🔍 Troubleshooting

Erro: "Policy Engine não disponível"

Causa: Policy Engine não está acessível ou importação falhou

Solução:
- Verificar se csuite-executive está rodando
- Verificar caminho de importação em decision.py
- O agente funciona em modo standalone (sem Policy Engine)

Erro: "Confiança baixa"

Causa: RFM score baixo ou estoque indisponível

Solução:
- Verificar RFM score do cliente
- Verificar estoque do produto
- Decisão será escalada automaticamente

Erro: "Desconto máximo excedido"

Causa: Desconto calculado excede 8%

Solução:
- Verificar max_discount no payload
- Desconto será limitado a 8% automaticamente


📚 Documentação Relacionada


🎯 Próximos Passos

Melhorias Sugeridas

  1. Integração com APIs Externas
  2. [ ] Integrar CREATE_QUOTE com sistema de orçamentos real
  3. [ ] Integrar SEND_MESSAGE com WhatsApp/Email
  4. [ ] Integrar SCHEDULE_FOLLOWUP com sistema de agendamento

  5. Melhorias de Decisão

  6. [ ] Integrar com Pricing Agent para cálculo de preço
  7. [ ] Usar Sales Decision API para decisões 4C Lite
  8. [ ] Melhorar cálculo de confiança com ML

  9. Testes e Deploy

  10. [ ] Testes unitários
  11. [ ] Testes de integração
  12. [ ] Deploy em Docker Swarm
  13. [ ] Documentação OpenAPI

Última atualização: 2025-01-04
Versão: 1.0.0

🔊 Text-to-Speech

1.0x
1.0
Pronto para reproduzir