Skip to content

Arquitetura

O agent-passport compõe três camadas por cima de identidades did:key: um passaporte assinado pelo operador (uma VC com scopes), ações assinadas pelo agente, e um verificador que valida a cadeia.

flowchart LR
  OP["DID do operador"] -- issuePassport --> P["Passaporte (VC)<br/>name · model · scopes"]
  P -- sobre --> AG["DID do agente"]
  AG -- signAction --> ACT["Ação (JWT)"]
  P --> VF{{"verificador"}}
  ACT --> VF
  VF --> OK["confiável se:<br/>ação→agente · passaporte→operador confiável · scope cobre a ação"]

Mapa de módulos

Módulo Responsabilidade
did.ts Identidades did:key Ed25519 (operadores & agentes)
passport.ts Emitir/verificar a VC do passaporte com scopes; helpers de scope
action.ts Assinar/verificar ações individuais do agente (did-jwt)

Princípios de design

  • Atestação, não imposição — prova identidade/autoridade; impões o assertScope na fronteira das tools e registas as ações assinadas no teu audit store.
  • À prova de adulteração — as ações são assinadas pela chave do agente, por isso um servidor comprometido não as forja.
  • A confiança está ancorada nos operadores — os verificadores mantêm uma allow-list de DIDs de operadores que aceitam.
  • Offline — o did:key resolve localmente; usa expiresIn curto porque não há revogação.