From cc7c6e4cf27f79482892e9ed5ad0c04ddd93cd7b Mon Sep 17 00:00:00 2001 From: DevEnv nis2-agile Date: Thu, 25 Jun 2026 16:05:37 +0200 Subject: [PATCH] =?UTF-8?q?[FIX]=20ARIA:=20regola=20anti-invenzione=20reco?= =?UTF-8?q?rd=20=E2=80=94=20stop=20confabulazione=20su=20reclami/ticket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- application/services/AIService.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/application/services/AIService.php b/application/services/AIService.php index ce3757d..87f31fb 100644 --- a/application/services/AIService.php +++ b/application/services/AIService.php @@ -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();