Elizabeth Sramek.
← The Journal

Search Architecture

ChatGPT Is Not an LLM: Models, Agents and Systems, Precisely Defined

ChatGPT is a system containing a model, not a model. The seven layers around it, where each one fails, and why misattributing behaviour to the model produces the wrong fix.

Quick answer

ChatGPT is not a large language model. It is a system that contains one. GPT is the weights — a stateless function that maps a token sequence to a probability distribution over the next token. ChatGPT is the orchestration around it: a router, a retrieval layer, a tool-calling loop, a memory store, safety classifiers, and a serving stack that decides which model you get. The distinction is not pedantry. Almost every wrong prediction I hear about AI search comes from someone reasoning about the model when the behaviour they are seeing is produced by the system.

I want to be precise about something that has become sloppy, because the sloppiness is now producing bad strategy.

People say “the LLM decided not to cite us.” They say “the model has a knowledge cutoff so it cannot know about our product.” They say “we need to optimise for the LLM.” Each of those sentences attributes to a neural network a behaviour that was produced by a piece of infrastructure sitting several layers above it — and if you misattribute the cause, you will fix the wrong thing.

The existing explanations of this distinction stop at the level of an analogy: the model is the engine, ChatGPT is the car. That is true and it is not useful. Nobody changes what they do on Monday because of an analogy. What follows is the mechanism, the places it fails, and the specific consequences for anyone trying to be visible inside these systems.

What a language model actually is

Strip everything away and a transformer language model is a pure function. You hand it a sequence of tokens. It returns a probability distribution over the next token. That is the entire contract.

f(token_sequence, weights) → probability distribution over vocabulary

Properties of f:
  - deterministic given identical input and identical weights
  - no memory of any previous call
  - no access to anything outside the token sequence
  - no concept of "true"; only "likely given training distribution"

Everything you experience as conversation is that function called repeatedly, with the previous output appended to the input each time. The model does not know it is having a conversation. It is being handed a longer and longer document and asked what comes next.

Statelessness, stated correctly

Here is where most explanations, including the ones currently ranking for this question, become imprecise in a way that matters.

“The model is stateless” is repeated as though it were absolute. It is not. There is no persistence between requests, which is the sense people mean. But within a single forward pass there is a great deal of state: the attention mechanism computes a key-value representation for every token processed, and in production that KV cache is retained across the generation of a response and frequently across turns in a session for efficiency. The model is not remembering in any meaningful sense, and it is also not the blank slate the phrasing implies.

Why does this matter to anyone outside an inference team? Because prompt caching — which is now standard commercially — means the cost and latency of a request depend on what came before it in ways that a naive “stateless” model does not predict. And because the sloppy version of statelessness leads people to conclude that context is free and interchangeable, which it is not.

My position

The industry adopted “stateless” as a slogan without carrying over the qualifier, and that is characteristic of how machine learning vocabulary enters marketing. A term arrives with a precise meaning inside a narrow context, loses the context, and becomes a load-bearing assumption in strategy decks written by people who have never read the paper. I would treat any AI search claim that leans on a borrowed technical word as suspect until someone can state what it means operationally.

The system around the model

When you type into ChatGPT, the model is one component among many, and it is not the first thing your query touches.

LayerWhat it doesWhy it matters for visibility
Request routingDecides which model serves you, based on tier, load, query typeTwo users asking the same question may be answered by different models
Safety classificationScreens input and output against policyEntire query categories are answered from a template, not a model
Tool selectionDecides whether to search, run code, browse, or answer directlyThis is the single biggest determinant of whether you can be cited at all
RetrievalIssues queries, fetches documents, chunks and ranks themYour page competes here, not in the model
Context assemblyBuilds the final prompt: system instructions, memory, retrieved chunks, historyPosition and budget in this assembly decide what the model actually sees
The modelGenerates tokens from that assembled contextBy this point most of the selection has already happened
Post-processingCitation formatting, link resolution, renderingDetermines whether your URL appears or is silently dropped
A simplified view of a production assistant stack. Vendors do not publish exact architectures and they change frequently; the layer types are stable even when the implementations are not.

Read that table with a visibility question in mind and the implication is uncomfortable. The layer people obsess over — the model, its training data, its “opinion” of your brand — sits second from the bottom of a stack where almost every consequential decision has already been made.

Memory, implemented rather than described

“It remembers” is the most misleading two-word description in this space. Nothing about the weights changed. What happened is that text was written to a store and later reinserted into your prompt.

There are three distinct mechanisms wearing the same word, and conflating them produces incorrect expectations about all three.

  • Conversation history. Prior turns appended to the context window. Bounded by the window; older turns are truncated or summarised. Not memory, just a longer document.
  • Extracted persistent memory. A separate model reads your conversation, decides what is worth keeping, writes short natural-language facts to a store, and those get injected into future system prompts. The extraction step is itself a model call and it is lossy, opinionated and frequently wrong about what mattered.
  • Retrieval over prior conversations. Embedding past exchanges and pulling semantically similar ones back. This is a vector search, with all the failure modes of a vector search.

The consequence I would highlight: memory is a retrieval problem, not a knowledge problem, and retrieval problems fail in characteristic ways — semantically similar but irrelevant material surfaces, and precisely relevant material with different vocabulary does not. If a system “forgot” something you told it, it did not forget. The retrieval step failed to select it, or the extraction step never wrote it down.

Where the system fails, and how to tell which layer broke

This is the section absent from every explanation of this topic I have read, and it is the one with operational value. When output is wrong, the layer that failed determines the fix. Attributing everything to “hallucination” is a diagnostic dead end.

What you observeLayer that failedWhat is actually wrong
Confident, fluent, entirely fabricatedModelGeneration from training distribution with no grounding. The classic case, and rarer than blamed
Answered without searching when it should have searchedTool selectionThe router judged the query answerable from parameters. You were never in the running
Searched, but your page was not among sourcesRetrievalQuery formulation or ranking. Your content may be fine and simply not selected
Your page was retrieved but not citedContext assembly or generationChunk ranked low, got truncated, or the model preferred another source
Cited but the claim is not in your pageChunk boundaryA fragment was lifted without the qualifying sentence around it
Correct answer, no link renderedPost-processingCitation resolution failed. Invisible in most monitoring tools
Refused or gave a generic responseSafety classificationNever reached a model in any meaningful sense
A diagnostic map. The distinction between rows three and four is the one that most changes what you would do next.

The uncomfortable part

Rows two, six and seven are invisible to every AI visibility tool currently sold. They report whether you appeared. They cannot tell you that the query never triggered retrieval, or that your citation was resolved away in rendering, because they observe the same surface a user sees. A large share of what gets reported as “we lost visibility” is a routing or tool-selection change at the vendor, and no amount of content work addresses it.

Why “the model doesn’t know about us” is usually the wrong worry

I hear this constantly and it reflects the same category error. The concern is that a brand is absent from training data, and the proposed fix is usually to publish more content in the hope of appearing in the next training run.

That reasoning has three problems.

  1. Most commercially relevant answers are retrieved, not recalled. Anything current — pricing, availability, comparison, recent events — triggers a search. Training data is not the pathway for those queries.
  2. You cannot meaningfully target a training run. Composition, cutoffs and filtering are undisclosed, the cycle is long, and the relationship between publishing volume and parametric representation is not one you can measure or control.
  3. Parametric knowledge is the least reliable path anyway. A model recalling your brand from weights will produce plausible-sounding detail with no grounding. Being retrieved is better than being remembered, because retrieval carries a citation and recall carries an invented fact.

The strategic conclusion, which I hold firmly: optimise to be retrievable, not memorable. Retrieval is a system you can influence with structure, clarity and freshness. Training data is a lottery you cannot enter deliberately.

What follows for practice

  • Stop saying “the LLM.” Say which layer you mean. If you cannot, you have not diagnosed the problem yet.
  • Determine whether your query class triggers retrieval at all. Ask the same question in a way that forces browsing and compare. If the answer differs substantially, you are dealing with tool selection, and that is a different game.
  • Treat non-determinism as a measurement problem. Same prompt, same day, different answers, because sampling is stochastic and routing varies. One observation is not a result.
  • Check whether your content survives being cut into pieces. Retrieval operates on chunks. A paragraph that only makes sense with the two above it will be quoted incorrectly or skipped.
  • Expect the ground to move for reasons unrelated to you. A routing change, a new safety rule, a modified retrieval threshold. None of it appears in a changelog.

The harder truth

Traditional search was adversarial but legible. Google published guidelines, announced updates, and operated a system whose behaviour you could infer from observation across many sites. It was possible to be wrong, and it was possible to find out.

Assistant systems are neither. There is no changelog, no guideline document that describes retrieval behaviour, no stable surface to measure against, and the vendors have no obligation or commercial incentive to provide any. The system is modified continuously by teams optimising for engagement and cost, and visibility is a side effect of decisions made for other reasons entirely.

I do not think that is a temporary condition that better tooling resolves. It is the shape of the thing. The rational response is not to chase the surface — it is to understand the mechanism well enough to know which movements are signal and which are somebody else’s deployment, and to build the kind of content that retrieval systems select for structurally rather than the kind that games a particular configuration.

Starting with the vocabulary. ChatGPT is not an LLM. Once you hold that distinction properly, most of the confused advice in this field becomes easy to identify.

The retrieval layer is where the real contest happens, and I have set out its mechanics in how retrieval actually selects your page. The measurement problem this creates is covered in why AI visibility tools disagree with each other.

Frequently asked questions

Is ChatGPT a large language model?

No. ChatGPT is a system that contains one. GPT is the model: a stateless function mapping a token sequence to a probability distribution over the next token. ChatGPT adds request routing, safety classification, tool selection, retrieval, context assembly and post-processing around it. Most of what users attribute to the model is produced by those other layers.

Are language models really stateless?

Not absolutely, which is where most explanations get imprecise. There is no persistence between requests, but within a forward pass the attention mechanism computes key-value representations for every token, and that KV cache is retained across generation and often across session turns for efficiency. Prompt caching makes this commercially visible in cost and latency.

How does ChatGPT memory actually work?

Three different mechanisms share the word. Conversation history is prior turns appended to the context window. Persistent memory is a separate model extracting facts and writing them to a store for later injection into system prompts. Retrieval memory embeds past conversations and pulls back semantically similar ones. None of them change the model weights.

Why does the model versus system distinction matter for AI visibility?

Because the fix depends on which layer failed. If tool selection judged the query answerable without searching, no content change helps. If retrieval ran but did not select you, that is a chunking and structure problem. If you were retrieved but not cited, that is a ranking or context budget problem. Attributing everything to the model produces the wrong remedy.

Should I try to get my brand into AI training data?

It is the least controllable path and the least reliable outcome. Most commercially relevant queries trigger retrieval rather than recall, training composition and cutoffs are undisclosed, and a model recalling your brand from weights produces plausible detail with no grounding and no citation. Optimise to be retrievable rather than memorable.

What is the difference between hallucination and retrieval failure?

Hallucination is the model generating ungrounded text from its training distribution. Retrieval failure is the system either not searching at all, searching and not selecting your page, or selecting it and then dropping it during context assembly. They look similar in output and require completely different responses, and retrieval failure is far more common than it is diagnosed.

Can AI visibility tools detect all failure modes?

No. They observe the same surface a user sees, so they can report whether you appeared. They cannot distinguish a query that never triggered retrieval, a citation resolved away during rendering, or a safety classification that short-circuited the request. A meaningful share of reported visibility loss is a vendor routing change that no content work addresses.

Why do two people get different answers to the same question?

Several reasons compound. Sampling during generation is stochastic. Request routing may serve different models depending on tier, load and query classification. Retrieval results vary by time and location. Personalisation and memory differ per account. This is why a single observation is not a measurement and why non-determinism has to be treated as a sampling problem.