Pular para o conteúdo

xAI / Grok

Os mapeamentos abaixo refletem estruturas de exportação observadas em fevereiro de 2026, verificados com dados reais de exportação. O xAI não oferece suporte nativo ao PAM. Esses mapeamentos são orientações de compatibilidade com base no melhor esforço. Os formatos de exportação dos provedores podem mudar sem aviso prévio. Os importadores DEVEM ser versionados.

  1. Acesse grok.com → Configurações da conta → Download your data
  2. Baixe e extraia o arquivo ZIP

O ZIP contém arquivos em ttl/30d/export_data/<user_uuid>/:

ArquivoDescrição
prod-grok-backend.jsonArquivo principal: conversas, projetos, tarefas, posts de mídia
prod-mc-auth-mgmt-api.jsonPerfil do usuário e sessões
prod-mc-billing.jsonSaldo de créditos
prod-mc-asset-server/Arquivos enviados referenciados por UUID de asset (código, imagens, PDFs, etc.)

As conversas são encapsuladas: cada item é {"conversation": {...}, "responses": [...]}.

Campo do provedorCampo PAMTransformação
conversation.idprovider.conversation_iddireto
conversation.titletitledireto
conversation.create_timetemporal.created_atdireto (ISO 8601)
conversation.modify_timetemporal.updated_atdireto (ISO 8601)
conversation.user_idprovider.account_iddireto
conversation.starredraw_metadata.starredpreservar
conversation.system_prompt_nameraw_metadata.system_prompt_namepreservar
provider.namefixo "grok"

Cada resposta é encapsulada: {"response": {...}, "share_link": {...}}.

Campo do provedorCampo PAMTransformação
response._idprovider_message_iddireto
response._ididgerar UUID ou usar o original
response.parent_response_idparent_idmapear ID do provedor → ID PAM
children_idsreconstruir invertendo parent_response_id
response.senderroleveja Normalização de Role
response.messagecontent.textdireto
response.create_timecreated_atBSON → datetime.fromtimestamp(int(v["$date"]["$numberLong"])/1000, tz=UTC).isoformat()
response.modelmodeldireto
response.cited_web_search_resultscitationsmapear cada {url, title, preview} para Citation {url, title, snippet} (previewsnippet)
response.generated_image_urlsattachmentsmapear cada URL para Attachment com type: "image"
response.file_attachmentsattachmentsmapear cada UUID de asset
response.web_search_resultsraw_metadata.web_search_resultspreservar
response.thinking_traceraw_metadata.thinking_tracepreservar
response.thinking_start_timeraw_metadata.thinking_start_timepreservar
response.thinking_end_timeraw_metadata.thinking_end_timepreservar
response.agent_thinking_tracesraw_metadata.agent_thinking_tracespreservar
response.stepsraw_metadata.stepspreservar (cadeia de execução de ferramentas)
response.queryraw_metadata.querypreservar
response.query_typeraw_metadata.query_typepreservar
response.xpost_idsraw_metadata.xpost_idspreservar
response.webpage_urlsraw_metadata.webpage_urlspreservar
response.card_attachments_jsonraw_metadata.card_attachments_jsonpreservar
response.errorraw_metadata.errorpreservar
response.metadataraw_metadata.grok_metadatapreservar (renomeado para evitar colisão)

Quatro valores distintos de sender foram observados: "human", "assistant", "ASSISTANT" (maiúsculo) e nomes de modelo como "grok-3". A normalização DEVE ser case-insensitive. Trate qualquer valor que não seja "human" (case-insensitive) como "assistant".

Valor do provedorValor normalizado PAM
humanuser
assistantassistant
ASSISTANTassistant
grok-3 (nome do modelo)assistant
qualquer valor não-humanassistant

O Grok usa dois formatos diferentes de timestamp dentro do mesmo arquivo:

NívelFormatoTransformação
ConversaISO 8601direto
MensagemBSON {"$date":{"$numberLong":"<ms>"}}datetime.fromtimestamp(int(v["$date"]["$numberLong"])/1000, tz=UTC).isoformat()

Dois parsers separados são necessários para o mesmo arquivo.

  • Encapsulamento aninhado: Toda conversa é {conversation, responses} e toda resposta é {response, share_link}. É necessário desencapsular duas vezes.
  • Estrutura DAG: parent_response_id está presente na maioria das mensagens. Suporta conversas com ramificação. children_ids deve ser reconstruído invertendo as referências de parent.
  • Mensagens vazias: Algumas respostas têm message: "" (string vazia). Normalmente são respostas de geração de imagem onde o conteúdo está em generated_image_urls.
  • Steps = cadeia de uso de ferramentas: steps[] contém execução estruturada de ferramentas com tagged_text e tool_usage_results. Este é o equivalente do Grok ao function calling. Preservar em raw_metadata.
  • Thinking traces: Dois mecanismos — thinking_trace (string inline) e agent_thinking_traces[] (array). Ambos podem estar presentes na mesma resposta. Preservar em raw_metadata.
  • Arquivos de asset: Uploads são armazenados como diretórios nomeados por UUID em prod-mc-asset-server/, cada um contendo um arquivo content sem extensão. Use inspeção de conteúdo para determinar o tipo.

O suporte de importação PAM para o Grok é fornecido pelos SDK Converters oficiais mantidos pelo projeto PAM. Consulte o Guia de Importação para instruções gerais de importação e a Visão Geral de Provedores para a matriz completa de compatibilidade.