Skip to main content
Se o seu agente já emite traces de OpenTelemetry com os atributos gen_ai.*, ele pode escrever na Niadra sem chamada nova no caminho da conversa: aponte um exportador OTLP para a Niadra, e cada chamada ao modelo vira as mensagens da conversa, com quem falou e quando. É o jeito mais rápido de começar a construir memória a partir de um agente que você não quer mexer, e um caminho comum para capturar uma plataforma de fornecedor que exporta traces mas não tem integração com a Niadra. A leitura continua por context(), pelas ferramentas do histórico ou pelo MCP. O OpenTelemetry cobre o lado da escrita.

O endpoint

A Niadra recebe OTLP por HTTP com corpo em JSON (Content-Type: application/json):
Autentique com a chave da fonte em Authorization: Bearer, a mesma que o seu agente usaria no SDK, com o escopo track. A resposta é a do OTLP: spans recusados contam em partialSuccess.rejectedSpans, com os motivos em errorMessage. Corpo em protobuf é recusado com 422; configure o exportador em http/json.

O que a Niadra lê de um span

As convenções semânticas gen_ai ainda mudam, e várias gerações de atributos convivem nas bibliotecas em uso hoje. A Niadra lê em cascata, então você não precisa travar a versão de biblioteca por nossa causa: Duas coisas não têm atributo no OpenTelemetry, então você mesmo marca, no span ou no recurso: Cada span repete a conversa até ali, então cada mensagem ganha a chave de idempotência da posição dela na conversa: um histórico exportado de novo é deduplicado, em vez de duplicado.
Atributos de span podem parar em todo destino para onde o seu coletor exporta. Prefira um id interno (app_user_id ou enduser.id) a um telefone ou e-mail, e mande os atributos da Niadra só no pipeline que vai para a Niadra. Dado pessoal nunca viaja na URL.

Passos

1. Aponte um exportador para a Niadra

Acrescente um exportador OTLP ao lado do que você já tem, com a codificação em JSON. O SDK de OpenTelemetry para Node.js tem exportador em JSON. O SDK de Python só exporta em protobuf, então mande os spans dele para um OpenTelemetry Collector e deixe o Collector repassar em JSON para a Niadra.

2. Marque o canal e o cliente

Marque os atributos da Niadra no span que leva as mensagens, ou uma vez no recurso, para um processo que atende um canal só. Mantenha gen_ai.conversation.id estável durante a conversa inteira: ele vira o conversation_id.
Os atributos são lidos do próprio span e do recurso dele. Quando a instrumentação do cliente do modelo grava as mensagens num span filho, marque os atributos da Niadra no recurso, ou copie para aquele span com um processador de spans.

3. Ligue a captura de conteúdo

A maioria das instrumentações gen_ai deixa o conteúdo das mensagens de fora por padrão. A Niadra precisa dele para construir memória, então ligue a captura de conteúdo na instrumentação que você usa (em muitas instrumentações de Python, OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true). Se preferir manter o conteúdo fora dos seus outros destinos, rode um segundo pipeline só para a Niadra.

4. Confira se os eventos chegaram

Um span vira mensagens com as mesmas garantias de um lote: o conteúdo bruto é gravado antes da resposta e os eventos são ordenados pelo momento em que aconteceram. Leia a linha do tempo do cliente para conferir:

Quando usar o SDK

O OpenTelemetry registra o que o modelo viu e disse. O SDK acrescenta o que os traces não levam: o contexto lido antes da resposta e o context_stamp de cada turno do agente, a verificação com verify(), a ligação entre handles com identify(), as ações de agente com closes, as transferências e o fim da conversa. É isso que alimenta a medição do aproveitamento do contexto. Um caminho comum é começar pelo OpenTelemetry para construir memória desde o primeiro dia e depois acrescentar context() e as escritas do SDK nos agentes que atendem o cliente.

Próximos passos

Eventos e o lote

o que é um evento e como ele é deduplicado.

Início rápido

ler o contexto com o SDK.

Receber traces OTLP

a referência do endpoint.

Webhooks dos seus sistemas

eventos de CRM, ERP e help desk.