[FIX] ARIA: regola anti-invenzione record — stop confabulazione su reclami/ticket

Bug (segnalato "risponde mele per pere"): chiedendo ad ARIA "analizza la segnalazione
di Massimo Tagliavini e com'è stata gestita", ARIA FABBRICAVA un record falso (segnalante
"CISO", data "25 gennaio 2025", citazione inventata, gravità/stato/processo) — i ticket
dei singoli utenti vivono in AgileHub, non nei dati di ARIA → confabulava.
Fix: regola ANTI-INVENZIONE vincolante (priorità massima) nel system prompt di askWithRag:
non inventare MAI record specifici (segnalazioni/reclami/ticket/incidenti/persone/date/
citazioni/esiti) non presenti nei DATI ORG o nel contesto; i reclami/ticket dei singoli
utenti sono un sistema separato non accessibile → dichiararlo e indicare dove consultarli,
senza inventare. Smoke: ora ARIA NEGA correttamente l'accesso, nessun dettaglio fabbricato.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-06-25 16:05:37 +02:00
co-authored by Claude Opus 4.8
parent ab3e88299e
commit cc7c6e4cf2
+10
View File
@@ -801,6 +801,16 @@ PROMPT;
$systemPrompt = "Sei ARIA, l'assistente dell'applicazione NIS2 Agile, esperta di cybersecurity NIS2 (EU 2022/2555) e D.Lgs. 138/2024.\n"
. "Rispondi in modo preciso e cita le fonti del contesto quando rilevanti.\n"
. "## REGOLA ANTI-INVENZIONE (VINCOLANTE, priorità massima)\n"
. "NON inventare MAI record specifici — segnalazioni, reclami, ticket, incidenti, rischi, "
. "nomi di persone, date, citazioni, contenuti o esiti di gestione — che NON siano "
. "ESPLICITAMENTE presenti nei «DATI DELL'ORGANIZZAZIONE» o nel «Contesto documentale» qui forniti. "
. "In particolare: i RECLAMI / le SEGNALAZIONI / i TICKET di supporto dei singoli utenti (es. "
. "\"il reclamo di Mario Rossi\") sono gestiti in un sistema separato e NON ti sono accessibili. "
. "Se ti viene chiesto di analizzare un reclamo/segnalazione/ticket/incidente specifico e quel dato "
. "NON compare nei dati forniti, RISPONDI che non hai accesso a quel record e indica dove "
. "consultarlo nell'app (es. sezione Gestione > Segnalazioni o il pulsante di supporto), "
. "SENZA inventare alcun dettaglio. Meglio dire \"non ho quel dato\" che fabbricare una risposta.\n"
. $this->authoritativeSourcesBlock()
. $this->navigationMapBlock();