75 lines
2.9 KiB
Markdown
75 lines
2.9 KiB
Markdown
# Implementação do Pix Seguro "Stateful" (Baseado em Estado)
|
|
|
|
**Data:** 14/01/2026
|
|
**Autor:** Antigravity (Agent)
|
|
|
|
## 1. O Problema (Abordagem Anterior)
|
|
|
|
Anteriormente, a ferramenta `GeneratePixTool` era "Stateless" (sem memória). O Agente precisava passar todos os parâmetros de uma vez:
|
|
`generate_pix(nome: "João", cpf: "123", valor: 150, suite: "Stilo")`
|
|
|
|
**Riscos:**
|
|
|
|
- A IA podia "esquecer" um parâmetro (ex: CPF) e a ferramenta falhava.
|
|
- A IA podia "alucinar" um preço (ex: inventar R$ 100 em vez de R$ 150).
|
|
- Dificuldade em lidar com tabelas de preços complexas (fins de semana, feriados).
|
|
|
|
## 2. A Solução (Abordagem "Stateful")
|
|
|
|
Transformamos o processo em um fluxo de **4 Etapas Seguras**. O "cérebro" do preço e dos dados agora fica no Banco de Dados (`Captain::Pricing` e `Captain::Reservation`), não na memória volátil da IA.
|
|
|
|
### O Novo Fluxo
|
|
|
|
#### Passo 1: Atualização de Dados (Cadastro)
|
|
|
|
- **Ferramenta:** `update_contact_info`
|
|
- **Uso:** Quando o cliente informa Nome e CPF.
|
|
- **Ação:** Salva os dados na tabela de contatos do Chatwoot.
|
|
- **Segurança:** Garante que o CPF está salvo antes de qualquer transação financeira.
|
|
|
|
#### Passo 2: Consulta de Valor (O "Cardápio")
|
|
|
|
- **Ferramenta:** `check_availability(suite: 'Categoria')`
|
|
- **Uso:** Quando o cliente pergunta "Quanto tá?".
|
|
- **Ação:** Consulta a tabela `Captain::Pricing` (NOVA).
|
|
- **Retorno:** "A Suíte Stilo custa R$ 150,00". O preço vem do banco, impossível de ser inventado.
|
|
|
|
#### Passo 3: Intenção de Reserva (O "Rascunho")
|
|
|
|
- **Ferramenta:** `create_reservation_intent(suite: 'Categoria', price: 150)`
|
|
- **Uso:** Quando o cliente diz "Eu quero reservar".
|
|
- **Ação:** Cria um registro na tabela `Captain::Reservation` com status `draft` (rascunho).
|
|
- **Segurança:** "Trava" o preço e a suíte escolhida no banco de dados.
|
|
|
|
#### Passo 4: Pagamento (O "Caixa")
|
|
|
|
- **Ferramenta:** `generate_pix` (Sem parâmetros!)
|
|
- **Uso:** Quando o cliente pede "Manda o Pix".
|
|
- **Ação:**
|
|
1. Busca a última reserva em `draft` vinculada à conversa.
|
|
2. Lê o valor travado (R$ 150) do banco.
|
|
3. Lê o CPF do contato do banco.
|
|
4. Gera o Pix Copia e Cola via Banco Inter.
|
|
- **Segurança:** A IA não tem permissão para alterar valores nesta etapa. Se não houver rascunho com o preço correto, a ferramenta nem executa.
|
|
|
|
## 3. Mudanças Técnicas Realizadas
|
|
|
|
- **Banco de Dados:**
|
|
- Criação da tabela `captain_pricings`.
|
|
- Adição do status `draft` em `captain_reservations`.
|
|
- **Ferramentas Criadas:**
|
|
- `UpdateContactTool`
|
|
- `CheckAvailabilityTool`
|
|
- `CreateReservationIntentTool`
|
|
- **Ferramentas Alteradas:**
|
|
- `GeneratePixTool` (Removidos todos os parâmetros de entrada).
|
|
|
|
## 4. Como Testar
|
|
|
|
No WhatsApp automatizado:
|
|
|
|
1. "Qual o valor da suíte X?" (Testa consulta)
|
|
2. "Quero reservar." (Testa rascunho)
|
|
3. "Me chamo [Nome], CPF [123...]" (Testa cadastro)
|
|
4. "Gera o Pix" (Testa execução blindada)
|