Aller au contenu principal

SystemPromptScrubber

SystemPromptScrubber est un Processor de sortie qui détecte et traite les prompts système, les instructions et les autres informations révélatrices susceptibles d'introduire des vulnérabilités de sécurité. Ce Processor contribue à préserver la sécurité en identifiant les types de prompts système et en proposant des stratégies flexibles pour les traiter, dont plusieurs méthodes de masquage qui garantissent un nettoyage approprié des informations sensibles.

Exemple d'utilisation
Lien direct vers Exemple d'utilisation

import { SystemPromptScrubber } from '@mastra/core/processors'

const processor = new SystemPromptScrubber({
model: 'openrouter/openai/gpt-oss-safeguard-20b',
strategy: 'redact',
redactionMethod: 'mask',
includeDetections: true,
lastMessageOnly: true,
})

Paramètres du constructeur
Lien direct vers Paramètres du constructeur

options:

Options
Options de configuration pour la détection et le traitement des prompts système
Options

model:

MastraModelConfig
Configuration du modèle de l'Agent de détection

strategy?:

'block' | 'warn' | 'filter' | 'redact'
Stratégie appliquée lorsque des prompts système sont détectés : 'block' rejette la réponse avec une erreur, 'warn' consigne un avertissement mais autorise la réponse, 'filter' supprime les messages signalés et 'redact' les remplace par des versions masquées

customPatterns?:

string[]
Motifs personnalisés pour détecter les prompts système (chaînes contenant des expressions régulières)

includeDetections?:

boolean
Indique si les avertissements doivent inclure les détails de la détection. Utile pour le débogage et la surveillance

lastMessageOnly?:

boolean
Indique s'il faut inspecter uniquement le message de sortie le plus récent du lot au lieu de vérifier chaque message. Utilisez cette option pour limiter le nettoyage fondé sur un LLM à la dernière réponse.

instructions?:

string
Instructions personnalisées pour l'Agent de détection. Si elles ne sont pas fournies, les instructions par défaut sont utilisées

redactionMethod?:

'mask' | 'placeholder' | 'remove'
Méthode de masquage des prompts système : 'mask' les remplace par des astérisques, 'placeholder' les remplace par un texte générique et 'remove' les supprime entièrement

placeholderText?:

string
Texte générique personnalisé utilisé pour le masquage lorsque redactionMethod vaut 'placeholder'

Valeur renvoyée
Lien direct vers Valeur renvoyée

id:

string
Identifiant du Processor défini sur 'system-prompt-scrubber'

name?:

string
Nom d'affichage facultatif du Processor

processOutputStream:

(args: { part: ChunkType; streamParts: ChunkType[]; state: Record<string, any>; abort: (reason?: string) => never; tracingContext?: TracingContext }) => Promise<ChunkType | null>
Traite les parties de sortie en streaming afin de détecter et de gérer les prompts système pendant le streaming

processOutputResult:

(args: { messages: MastraDBMessage[]; abort: (reason?: string) => never }) => Promise<MastraDBMessage[]>
Traite les résultats de sortie finaux afin de détecter et de gérer les prompts système dans les scénarios sans streaming

Exemple d'utilisation avancée
Lien direct vers Exemple d'utilisation avancée

Lorsque vous utilisez SystemPromptScrubber comme Processor de sortie, il est recommandé de l'associer à BatchPartsProcessor pour optimiser les performances. BatchPartsProcessor regroupe les segments du flux en lots avant de les transmettre au Processor de nettoyage, ce qui réduit le nombre d'appels au LLM nécessaires à la détection.

src/mastra/agents/scrubbed-agent.ts
import { Agent } from '@mastra/core/agent'
import { BatchPartsProcessor, SystemPromptScrubber } from '@mastra/core/processors'

export const agent = new Agent({
id: 'scrubbed-agent',
name: 'scrubbed-agent',
instructions: 'You are a helpful assistant',
model: 'openai/gpt-5.6-sol',
outputProcessors: [
// Batch stream parts first to reduce LLM calls
new BatchPartsProcessor({
batchSize: 10,
}),
// Then apply system prompt detection on batched content
new SystemPromptScrubber({
model: 'openrouter/openai/gpt-oss-safeguard-20b',
strategy: 'redact',
customPatterns: ['system prompt', 'internal instructions'],
includeDetections: true,
redactionMethod: 'placeholder',
placeholderText: '[REDACTED]',
}),
],
})