Você pode testar esta rota diretamente em nossa documentação interativa.

Endpoint

POST /api/externalAPIs/public/investigateV2

Parâmetros

message_id
string (UUID)
required

UUID da mensagem a ser investigada. Aceita também o alias messageId (camelCase).

generalInstructions
string
required

Instruções ou questionamento do gestor sobre a resposta da IA. Aceita também o alias general_instructions (snake_case).

autoCaller
boolean
default: "false"

Quando true, considera todos os callers da mensagem na análise — busca todos os registros de cost_control sem filtrar por caller, executa análises prévias dos callers auxiliares (ex: retrieveMemory, decisionChain) e inclui-as como contexto na análise principal. Ignora os campos caller e callers.

callers
string[]

Filtro por múltiplos callers. Mesmo que outros callers sejam informados, createAssistantResponse é sempre incluído. Ignorado se autoCaller for true. O campo caller (string) é aceito como alias de callers.

provider
string
default: "cerebras"

Provider do LLM a ser usado na análise (ex: "openai", "anthropic", "cerebras"). Aceita também o alias mainProvider.

model
string

Modelo específico do LLM (ex: "gpt-4", "claude-3-opus", "gpt-oss-120b"). Se não informado, usa o modelo padrão do provider. Aceita também o alias mainModel.

Exemplo

curl -X POST {{BASE_URL}}/api/externalAPIs/public/investigateV2 \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "message_id": "123e4567-e89b-12d3-a456-426614174000",
    "generalInstructions": "Por que a IA respondeu de forma tão formal nesta mensagem?",
    "autoCaller": true,
    "provider": "openai",
    "model": "gpt-4"
  }'

Resposta

{
  "code": 200,
  "message": "Success",
  "data": {
    "analysis": {
      "json": {
        "summary": "A resposta formal foi influenciada pelas instruções do sistema que enfatizam profissionalismo.",
        "snippets": [
          {
            "aiSnippet": "Olá! Como posso ajudá-lo hoje?",
            "instructionSnippets": [
              {
                "snippet": "Sempre mantenha um tom profissional e formal...",
                "explanation": "Esta instrução direcionou a IA a usar linguagem formal.",
                "score": 8
              }
            ]
          }
        ]
      },
      "formato": "json"
    },
    "error": null,
    "tokens_used": {
      "prompt_tokens": 1500,
      "completion_tokens": 800,
      "total_tokens": 2300
    }
  }
}

Campos da Resposta

analysis
object

Resultado da análise. null em caso de erro.

error
string | null

Mensagem de erro, se houver. null em caso de sucesso.

tokens_used
object

Tokens consumidos na análise.

Erros

CódigoDescrição
400Campos obrigatórios ausentes ou inválidos
401Token inválido ou ausente
404Mensagem ou cost_control não encontrado
500Erro interno do servidor

Para investigação com dados completos de processamento e métricas, veja também Investigate Message (V1).