Puoi censurare dati sensibili da un documento chiedendo a un agente IA in linguaggio naturale, e la censura avviene localmente, all’interno del file, sulla tua macchina. Con GroupDocs.Redaction.Mcp collegato a Claude Desktop, Claude Code, Cursor o GitHub Copilot, basta un solo prompt:

Redigi ogni indirizzo email in case-file.pdf e dimmi quale file hai salvato.

La versione passo‑passo con configurazione e risoluzione dei problemi è nella documentazione: Come censurare dati sensibili da documenti con agenti IA.

Perché un modello di chat non può semplicemente censurare il documento per te?

Un modello linguistico che legge un documento e ne scrive uno nuovo sta producendo una riscrittura, non una censura. La riscrittura può omettere un’occorrenza, modificare una formulazione che non gli avevi chiesto di cambiare e non tocca mai il file originale. Un rettangolo nero disegnato in un visualizzatore PDF ha un difetto simile: il testo sotto la casella è ancora nel file e può essere copiato. L’agente non dovrebbe fare la rimozione. Dovrebbe proporre il modello e chiamare uno strumento, e il motore dovrebbe sostituire il testo corrispondente nel documento stesso.

Questa è la divisione del lavoro in GroupDocs.Redaction.Mcp. L’agente propone i modelli e avvia le chiamate. Il motore li applica esattamente. Non c’è alcun classificatore che decide cosa sembra sensibile, quindi il comportamento è verificabile, e la decisione su cosa conta come sensibile rimane a te.

Metodo 1: Sostituire il testo con un modello

Usalo per qualsiasi cosa tu possa descrivere come espressione regolare: indirizzi email, codici fiscali, numeri di telefono, numeri di conto, nome di un cliente. L’agente chiama redact_text, che sostituisce il testo che corrisponde al modello nel documento e salva una copia censurata. L’originale resta intatto.

Redigi qualsiasi cosa corrispondente a \b\d{3}-\d{2}-\d{4}\b, numeri di sicurezza sociale statunitensi, in case-file.pdf. Mostrami il modello prima di eseguirlo.

Chiedere di vedere prima il modello vale il turno extra. Un’espressione regolare che hai letto è una censura che puoi difendere, e una troppo permissiva rimuove più di quanto intendi mentre una troppo restrittiva lascia dati dietro. Il parametro replacement predefinito è [REDACTED], che mantiene l’output facile da revisionare.

Risultato atteso: una copia censurata nella cartella di output e un messaggio dell’agente che indica il file salvato.

Metodo 2: Pulire i luoghi in cui un modello di testo non può raggiungere

Pulire il testo principale e spedire un file i cui commenti a margine e campo autore indicano ancora la persona è il modo più comune in cui una censura fallisce. I dati sensibili si trovano in quattro posti, e ciascuno ha il proprio strumento:

Dove si trovano i dati Strumento
Testo principale redact_text
Scansioni, foto, firme redact_image_area
Commenti e note adesive redact_annotations
Autore, azienda, date nelle proprietà erase_metadata

Elimina tutte le annotazioni in case-file.docx, poi cancella i campi autore, azienda e data. Applica ogni passaggio al file prodotto dal precedente.

redact_annotations può sostituire il testo dell’annotazione o, con deleteAll, rimuovere le annotazioni completamente. erase_metadata accetta un elenco di campi separati da virgole come Author,Company,CreatedTime, e il valore predefinito è All. L’istruzione di concatenazione è importante: ogni chiamata scrive un nuovo file, quindi un agente che alimenta l’originale al secondo passo elimina il risultato del primo.

Risultato atteso: un file finale prodotto dall’ultimo passo della catena, con tutti i nomi dei file intermedi visibili nella trascrizione.

Metodo 3: Censurare prima di inviare il prompt e tenere i valori fuori dalla conversazione

La censura pre‑LLM significa che le stringhe sensibili non raggiungono mai un modello ospitato in primo luogo. I documenti rimangono sulla tua macchina, ma la conversazione no. Con un modello ospitato nel cloud, ciò che l’agente dice viaggia verso il provider del modello, e nel lavoro di censura ciò può includere le stringhe che stai rimuovendo. “Ho censurato jane.smith@example.com” ha appena inviato l’indirizzo che stavi proteggendo.

