Pular para o conteúdo principal

Padrões de Agentes

A capacidade de um agente é decidida inteiramente pelas permissões da credencial que ele carrega. Projetar um agente é, portanto, quase sempre decidir o que conceder — e isso é mais fácil a partir de formas conhecidas do que de uma folha em branco.

Conceda as permissões de um padrão e o agente faz aquele trabalho e nada além.

Duas permissões não são as que você imaginaria

Um agente "somente leitura" provisionado apenas com entity.read não consegue contar registros nem detectar duplicatas, porque nenhuma das duas operações lê uma entidade:

  • Contar é uma operação de estatísticas e exige statistics.read.
  • Detectar duplicatas roda o motor de comparação e exige entity.match.

As duas falham fechado, então o sintoma é uma recusa, não uma resposta errada — mas é uma recusa confusa se você acreditava ter concedido apenas leitura.

Escolhendo um padrão​

PadrãoRespondeAltera dados
Analista somente leitura"O que existe aqui, e com que qualidade?"Não
Triagem de duplicatas"Estes dois são o mesmo, e devem ser unidos?"Sim
Carga em massa"Suba este lote e me diga o que falhou."Sim
Atendimento de privacidade"Alguém exerceu um direito sobre seus dados — execute."Sim

Os padrões se combinam. Um agente pode ter qualquer combinação; as permissões simplesmente somam.

Analista somente leitura​

Lê e relata. Não altera nada, porque nenhuma dessas permissões concede escrita.

OperaçãoRespondePermissão
countEntitiesQuantos registros de um tipo existemstatistics.read
searchEntitiesQuais registros correspondem a este texto ou atributosearch.read
getEntityUm registroentity.read
getEntity360Um registro com suas origens, histórico e relacionamentosentity.read
listRelationshipsComo os registros se conectamentity.relationship.read
getDqScoreA pontuação de qualidade por trás de um registrodq.score.read
listAuditEntriesO que mudou, e quem mudouaudit.read

O mascaramento importa mais aqui: um valor que o operador não pode ver é mascarado antes de chegar ao agente, então o agente não consegue relatá-lo nem se perguntado diretamente.

Triagem de duplicatas​

Trabalha a fila de revisão manual — os pares que o motor pontuou como prováveis, mas não certos. Veja revisar correspondências potenciais para entender o que um revisor de fato decide.

OperaçãoFazPermissãoClasse
findDuplicatesEncontra prováveis duplicatas de um registroentity.matchLeitura
listPotentialMatchesLê a fila de revisãopotential-match.readLeitura
getPotentialMatchLê um par e sua pontuaçãopotential-match.readLeitura
confirmMatchConfirma um par da fila e une os registrosentity.merge + potential-match.resolveEdição
rejectMatchRegistra que um par não é correspondênciapotential-match.resolveEdição
snoozeMatchAdia um par sem decidi-lopotential-match.resolveEdição
markNotAMatchExclui um par de pontuações futurasentity.read + potential-match.resolveEdição
mergeEntitiesUne registros diretamente, fora da filaentity.merge + entity.readDestrutiva
unmergeEntitiesDesfaz uma consolidação, restaurando o que foi absorvidoentity.unmerge + merge-history.readDestrutiva

Resolver um par da fila e consolidar diretamente são permissões diferentes. Um agente pode ter autorização para trabalhar a fila — onde o motor já propôs o par e uma pessoa pode auditar a decisão — sem poder unir dois registros quaisquer que ele mesmo escolheu.

Carga em massa​

Sobe lotes e relata o resultado. A carga em si roda de forma assíncrona, então o agente submete e depois consulta o andamento.

OperaçãoFazPermissãoClasse
createBulkJobSubmete um lotebulk-job.createDestrutiva
getBulkJobRelata o progressobulk-job.readLeitura
getBulkJobResultsRelata o que teve sucesso e o que falhoubulk-job.readLeitura
cancelBulkJobInterrompe um trabalho em andamentobulk-job.cancel + bulk-job.readEdição

Submeter conta como destrutivo porque o tamanho da mudança não é visível na chamada — uma submissão pode tocar um único registro ou um milhão.

Atendimento de privacidade​

Trata solicitações do titular e consentimento. Conceda-o de forma restrita.

OperaçãoFazPermissãoClasse
listDsrsLê as solicitações em abertodsr.readLeitura
createDsrRegistra uma nova solicitaçãodsr.create + entity.readEdição
updateDsrStatusMove a solicitação entre estadosdsr.updateEdição
fulfillDsrExecuta a solicitação, inclusive a eliminaçãodsr.updateDestrutiva
listConsentRecordsLê a que o titular consentiuconsent-record.readLeitura
withdrawConsentRecordRevoga um registro de consentimentoconsent-record.updateEdição

Uma solicitação de eliminação revoga todo registro cuja base legal é o consentimento, retendo os que se apoiam em outra base — o resultado correto, e não algo para se descobrir depois do fato.

O que todo padrão tem em comum​

ComportamentoVale para
Duas chamadas para alterar qualquer coisa. Toda escrita é uma prévia e, em seguida, uma confirmação separada com um token de uso único. O modelo não consegue produzir esse token sozinho.Toda operação de escrita, sempre
A permissão também é verificada na segunda chamada. Confirmar não contorna nada.Toda operação de escrita
getMe exige apenas me.read. Um agente sempre consegue relatar as próprias permissões efetivas — inclusive o que lhe falta.Todo padrão
O mascaramento é aplicado antes de o agente ver o valor. Não há superfície sem máscara a que recorrer.Todo padrão

A coluna Classe é um sinal para o cliente. Operações de leitura não mudam nada. Edições são reversíveis. Operações destrutivas são sinalizadas para que um cliente bem-comportado pergunte a uma pessoa antes de prosseguir — mas essa pergunta é uma cortesia do cliente, e um cliente configurado de forma permissiva pode pulá-la.

Mantenha as duas coisas separadas ao avaliar risco. A pergunta pode ser desligada; o contrato de duas chamadas e a verificação de permissão são impostos pelo endpoint e não podem. Um agente configurado para aprovar tudo continua sendo um agente que só faz o que suas permissões permitem.

Provisionando um agente​

PassoO que você faz
1Escolha o padrão e leia as permissões que suas tabelas listam
2Crie um papel com exatamente essas, e nada mais
3Atribua-o à credencial que o agente vai carregar — uma pessoa, ou um token de sistema se o agente rodar sem supervisão
4Pergunte ao agente o que ele pode fazer. getMe relata as permissões efetivas, então você verifica a concessão em vez de presumi-la

O passo 4 pega as duas surpresas acima numa única chamada.

Descobrindo o conjunto completo​

Estas são operações representativas, não o catálogo inteiro. O endpoint publica a própria lista de ferramentas, cada entrada nomeando o que faz e a permissão que exige. Consulte-a em vez de copiar as operações para a sua própria configuração.

A seguir​