
De bedste systemprompt-eksempler er ikke "du er en hjælpsom assistent"-one-linerne fra tutorials. Det er de specifikke instruktionsblokke, der forhindrer en produktionsapp i at løbe af sporet klokken 2 om natten. I vores egen content-pipeline kører vi mere end et dusin Claude-subagenter, hver styret af et systemprompt, vi har omskrevet igen og igen, efter at det sendte en bug i produktion på Claude Opus 4.8 eller GPT-5. Dette indlæg springer legetøjsdemoerne over. Du får 7 ægte, copy-paste systemprompts, hvoraf to er trukket direkte ud af den produktionsstack, plus den 6-blok anatomi, der ligger under ethvert pålideligt prompt.
Nøglepointer
- Et systemprompt er vedvarende instruktioner (rolle, begrænsninger, outputformat, guardrails), der sættes én gang før enhver brugerbesked.
- Hvis indholdet er identisk på tværs af 1.000 forespørgsler, skal det i systempromptet; indhold pr. forespørgsel hører hjemme i brugerturen.
- Seks blokke bygger et pålideligt prompt: rolle, kontekst, begrænsninger, outputformat, guardrails, eksempler.
- Reasoning-modeller (o-serien, GPT-5, Claude Opus 4.5+) vil have overordnede mål, ikke aggressiv "du SKAL"-formulering.
Hvad indeholder et systemprompt? De 6 byggesten
Et systemprompt er et sæt vedvarende instruktioner, der definerer en models rolle, adfærd, begrænsninger og outputformat for en hel session — sat én gang før enhver brugerbesked. De pålidelige deler seks byggesten: rolle, kontekst, begrænsninger, outputformat, guardrails og valgfrie eksempler. Få dem på plads, og du har den korte version af, hvordan man skriver et systemprompt, der overlever produktion.
Her er, hvad hver blok gør.
| Blok | Hvad den gør | Kort eksempel |
|---|---|---|
| Rolle | Sætter, hvem modellen er, og dens rækkevidde | "Du er en supportagent for Acmes faktureringsteam." |
| Kontekst | Stabil baggrund, den har brug for hver tur | "Kunderne er på Pro-planen; refundering tilladt inden for 14 dage." |
| Begrænsninger | Hårde regler og grænser | "Lov aldrig en refundering over 200 $ uden eskalering." |
| Outputformat | Den præcise form på svaret | "Svar på under 120 ord, ren tekst, ingen markdown." |
| Guardrails | Afvisnings- og fallback-adfærd | "Hvis du bliver bedt om juridisk rådgivning, så afvis og overdrag til et menneske." |
| Eksempler | 1–2 prøver på et godt svar | Et eksempelspørgsmål med det ideelle svar. |

