# Proveniência e atribuição

Preserve a origem de uma memória sem confundir metadados de origem com autorização ou propriedade.

- Canonical: https://docs.xmemo.dev/pt-br/docs/concepts/provenance-attribution
- Locale: pt-BR
- Content-Locale: pt-BR
- Canonical-Content-Digest: 019b1c6aab84d15e8b791ec3f9b7ecd3d545865415ceba204e14301dea665c6a
- Edition-Digest: cb4c8e7b5c5e1eec89ab68db31ca9c545a9e8b14acb49c9350dbd51eb80b69b0
- Source-Revision: sha256:3922476e09ce20617ab30ead32aa1ccd8f95082d0f395b172b3eadd0d8fd2d45

## A proveniência faz parte do registro público da memória

O contrato de memória expõe a proveniência junto com content, path, source_identity, agent_id, agent_instance_id_hash e agent_instance_source. Proveniência é uma evidência estruturada de como um registro foi produzido; não é um bearer token e não pode ampliar o acesso do chamador.

- source_identity é o rótulo compacto do chamador/origem usado pelos caminhos de escrita e auditoria.
- provenance é um objeto JSON para campos de origem, adaptador, evento ou outras evidências.
- agent_instance_id_hash é o valor de atribuição da instalação que preserva a privacidade.

## Os eventos do agente carregam sua origem

AgentEvent.to_memory_candidate cria um MemoryCandidate com provenance contendo source=agent_integration, adapter=<event source> e event_id. Os metadados do candidato também mantêm o tipo do evento, o horário, o ID do agente, o ID da tarefa, o nome da ferramenta, o comando, o caminho do arquivo e o status depois que o sanitizador compartilhado é executado.

```json
{
  "provenance": {
    "source": "agent_integration",
    "adapter": "codex",
    "event_id": "evt_<stable-event-id>"
  },
  "metadata": {
    "agent_event": {
      "event_type": "decision_made",
      "task_id": "<task-id>"
    }
  }
}
```

## Escreva a atribuição junto com a memória

Os modelos públicos de requisição remember e store aceitam source e provenance. Forneça rótulos estáveis e não secretos no momento da captura; mantenha a credencial de acesso no cabeçalho ou no ambiente e deixe o servidor sanitizar o conteúdo, os metadados e a proveniência antes da persistência.

```http
POST /v1/remember
X-API-Key: <your-assigned-api-key>
Content-Type: application/json

{
  "content": "The deployment decision was verified.",
  "path": "projects/memory-os/decisions",
  "source": "codex",
  "provenance": {
    "source": "agent_integration",
    "adapter": "codex",
    "event_id": "evt_<stable-event-id>"
  }
}
```

## A sanitização não apaga a linhagem

O sanitizador de persistência percorre estruturalmente o conteúdo, os metadados e a proveniência. Valores com formato de credencial são removidos; se ocorrer uma redação, o servidor registra metadados de auditoria privacy.server_write_sanitizer enquanto preserva campos seguros de proveniência. Trate o registro resultante como evidência sanitizada, não como um arquivo bruto de eventos.

## Usuário do ChatGPT

Dê ao ChatGPT acesso duradouro às suas preferências do XMemo, fatos do projeto, decisões e TODOs sem colar tokens bearer no chat.

Conecte o servidor MCP hospedado do XMemo pelo fluxo OAuth do app ChatGPT/OpenAI e aprove a concessão memory:read e memory:write para sua conta do XMemo.

Salve uma preferência de teste ou anotação de projeto, inicie um novo chat e peça ao ChatGPT para recuperá-la via XMemo antes de prosseguir.

Se o OAuth falhar ou as ferramentas não aparecerem, saia do servidor MCP no app host, reconecte a URL do servidor XMemo e tente novamente antes de criar tokens diretos.

## Desenvolvedor Copilot / Codex

Transfira decisões do repositório, convenções de código, notas de correção de bugs e histórico de tarefas entre agentes de IDE e CLI.

Use OAuth para VS Code / GitHub Copilot e Gemini CLI quando disponível. Para Copilot CLI, Codex, Cursor ou outros clientes MCP diretos, mantenha XMEMO_KEY no ambiente local ou cofre de segredos e defina um XMEMO_AGENT_INSTANCE_ID estável.

Registre uma decisão da base de código ou correção de bug e peça ao próximo agente de IDE ou CLI para recuperar o contexto relevante do XMemo antes de editar.

Se as recuperações estiverem vazias, verifique o caminho da configuração MCP selecionada, a variável de ambiente XMEMO_KEY para clientes diretos e eventuais credenciais OAuth desatualizadas no app host.

## Líder de piloto de equipe / corporativo

Avalie a memória compartilhada com controles de conta, atribuição de origem, fluxos de exportação/exclusão e evidências de configuração seguras para revisores.

Crie ou acesse o espaço de trabalho protegido do XMemo, convide usuários aprovados e conecte cada cliente via OAuth ou credencial direta com escopo de acordo com os selos de disponibilidade.

Peça para um membro do piloto salvar uma memória de equipe de teste, confirme a atribuição de origem no XMemo e revise os caminhos de exclusão/exportação e suporte.

Se um membro não conseguir se conectar, verifique as permissões de função, aprovação OAuth, status de prontidão do cliente e orientações de suporte antes de emitir um novo token.

## Operador de agentes autônomos

Permita que agentes headless ou agendados registrem progresso, recuperem decisões anteriores e mantenham uma identidade estável e não secreta de instância.

Obtenha /api/v1/mcp/config/autonomous-agent. Prefira auth_modes.oauth quando o executor suportar OAuth + cabeçalhos personalizados; use auth_modes.xmemo_key com XMEMO_KEY de um cofre de segredos apenas para executores totalmente headless.

Execute uma tarefa de teste que grave progresso no XMemo, reinicie o executor e confirme se ele recupera esse progresso usando o mesmo XMEMO_AGENT_INSTANCE_ID.

Se a atribuição mudar ou as recuperações se dividirem entre instâncias, persista XMEMO_AGENT_INSTANCE_ID fora do git e verifique se o executor não o está gerando a cada início.
