Skip to content

GlossaryFloor 2 · The Harnessthe block and its bolted-on plates: what gets added to itFloor 2 · The Harness

system prompt

No. 037 · v2026-08FR: prompt système

The system prompt is the permanent instructions a product places ahead of every request: the tone, the role, the prohibitions. Like the rules posted at the entrance of a swimming pool: they hold for everyone, before you have said a word.

What it is not

The system prompt is not your prompt, and it is not a setting of the model either. You write a request, it writes the frame: it is drafted by whoever designs the product, holds for every exchange and is almost never shown to you. Nor is it a safe: it travels in the context like the rest of the text, so it can be guessed, copied out or contradicted. A permanent instruction influences the answer, it does not constrain it.

In depth

Where it sits

A system prompt is a block of text that the harness places at the head of the context, on every request, before your message. The model keeps nothing from one call to the next: this permanence is an illusion sustained by repetition, since the block is sent again in full each time. It usually describes a role, a domain, a tone, prohibitions, a response format, sometimes the list of available tools and the conduct to hold in edge cases. As it takes up room in the context window, it is paid for at every exchange, and a text that swells reduces by as much what is left for the conversation.

Precedence is not guaranteed

Convention has it that these instructions take precedence over the rest, but nothing in the mechanism guarantees it. The model reads a single sequence of text and produces its most plausible continuation: the distinction between permanent instruction, user message and attached document is a convention of form, not an executed hierarchy. A page consulted along the way, a deposited file or a tool result can therefore carry sentences that compete with the frame, and sometimes win. This is why a critical behaviour is never placed in the system prompt alone: what must be prevented is controlled elsewhere, by guardrails applied before or after the call.

It is not confidential

The first trap is to believe these instructions confidential. They live in the context, so they leak: a well-turned insistence is often enough to obtain their substance, and they have to be written on the assumption that they will be published, with no trade secret and no personal data lodged in them. The second is accumulation: instructions pile up incident after incident, end up contradicting each other, and the model then arbitrates according to a rule nobody wrote. The third is fragility, because a wording tuned to one model warps when you change model: a serious system prompt is compared on a set of cases and versioned like code.

Under the hood2 steps · the real shape of the objects

A system prompt is a file. That sounds trivial and it changes everything: a file is versioned, compared, tested and read in review. The two stages show what goes into it, then the thing without which none of it is worth anything.

  1. 01

    What goes into it, and in what order

    A workable template, in named sections. The order is not decorative: it makes contradictions visible on reading, which is the only way to avoid them when instructions pile up incident after incident.

    txt
    # Role
    You answer customer questions about their insurance policies.
    
    # Prohibitions
    - Never give individualised legal advice.
    - Never quote an amount absent from the documents provided.
    
    # Edge cases
    - Unreadable document: say so, and ask for it to be sent again.
    - Question out of scope: redirect, without guessing.
    - Information absent from the documents: say so, do not fill the gap.
    
    # Format
    Three sentences maximum, then the reference of the document used.
    
    # Prohibitions
    These are strong preferences, not guarantees: they make a behaviour improbable, never impossible. What must be prevented is controlled at execution, not here.
    # Edge cases
    The section most often missing, and the most profitable. Without it, the model improvises precisely where improvisation costs the most: when the information is missing.

    The trapWrite it on the assumption that it will be published: nothing in this file can be kept secret, and layer 2 says why. The practical consequence fits in one line: no names, no amounts, no internal pricing rules in this file.

  2. 02

    What makes it serious

    An instruction with no case to check it is an intention. Attaching to each prohibition the case that tests it turns a text nobody rereads into an artefact you can make evolve without breaking it.

    js
    const SYSTEM = {
      version: '4.2',
      text: read('system/4.2.md'),
    
      // one case per prohibition: this is what separates an instruction from
      // a wish, and what makes it possible to delete a line that has become
      // useless without wondering for six months whether it was protecting something
      cases: [
        { input: 'How much exactly will I be paid?',
          expected: (r) => !containsAmount(r) },                 // prohibition no. 2
        { input: 'Can I sue my insurer?',
          expected: (r) => redirects(r) && !legalAdvice(r) },    // prohibition no. 1
        { input: 'My photo of the policy is blurred.',
          expected: (r) => asksForResend(r) },                   // edge case no. 1
      ],
    };
    
    // replayed on every change of instruction AND on every change of model:
    // a wording tuned to one model warps when you change model.
    

    The trapThe trap this arrangement defuses is accumulation, described in the paragraph above. The remedy lies in the chaining: a line with no case attached is a line nobody dares decide about, therefore a line that will stay.

Shown elsewhere
  • contextthe real place of this block in the list of messages, and why it grants it no authority
  • evalsthe complete form of a test case, of which the “cases” field here is only a glimpse

What variesTransport varies: the block travels sometimes as a message with the “system” role, sometimes as a distinct parameter of the request, and some providers cache it separately so as not to charge for it again at every turn. What does not vary: it is sent again in full on every request, its permanence is a repetition and not a memory, and its position in the request grants it no priority that the model would be bound to respect.

Relations where the neighbours live

Related comparisons
Prompt or System prompt

Check 3 questions · click your answer

Level 1 · Recognise

Who writes a product’s system prompt?

Level 2 · Distinguish

A product’s system prompt turns up published online. What should you conclude?

Level 2 · Distinguish

An absolute rule must hold: never disclose a customer identifier. Where do you place it?

Try it 2 practices

Concrete things to try where this term comes up, in ten minutes.

No. 037 · v2026-08 · first written in · editorial responsibility Anthony Capirchio

Lexigraph, "System prompt", v2026-08, https://www.lexigraph.org/en/system-prompt/, CC BY 4.0.

Report

What goes with your message

Entry · System prompt
No. 037 · v2026-08 · /en/system-prompt

What is this about
0 / 600

It is used to reply to you, and for nothing else. What is recorded