DEV Community

Edison Flores
Edison Flores

Posted on

Como verificar credenciais de agentes de IA: um guia técnico em português

Introdução

Este é um guia técnico para desenvolvedores falantes de português que querem implementar verificação de credenciais em agentes de IA. Vamos cobrir:

  1. Os 8 formatos de credenciais que existem hoje
  2. Como o pipeline de 12 etapas funciona
  3. Como integrar o UTA no seu código

Os 8 formatos

1. JWT (JSON Web Token)

Padrão IETF RFC 7519. O mais comum. Estrutura: header.payload.signature.

{
  "alg": "EdDSA",
  "typ": "JWT",
  "kid": "did:web:alice.example#key-1"
}
{
  "iss": "did:web:alice.example",
  "sub": "agent:bob",
  "exp": 1735689600,
  "scope": "read:files"
}
Enter fullscreen mode Exit fullscreen mode

2. W3C Verifiable Credential

Padrão W3C. Mais rico que JWT — suporta claims estruturadas e proof chains.

{
  "@context": ["https://www.w3.org/2018/credentials/v1"],
  "type": ["VerifiableCredential"],
  "issuer": "did:web:alice.example",
  "credentialSubject": {
    "id": "did:agent:bob",
    "scope": "read:files"
  },
  "proof": {
    "type": "Ed25519Signature2020",
    "verificationMethod": "did:web:alice.example#key-1",
    "proofValue": "..."
  }
}
Enter fullscreen mode Exit fullscreen mode

3. MCP Server Card

Especificação Anthropic MCP. Para servidores MCP que precisam declarar suas capacidades.

4. A2A Card

Protocolo Google A2A (Agent-to-Agent). Para agentes que falam diretamente com outros agentes.

5. ATC v3 (Agent Trust Card)

Formato proposto pela AliceLabs. Otimizado para agentes de IA — campos como model, provider, tool_scope.

6. EAT-AI

Entity Attestation Token (IETF RATS). Para atestar propriedades de dispositivos e sistemas.

7. ZTA Card

Zero Trust Agent Card. Variante focada em ambientes zero-trust.

8. X.509

O bom e velho certificado ITU-T. Ainda presente em todos os lugares.

O pipeline de 12 etapas

UTA processa cada credencial através destas etapas:

PARSER → DETECT → SCHEMA → CRYPTO → ISSUER → KEY_BINDING
       → POP → PROVENANCE → LIFECYCLE → EVIDENCE → POLICY → DECISION
Enter fullscreen mode Exit fullscreen mode

Cada etapa:

  1. PARSER: converte bytes para estrutura interna
  2. DETECT: identifica o formato
  3. SCHEMA: valida campos obrigatórios
  4. CRYPTO: verifica a assinatura criptográfica
  5. ISSUER: resolve a identidade do emissor
  6. KEY_BINDING: verifica que a chave usada está vinculada ao emissor
  7. POP: proof of possession — quem apresenta possui a chave privada?
  8. PROVENANCE: traça a origem da credencial
  9. LIFECYCLE: verifica vigência (not_before, expires_at, revocation)
  10. EVIDENCE: coleta evidência para auditoria
  11. POLICY: aplica políticas específicas do sistema
  12. DECISION: emite o veredicto final

Integração no seu código

JavaScript/TypeScript

npm install @marketnow/trust-core
Enter fullscreen mode Exit fullscreen mode
import { verify } from '@marketnow/trust-core';

const result = await verify(card);

switch (result.decision) {
  case 'PERMIT':
    // credencial válida, pode executar
    break;
  case 'DENY':
    console.error(`Negada em ${result.failed_stage}: ${result.reason}`);
    break;
  case 'UNDETERMINED':
    // não foi possível determinar — requer revisão humana
    break;
}
Enter fullscreen mode Exit fullscreen mode

Python (adapter)

pip install marketnow-trust
Enter fullscreen mode Exit fullscreen mode
from marketnow_trust import verify

result = verify(card)
if result.decision == 'PERMIT':
    execute_tool()
else:
    log_failure(result.failed_stage)
Enter fullscreen mode Exit fullscreen mode

API REST

curl -X POST https://www.marketnow.site/api/trust?action=verify \
  -H "Content-Type: application/json" \
  -d '{"card": "..."}'
Enter fullscreen mode Exit fullscreen mode

Benchmarks

  • 6.744 verificações/segundo (single core)
  • Latência p99: 2.1ms
  • Latência p50: 0.15ms
  • 480+ testes em Node.js, 16 em Python, 23 property tests

Casos de uso

Caso 1: Agente que invoca MCP servers

Antes de invocar um MCP server, verifique a credencial dele:

const result = await verify(mcpServerCard);
if (result.decision !== 'PERMIT') {
  throw new Error(`MCP server não confiável: ${result.failed_stage}`);
}
// agora sim, invoque
await mcpServer.callTool('read_file', { path: '/etc/passwd' });
Enter fullscreen mode Exit fullscreen mode

Caso 2: Bridge entre ecosistemas

Você tem um agente JWT-only e quer falar com um agente W3C VC-only:

const w3cCard = await translate(jwtCard, 'W3C_VC');
await sendToAgent(w3cCard);
Enter fullscreen mode Exit fullscreen mode

Caso 3: Revogação em tempo real

const result = await verify(card);
if (result.stages.LIFECYCLE === 'REVOKED') {
  // issuer revogou — bloqueie imediatamente
  blockAgent();
}
Enter fullscreen mode Exit fullscreen mode

Conclusão

Verificação de credenciais não é opcional em agentes de IA de produção. UTA te dá uma camada única que suporta os 8 formatos relevantes hoje.

Se você é dev brasileiro ou português trabalhando com IA, contribua — seja com código, traduções, ou casos de uso.


Repo: alicelabs-llc/universal-trust-adapter · API: marketnow.site/api/trust

Top comments (0)