fix(policies): detect_pii/pii_leakage solo con recognizers de patrón fiables

Con Presidio real (imagen Docker) y `en_core_web_sm`, el recognizer de PERSON daba
falsos positivos sobre los textos de los escenarios (técnicos, en español, analizados
con el modelo `en`) → `01_sip` y `02_mos` salían `blocked_by_guardrail` en lugar de
`awaiting_approval`/`completed`. Se quitan `PERSON` y `PHONE_NUMBER` de
`detect_pii.entities` (input) y `PHONE_NUMBER` de `pii_leakage.entities` (output);
quedan los recognizers puramente de patrón (`EMAIL_ADDRESS`, `ES_NIF`, `IP_ADDRESS`,
`IBAN_CODE`), fiables. El bloqueo por NIF/email del demo sigue funcionando.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Juan
2026-05-11 14:38:52 +02:00
co-authored by Claude Opus 4.7
parent eac2ed02a4
commit c414e16357
+6 -2
View File
@@ -4,7 +4,11 @@ description: Política base aplicada a agentes de operación de plataforma de vo
input_validators:
- type: detect_pii
config:
entities: [PERSON, EMAIL_ADDRESS, PHONE_NUMBER, ES_NIF, IP_ADDRESS, IBAN_CODE]
# Solo recognizers de patrón fiables: el modelo spaCy en_core_web_sm que usa
# Presidio en la imagen Docker da falsos positivos de PERSON sobre los textos
# técnicos de los escenarios (que están en español y se analizan con el modelo
# en). PERSON/PHONE_NUMBER necesitarían en_core_web_lg o un modelo es_*.
entities: [EMAIL_ADDRESS, ES_NIF, IP_ADDRESS, IBAN_CODE]
severity_on_match: block
- type: prompt_injection
config:
@@ -45,7 +49,7 @@ output_validators:
requires_approval: {type: boolean}
- type: pii_leakage
config:
entities: [EMAIL_ADDRESS, PHONE_NUMBER, ES_NIF, IP_ADDRESS]
entities: [EMAIL_ADDRESS, ES_NIF, IP_ADDRESS]
severity_on_match: block
- type: forbidden_action_keywords
config: