O que o setor pede
- Um item tem preço e estoque que mudam por minuto, e um agente que afirma “temos no seu tamanho” precisa de um valor de segundos atrás.
- A cliente diz o que não quer (“nada em preto”), e uma busca que ignora isso desperdiça a conversa.
- O mesmo carrinho passa por dois agentes e pelo checkout da loja, e o pedido chega horas depois: a venda precisa ser ligada ao cartão exato que o assistente mostrou.
- Um agente de pós-venda e um de campanha contatam a mesma pessoa; um deles precisa esperar.
1. Os tipos: item, pedido e o estado do assistente
O item de loja é um tipo compartilhado: existe na Niadra enquanto alguém o vê, interage com ele ou o observa. O preço e a disponibilidade vêm ao vivo da plataforma de e-commerce; um snapshot da busca pode ser mostrado, nunca afirmado. Derive o tipo da tabela de variantes comniadra types derive e complete o que só a loja sabe:
ownership: subject), com as linhas, os estados de sucesso (delivered, kept) e o carimbo do token de exposição em cada linha, que a medição de desfechos lê. O estado de trabalho do assistente é um tipo com ownership: agent: o passo do atendimento, a oferta mostrada e uma nota do carrinho marcada pii, com teto de 16 KB e retenção de 30 dias (Memória de trabalho). Com os tipos no documento object-types e a funcionalidade state ligada, a plataforma envia o estado por POST /v1/objects/push e um worker de resolução lê de novo o que a Niadra pede.
2. O turno do assistente
Cada resposta do assistente é um turno gravado: a leitura do contexto com o bloco de restrições e o estado, a busca de itens, o que a lista mostrou, a resposta.search_products pela vinculação (exclude_colors: ["black"], size: "40"), e a Niadra mede, chamada a chamada, se a busca honrou o que recebeu. Em TypeScript, as interações de exposição vão como itens do lote (a aba cURL da página de sinais).
3. O contrato de afirmação
O assistente afirma preços, promoções e disponibilidade. O contrato de varejo confere cada número contra o que a busca devolveu, no processo do agente, sem modelo:price_list e price_sale, pelos termos “de” e “por”), e cada um é conferido contra o valor do mesmo papel que a busca mostrou, dentro dos 15 segundos de claim_max_age. Um preço que ficou velho no chat é reescrito só quando é inequívoco (uma cópia literal do campo, com o valor fresco no turno); “está esgotado” sem uma busca no turno é no_evidence, marcado. “Separei o 40 para você” sem uma chamada de reserve_item é uma promessa sem ação. “Quer que eu separe por cor?” nunca dispara: está no corpus negativo, que o niadra contract test do CI mantém. Veja Afirmações.
4. Coordenação: uma despedida, um orçamento
Dois agentes falam com a mesma cliente: o assistente, na conversa, e o de campanha, que manda uma oferta dias depois. O documentocoordination da loja declara a finalidade marketing com orçamento de 2 contatos por 7 dias e token exigido, o canal whatsapp com janela de 24 horas e modelo pago fora dela, e o gateway de WhatsApp da loja. A despedida da conversa é um efeito com chave, então sai uma vez, seja qual for o agente que a tenta:
deny com budget_exhausted e a hora em que a próxima libera; uma cliente que pediu para não receber ofertas está na lista de supressão, que o agente de campanha honra até com a Niadra fora do alcance.
5. A venda, pedido por pedido
O pedido chega da plataforma como evento de sistema, com o token de exposição que o app copiou em cada linha do carrinho. O documentomeasurement declara o desfecho:
line); uma sem token, ao mesmo item com que a cliente interagiu na janela de 7 dias (identity, provável, com a confiança do método ao lado do valor). Uma linha devolvida por tamanho vira um atributo inferido, que só se aplica quando a cliente pede “o meu tamanho”. GET /v1/measure/attribution soma por dia, agente e método, e POST /v1/measure/reconcile confere o total contra o CSV do BI da loja. Antes de rodar um experimento sobre o bloco de restrições, niadra counterfactual --tool search_products --element hard diz, dos turnos gravados, se a busca muda de fato o que devolve quando o bloco entra. Veja Desfechos e atribuição.
O que fica desligado
Tudo acima começa desligado. Uma loja que só quer o contexto e a memória de cada cliente não liga nada; uma que quer ver por que o assistente disse o que disse ligaturns; state, signals, claims, coordination e measurement entram cada um quando o time tem o tipo, o contrato, o gateway ou a definição de receita prontos.
Próximos passos
Tipos de objeto e estado
o item compartilhado, o conjunto de trabalho e as releituras.
Sinais e restrições
“nada em preto” nas ferramentas do agente.
Agentes de WhatsApp
a conversa em si: turnos, verificação e transferência.
Desfechos e atribuição
do cartão ao pedido, e o contrafactual.