Rolle-blokken betyder mere, end den ser ud til. Anthropics dokumentation siger det rent ud: at sætte en rolle i systempromptet fokuserer modellens adfærd og tone, og "selv en enkelt sætning gør en forskel". For guardrails-blokken fortjener afvisnings- og sikkerhedsregler reel omtanke; dem går vi i dybden med i vores guardrails-guide. Og hvis du kobler Claude op, anbefaler Anthropic XML-tags (<instructions>, <context>, <input>) til at adskille hver indholdstype, så modellen ikke flyder dem sammen.
Her er et paste-klart skelet, der syr alle seks blokke sammen i én skabelon:
# ROLE
You are a {role} for {audience}. Your scope is {narrow scope}.
# CONTEXT
{Stable facts the model needs on every request.}
# CONSTRAINTS
- {Hard rule 1}
- {Hard rule 2}
- Do not {forbidden action}.
# OUTPUT FORMAT
{Exact structure: length, format, JSON schema.}
# GUARDRAILS
- If {edge case}, then {fallback or escalate to a human}.
- If you are unsure, say so instead of guessing.
# EXAMPLES (optional)
{One or two model answers that show the target quality.}Seks blokke forvandler en mavefornemmelse til en specifikation. Dette er kun systemprompt-laget. For de bredere teknikker (few-shot, chain-of-thought, prompt chaining), se vores prompt engineering-guide, og hold dem ude af selve systempromptet. Et session-systemprompt adskiller sig også fra en repo-niveau fil med vedvarende projektinstruktioner som en CLAUDE.md, der styrer en hel kodebase frem for én API-session.
7 produktionsklare systemprompt-eksempler (klar til copy-paste)
Her er 7 systemprompt-eksempler, du kan indsætte i din system-parameter eller developer-besked i dag. Hvert eksempel retter sig mod en reel opgave (agent, RAG, support, kodning, JSON, content-QA, oversættelse), og hvert eksempel viser, hvorfor dets nøgleblokke eksisterer. De sidste to kører i vores egen pipeline. De repos, der lækker Cursor- og Devin-prompts, beviser efterspørgslen; det, ingen sender ud, er annotationen, der forklarer, hvorfor hver blok er der.
1. Autonom agent
Indsnævr rollen, stav værktøjsreglerne ud, og giv den en stopbetingelse, så den ikke kan loope for evigt.
You are a research agent. Your only job is to answer the user's
question using the provided tools.
TOOLS: web_search, read_url, calculator.
RULES
- Plan first: list the steps before calling any tool.
- Call one tool at a time and check the result before the next call.
- Never invent a URL or a fact. If a tool fails twice, stop.
STOP CONDITION
- When you have enough to answer, stop calling tools and reply.
- If the task needs account access or a purchase, hand off to a
human and explain why.Hvorfor det virker: den snævre rolle plus en eksplicit stopbetingelse er forskellen på en agent, der afslutter, og en, der brænder tokens af i en loop. Dette er kernen i god praksis for agenters systemprompts.
2. RAG / Retrieval Q&A
Hele spillet med retrieval handler om at forhindre modellen i at svare ud fra sin egen hukommelse. Én regel gør det.
You answer questions using ONLY the context provided below.
CONTEXT
{retrieved_chunks}
RULES
- If the answer is not in the context, say: "I don't have that
in my sources." Do not use outside knowledge.
- Cite the source after each claim using [chunk_id].
OUTPUT
Two to four sentences, plain text, with citations.Hvorfor det virker: "kun fra kontekst" plus et citationsformat er den billigste hallucinations-guard, du kan skrive til et RAG-systemprompt.
3. Kundeservicebot
Tone, en eskaleringsvej og en hård pengeregel holder en supportbot hjælpsom, uden at den lover ting, den ikke kan.
You are a support agent for Northwind's billing team. Be warm,
brief, and factual.
CONTEXT
- Customers are on Free, Pro, or Enterprise plans.
- Refunds are allowed within 14 days of a charge.
CONSTRAINTS
- Never promise a refund above $200 without escalation.
- Do not give tax or legal advice.
GUARDRAILS
- If the customer is angry or asks for a manager, escalate to a
human and say a teammate will follow up within one business day.
- If you are unsure of a policy, say you'll check rather than guess.Hvorfor det virker: refunderings-guardrailen og eskalerings-fallbacken stopper de to fejltilstande, der får supportbots taget ud af produktion.
4. Kodningsassistent
Begræns outputformatet og versionerne, og få den til at forklare, før den redigerer.
You are a coding assistant for a Next.js 15 + TypeScript codebase.
RULES
- Explain your plan in two sentences before writing any code.
- Output changes as a unified diff, not full files.
- Match the existing style. Do not add dependencies without asking.
- Target Node 20. Do not use APIs newer than that.
If a request is ambiguous, ask one clarifying question before editing.Hvorfor det virker: "diff, ikke hele filer" plus et versionsloft holder assistenten inde i din stack. Promptdesign til kodningsagenter rækker dybt nok til at fortjene sin egen guide, så vi holder dette eksempel stramt.
5. Strukturerede data / JSON-udtræk
Læg skemaet i outputformat-blokken og forbyd prosa. Det er mønsteret for pålidelige strukturerede outputs.
You extract structured data from raw text. Return ONLY valid JSON,
no prose, no markdown fences.
SCHEMA
{
"company": "string",
"amount_usd": "number",
"date": "YYYY-MM-DD",
"confidence": "low | medium | high"
}
RULES
- If a field is missing from the text, use null.
- Never guess a value to fill a field.
- Output must parse with JSON.parse on the first try.Hvorfor det virker: et bogstaveligt skema plus "kun gyldig JSON" slår et beskrevet format hver gang. For håndhævelsesmønstre ud over promptet (JSON-skemavalidering, værktøjsbaseret udtræk), se vores structured outputs-guide.
6. Content-QA / validatoragent (fra vores produktionspipeline)
Denne kører i vores egen stack. Vores validators systemprompt er et eksempel på negative begrænsninger: det fortæller modellen præcis, hvad den IKKE skal skrive, og så tjekker et script reglerne bogstaveligt.
You are a content QA agent. You check one blog draft against a
fixed style contract.
BANNED VOCABULARY (auto-fail on any hit)
delve, leverage, robust, seamless, tapestry, pivotal, elevate,
harness, foster, bolster, paramount, intricate, "in today's",
"when it comes to", "it's worth noting", "game-changer"
FORMAT LIMITS
- Em-dashes: max 3 per 1,000 words of body.
- Vague quantifiers ("many", "several", "significantly"): max 1
per 500 words of body.
ENFORCEMENT
- Do not "write naturally." Check every rule literally.
- A deterministic script (ai_slop_check.py) greps the draft and
exits non-zero on any hit. If it fails, the post does not publish.Hvorfor det virker: en nummereret forbudsliste plus en grep er håndhævbar på en måde, som "undgå buzzwords" aldrig er. Modellen kan argumentere med en mavefornemmelse; den kan ikke argumentere med en ikke-nul exitkode.
7. Oversættelsesagent (fra vores produktionspipeline)
Også vores. Oversætterens prompt er en outputformat- og fuldstændighedskontrakt med en selvtjek, modellen kører på sit eget output.
You are an expert translator. You translate ONE blog post into ONE
target language.
COMPLETENESS CONTRACT
- Output the SAME number of H2 sections as the source.
- Line count must land within 80-120% of the source.
- Translate the FAQ fully. Never submit a partial draft.
DIACRITICS SELF-CHECK
- Keep native characters. If you output "karsilastirma" instead of
"karşılaştırma" (Turkish), or "developpement" instead of
"développement" (French), the translation is WRONG. Re-do it.
If you cannot meet the contract, report the problem. Do not ship a
truncated post.Hvorfor det virker: en fuldstændighedskontrakt plus et konkret eksempel på forkert output fanger de stille fejl, som en vag "oversæt præcist"-linje lukker igennem.
Hvad vi lærte af at køre systemprompts i produktion
Tre systemprompt-bugs i vores egen pipeline lærte os mere end nogen dokumentationsside. Alle tre kom fra instruktioner, der lød fine, men ikke var specifikke eller verificerbare. Her er, hvad der gik i stykker på tværs af vores 16+ Claude-subagenter, og den præcise rettelse, der bed hver gang. Mønsteret er det samme hver gang: bløde regler bliver ignoreret, specifikke og eksternt tjekkede regler bliver overholdt.
Forbudt-ordforråd-bug'en. I uger blev modellen ved med at smide leverage og robust ind i kladder, uanset hvor pænt vi bad om det. En blød "undgå buzzwords"-linje gjorde intet. Rettelsen var eksempel #6: en nummereret forbudsliste inde i promptet plus et script, der grepper outputtet og afslutter med ikke-nul ved ethvert hit, med en tankestregsgrænse på 3 pr. 1.000 ord oveni. Lektien: vage begrænsninger ignoreres; nummererede, eksternt verificerede begrænsninger overholdes.
Diakritisk-tegn-bug'en. Vores oversætter udsendte stille ASCII på tyrkisk, fransk og spansk. karşılaştırma kom ud som karsilastirma, og ingen bemærkede det, før en indfødt læser flaggede det. Rettelsen var en tabel over hjemstavnsbogstaver i promptet, et eksplicit eksempel på forkert output og en efterfølgende grep (nul hjemstavnsbogstaver betyder genoversæt). Lektien: giv modellen et konkret eksempel på fejlen, ikke bare en regel.
Stabil-ID-bug'en. Dette er den dyre. Et systemprompt, der genafledte et lokaliseret slug ved hver genoversættelse, fik udgiveren til at præge et andet live dokument pr. indlæg. Vi sendte 54 duplikerede live dokumenter ud den 13. juni 2026 og afpublicerede dem først den 5. juli 2026 — tre uger med delt link equity og duplikeret-indhold-flag. Rettelsen: fastlås identitet eksplicit og genbrug det eksisterende ID ordret. Et systemprompt, der regenererer sine egne identifikatorer ikke-deterministisk, sender duplikater ud; vores prægede 54 live dokumenter, før vi fastlåste ID'et.
Hvad er de mest almindelige systemprompt-fejl?
De mest almindelige systemprompt-fejl er mur-af-tekst-instruktioner, modstridende regler, negativ-only formuleringer, at dumpe pr.-forespørgsel-kontekst i et statisk prompt og at springe en fallback over. På 2026-modeller er der en ny: aggressiv STORE BOGSTAVER og "du SKAL"-formulering overtrigger nu Claude Opus 4.5+.
Her er den hurtige rettelsesliste:
- Mur af tekst. Rettelse: opdel det i de seks blokke og læg stabilt indhold først.
- Modstridende instruktioner. Rettelse: én regel pr. linje; løs konflikter før afsendelse.
- Negativ-only formulering. Rettelse: sig, hvad der skal gøres, ikke kun hvad der skal undgås.
- Overload af STORE BOGSTAVER og "SKAL". På Anthropics nyere modeller slår dette tilbage. Deres dokumentation siger nu, at hvor du måske har skrevet "KRITISK: Du SKAL bruge dette værktøj", kan du bruge normal formulering som "Brug dette værktøj, når". Rådet fra 2025 er nu fejlen.
- Dynamisk kontekst i et statisk prompt. Hold pr.-forespørgsel-data i brugerturen. Hvad der hører hvor, er en disciplin for sig; vores context engineering-guide dækker det.
- Ingen fallback. Definer altid en afvisning og en eskaleringsvej.
- Ignorerer længde og omkostninger. Længere prompts tilføjer latenstid og tokenomkostninger ved hvert kald; trim til det, der fortjener sin plads.
For de grundlæggende instruktionsklarhed-basics er OpenAIs best-practices-artikel stadig en solid tjekliste.
Hvordan tester og itererer man på et systemprompt?
Test et systemprompt, som du tester kode. Byg et lille gyldent sæt af input med forventede outputs, og assert derefter modellens svar mod dem ved hver ændring. A/B-test to promptversioner på de samme input og behold den, der består flere tjeks. Assertions slår øjenmål hver gang.
En minimal eval-loop ser sådan ud:
# pseudo eval loop
for case in golden_set:
out = model(system=PROMPT, user=case.input)
assert is_valid_json(out) # format check
assert case.expected_field in out # content check
if case.no_context:
assert "I don't have that" in out # refusal check
# ship the prompt version that passes the most casesGrep'en i eksempel #6 er den billigste assertion, du kan køre: den koster intet, og den bliver aldrig træt. Efterhånden som dit promptbibliotek vokser ud over en håndfuld, så versionér og test dine prompts med rigtige prompt management-værktøjer i stedet for at copy-paste mellem filer. Pointen er den samme i enhver skala: ændr aldrig et produktionsprompt uden et tjek, der fortæller dig, om du gjorde det bedre eller værre.
Systemprompt vs brugerprompt vs developerbesked
Et systemprompt sætter fast adfærd; et brugerprompt bærer pr.-forespørgsel-opgaven; en developerbesked er OpenAIs reasoning-modelrolle, der indeholder app-niveau-instruktioner rangeret over brugerbeskeder i kommandovejen. Anthropic bruger en top-niveau system-parameter i stedet for en role: "system"-besked. Her er den trevejs opdeling, konkurrenterne normalt misser.
| Lag | Sættes af | Ændres pr. forespørgsel? | OpenAI-mekanik | Anthropic-mekanik |
|---|---|---|---|---|
| Systemprompt | Appudvikler | Nej, stabilt | role "system" i messages | top-niveau system-parameter |
| Developerbesked | Appudvikler | Sjældent | role "developer" på reasoning-modeller | foldet ind i system-parameteren |
| Brugerprompt | Slutbruger | Ja, hver tur | role "user" i messages | role "user" i messages |
OpenAI er eksplicit om rangeringen: "developer messages er instruktioner leveret af applikationsudvikleren, prioriteret foran brugerbeskeder". Så hvis en bruger forsøger at tilsidesætte dine appregler, vinder developerbeskeden kommandovejen.
Har reasoning-modeller brug for forskellige systemprompts? (2026)
Ja. Reasoning-modeller som OpenAIs o-serie, GPT-5 og Claude Opus 4.5+ vil have overordnede mål, ikke trin-for-trin-scripts. OpenAI sammenligner en reasoning-model med en senior kollega, du betror detaljerne, versus en GPT-model, der opfører sig som en junior, der har brug for eksplicitte instruktioner.
Den ramme ændrer, hvordan du skriver promptet. For en reasoning-model, angiv målet og begrænsningerne og "betro dem at finde ud af detaljerne"; for en GPT-model, stav trinnene ud. Over-specificering af en reasoning-model gør den ofte værre, ikke bedre.
Claude-siden har sit eget 2026-skift. Fordi Opus 4.5+ er mere lydhør over for systempromptet, overtrigger den gamle vane med at stable CRITICAL: og MUST det nu. Skru ned for det sprog til normal formulering. En omkostningsnote: sæt dit stabile, genbrugte indhold i begyndelsen af promptet, så prompt caching kan træde i kraft og skære latenstid ved gentagne kald. Og hvis din reasoning-model laver trin-for-trin-arbejde, er chain-of-thought-prompting sit eget emne med sin egen guide, så vi genunderviser det ikke her.
Hvordan Techsy griber det an
Hos Techsy bygger vi agentsystemer til B2B-kunder, og validator- og oversættelsesprompterne ovenfor kører i den produktionsstack. Vi behandler hvert systemprompt som kode: versionerer det, tester det mod et gyldent sæt og håndhæver de ufravigelige regler med et script i stedet for håb. Hvis du flytter en LLM-funktion fra en demo til produktion og vil have en hånd med AI-integrationsarbejdet, så få en gratis konsultation.
Om forfatteren
Mert Batur Gurbuz er medstifter af Techsy.io, hvor teamet leverer AI-agenter, automatiseringssystemer og voice/SDR-pipelines til B2B-kunder. Han studerer på University of Birmingham og skriver om det LLM-værktøjslag, Techsy-teamet faktisk bruger i produktion.
Medstifter, Techsy.io, University of Birmingham · LinkedIn
Ofte stillede spørgsmål
Hvad er et systemprompt?
Et systemprompt er et sæt vedvarende instruktioner, der sættes én gang, før enhver brugerbesked, og som definerer modellens rolle, adfærd, begrænsninger og outputformat for hele sessionen. Det er det faste "hvordan den opfører sig"-lag, og det forbliver identisk, mens brugerens pr.-forespørgsel-beskeder ændrer sig ved hver tur.
Hvad er forskellen mellem et systemprompt og et brugerprompt?
Systempromptet er det faste "hvordan den opfører sig", identisk på tværs af hver forespørgsel; brugerpromptet er pr.-forespørgsel-"hvad der skal gøres". En simpel tommelfingerregel: hvis indholdet ville være identisk på tværs af 1.000 forespørgsler, hører det hjemme i systempromptet, og alt, der ændrer sig pr. kald, hører hjemme i brugerturen.
Hvad er en developerbesked vs et systemprompt?
OpenAIs reasoning-modeller (o-serien, GPT-5) tager en developer-besked i stedet for en system-besked. Den bærer app-niveau-instruktioner rangeret over brugerbeskeder i kommandovejen, så den vinder, hvis en bruger forsøger at tilsidesætte dine regler. Anthropic bevarer en enkelt top-niveau system-parameter frem for en rollebaseret besked.
Hvor langt bør et systemprompt være?
Så kort som det kan være, mens det stadig dækker rolle, begrænsninger, outputformat og guardrails. For lange prompts tilføjer tokenomkostninger og latenstid ved hvert kald og kan overtrigger ekstra reasoning på Claude Opus 4.5+. Hvis et stabilt prompt er nødt til at være langt, så læg genbrugt indhold først, så prompt caching opvejer omkostningerne.
Virker systemprompts ens i ChatGPT/GPT og Claude?
Samme koncept, forskellig mekanik. OpenAI bruger en system- eller developer-rolle inde i messages-arrayet, mens Anthropic bruger en separat top-niveau system-parameter og foretrækker XML-tags til at adskille instruktioner, kontekst og eksempler. Instruktionerne overføres mellem udbydere; sammenkoblingen og formateringskonventionerne gør ikke.
Kan man ændre systempromptet midt i en samtale?
Gennem API'et gensender du den fulde messages-payload ved hvert kald, så teknisk kan du udskifte systempromptet mellem ture. Men at ændre det midt i en samtale kan bryde kontinuiteten og forvirre modellen om dens egne regler. Foretræk at sætte det én gang, eller udskift bevidst til et distinkt opgavespecifikt prompt.
Bør jeg bruge XML-tags eller markdown i et systemprompt?
Anthropic anbefaler XML-tags til Claude for at adskille instruktioner, kontekst og eksempler, så modellen ikke flyder dem sammen. OpenAI-modeller håndterer markdown og almindelige overskrifter godt. Match udbyderens konvention frem for at tvinge én stil igennem på tværs af begge, og hold den, du vælger, konsistent inden for et enkelt prompt.
Har reasoning-modeller brug for forskellige systemprompts?
Ja. Reasoning-modeller vil have overordnede mål, som at briefe en senior kollega, ikke trin-for-trin-mikrostyring. Drop det aggressive STORE BOGSTAVER og "du SKAL"-sprog, der overtrigger nyere modeller som Claude Opus 4.5+, angiv målet og guardrailsene, og lad modellen planlægge vejen derhen.
Hvad er delene af et godt systemprompt?
Seks blokke: rolle, kontekst, begrænsninger, outputformat, guardrails eller fallbacks og eventuelt et par eksempler. Rolle og begrænsninger gør det meste af arbejdet; outputformat-blokken er det, der gør svar parsebare; guardrails definerer, hvad der sker ved kanterne. Eksempler er kun værd at tilføje, når målkvaliteten er svær at beskrive med ord.