Censura il nome del cliente usando il nostro modello standard. Non ripetere il testo corrispondente nella tua risposta.

Gli strumenti di censura restituiscono il nome del file salvato, non il conteggio delle corrispondenze. Un numero nella risposta dell’agente è una sua lettura, ad esempio derivata dalla ricerca del testo prima della censura, quindi trattalo come un controllo incrociato e non come output dello strumento. Per l’impostazione più sicura, esegui un modello locale così nulla esce dal tuo perimetro, il che fornisce anche un’automazione di censura documentale che resta locale end‑to‑end.

Risultato atteso: un nome di file salvato nella risposta, senza stringhe sensibili nella trascrizione.

Sessione di esempio (abbreviata)

You:    Redact every email address in case-file.pdf and tell me which file you saved.
Agent:  I will use this pattern: [\w.+-]+@[\w-]+\.[\w.]+
        -> redact_text(file: case-file.pdf, pattern: ..., replacement: "[REDACTED]")
Agent:  Saved case-file_redacted.pdf.
You:    For case-file.docx, delete all annotations and clear the document properties.
Agent:  -> redact_annotations(file: case-file.docx, deleteAll: true)
        Saved the output file.
        -> erase_metadata(file: the file saved by the previous step, fields: "All")
        Saved the output file.
You:    Redigi ogni indirizzo email in case-file.pdf e dimmi quale file hai salvato.
Agent:  Userò questo modello: [\w.+-]+@[\w-]+\.[\w.]+
        -> redact_text(file: case-file.pdf, pattern: ..., replacement: "[REDACTED]")
Agent:  Salvato case-file_redacted.pdf.
You:    Per case-file.docx, elimina tutte le annotazioni e cancella le proprietà del documento.
Agent:  -> redact_annotations(file: case-file.docx, deleteAll: true)
        Salvato il file di output.
        -> erase_metadata(file: the file saved by the previous step, fields: "All")
        Salvato il file di output.

Quali sono i limiti della modalità di valutazione?

Dillo chiaramente prima di qualsiasi esecuzione importante. Senza licenza il server gira in modalità di valutazione: un documento per processo, una censura, limitata a 4 sostituzioni, più badge di prova. Un modello che compare dieci volte viene censurato quattro volte e lasciato intatto sei volte, e l’output può apparire pulito. Il limite è solo per dimostrazioni. Non distribuire mai l’output di un’esecuzione non licenziata e chiedi prima get_license_status: “Qual è lo stato della licenza del server di censura?”

Se un risultato soddisfa una normativa come il GDPR è una decisione che rimane a te. Il server rimuove ciò che gli chiedi di rimuovere, nel file che gli fornisci.

  • PDF su Linux. Su Linux, inclusa l’immagine Docker, redact_image_area e erase_metadata attualmente falliscono sui file PDF (la gestione delle immagini del motore PDF dipende da System.Drawing, che .NET supporta solo su Windows); entrambi funzionano sui documenti Word, e redact_text funziona sui PDF. Esegui la censura di aree PDF e la rimozione dei metadati su Windows con dnx.

FAQ

Claude può censurare i dati personali (PII) da un PDF senza caricarlo?
Sì. Il server MCP gira come processo figlio del tuo client IA su stdio locale e legge/scrive file nelle cartelle che configuri. Tieni presente che tutto quello che l’agente dice in chat va comunque a un provider di modello cloud.

L’agente decide cosa è sensibile?
No. L’agente propone i modelli e tu li revisioni. Il motore applica esattamente ciò che gli viene fornito.

Come lo installo?
Con il .NET 10 SDK, esegui dnx GroupDocs.Redaction.Mcp --yes e imposta GROUPDOCS_MCP_STORAGE_PATH sulla cartella che contiene i tuoi documenti. Docker è l’altra opzione: ghcr.io/groupdocs-redaction/redaction-net-mcp.

Approfondisci