De fleste husker at være mistroiske over for brugerens prompt. Men de glemmer alt det andet, der lander i modellens context window.
En sprogmodel får det hele serveret som én lang strøm af tekst: systemprompten, brugerens besked, og alt det, den henter undervejs. For modellen er der ingen forskel. Dokumentet, den slår op i sin videnbase, svaret fra det API, den kalder, sagen, den henter - det hele bliver til tokens i samme strøm som instruktionerne. Og præcis dér gemmer angrebet sig i dag. Det var ikke brugeren, der angreb supportagenten. Det var en sag, agenten selv hentede. En forgiftet side, et browser-tool henter. Et manipuleret svar fra et API. RAG og tools er blevet den mest oversete indgang, fordi de føles som "vores egne" data, men de kommer udefra, og udefra er untrusted.
Moderne modeller trænes ganske vist til at give tidligt input, typisk systemprompten, større vægt end det, der kommer senere. Det hjælper. Men vægt er ikke det samme som håndhævelse. Med den rette formulering, det rette sprog eller nok gentagelse rykker tyngdepunktet alligevel, og modellen adlyder den nyeste, mest overbevisende instruktion - også når den kom fra et dokument, en angriber havde plantet. Systemprompten bliver ikke håndhævet af noget. Den bliver fulgt, indtil noget andet overbeviser modellen.
Derfor gælder samme regel for hvert eneste input, uanset hvor det kommer fra: behandl det som untrusted, før det rammer modellen. Brugerens prompt, det hentede dokument, tool-svaret. Alt sammen. Kør de guards, I har, på det hele, ikke kun på brugerens felt. Og lige så vigtigt: byg systemet, så sikkerheden ikke afhænger af, at modellen selv gennemskuer angrebet. Det gør den ikke pålideligt, og det er dér, de strukturelle lag kommer ind.