Agent Squad — Capa de privacidad PII (custodia dual)

Anonimización con Presidio antes de vectorizar · original confidencial intacto · fail-safe a cuarentena

01 / Fuente 02 / Anonimizar 03 / Custodia dual 04 / Indexar 05 / Consumir Documento / media entra al substrato crudo Presidio document.anonymize :8400 PII guard Cuarentena si Presidio cae → no indexa fail-safe Original confidencial · en el grafo intacto Texto anonimizado <PERSONA> <EMAIL> <ID> sin PII document_chunks + security_level vectorizado Cohere + LLM solo ven anonimizado clearance texto crudo PII touch fail-safe sin indexar PII intacta confidencial PII → <TOKEN> anonimizado chunk + embed e5 sin PII top-k (filtro clearance) por nivel Legend primary data policy / PII async batch data store

Custodia dual

  • • El original con PII se marca 'confidencial' y queda INTACTO en el grafo
  • • A document_chunks, al reranker y al LLM SOLO entra texto anonimizado
  • • Lo que sale del box ya no tiene PII cruda — por eso la tesis de cumplimiento es honesta

Fail-safe

  • • Si Presidio (:8400) cae, la ingesta NO indexa nada
  • • El original se encola en cuarentena — nunca filtra PII a medias
  • • Presidio corre como microservicio Docker local (127.0.0.1:8400)

Acceso por nivel

  • • Cada chunk lleva un security_level (público < interno < confidencial)
  • • document.query filtra por el clearance del request — fail-closed a 'público'
  • • Es control de acceso a nivel de aplicación, no criptográfico