The harness is the product
Every chat assistant is a language model wrapped in a product layer called the harness. Most of the differences you notice between assistants come from that wrapper, which is where to look first when one of them behaves oddly.
- 1YouYour message and any files
- The harness: the product you talk to
- 2AssembleSystem prompt, memory, project files and the list of tools are wrapped around it
- 3The modelPredicts the reply, or asks for a tool
- 4ToolsSearch, files, connectors: results go back into the request
The reply you see has passed back through the harness: filtered, formatted, and sometimes cut.
What a harness is
Every chat assistant is a language model wrapped in a harness: a product layer that adds the system prompt, tools (search, code, files, connectors), memory and projects, safety filters, and compaction. You never talk to the model directly.
You talk to the harness. It assembles the bundle from What you are actually sending, sends it, runs any tools the model asks for, and shows you the result. The harness is at least as important as the model for what you experience.
| Harness layer | What it does | What you notice |
|---|---|---|
| Preamble (system prompt) | Vendor and organization instructions: role, tone, format, refusals | The assistant's "personality" and what it declines |
| Tools | Search, code execution, file reading, calendar and mail connectors | Whether it can look things up, calculate, or see your files |
| Retrieval | Chooses which passages of your files go into the request | Whether it "read the whole thing" or a few pages of it |
| Projects and memory | Re-sends saved instructions and files each turn | Whether it remembers your format across chats |
| Guardrails | Filters on input and output beyond the preamble | Refusals that seem to come from nowhere, redacted answers |
| Compaction | Summarizes older turns when the window fills | Forgotten corrections in long chats |
| Interface | Modes, model picker, sharing, agent builder | What you can click on |
Why the same model behaves differently in different products
The same model generation shows up in more than one product, and each one wraps it in a different harness. An enterprise or work-account tier runs the model behind an administrator's preamble, a different set of connectors, and its own rollout schedule; the consumer tier you use at home runs the same generation behind the vendor's own defaults.
A feature you use at home may arrive later in a work account, or never, because the two tiers are built and rolled out on different schedules.
| Consumer tier | Enterprise / work-account tier |
|---|---|
| The vendor's own roadmap and blog | Your organization's own rollout schedule; check with your admin, not the blog |
| Every connector the vendor offers | The connectors your organization's admin has turned on |
| Memory across all your chats | Whatever your organization's harness provides, which may differ by model |
| The same model generation | The same model generation, in a different bundle |
Your own organization's additions work the same way. An administrator's preamble, a project your division set up, or an agent someone shared all change behavior without touching the model. When two colleagues get different results from "the same model," ask what each was inside.
Where to look when something surprises you
| Symptom | Usually the… |
|---|---|
| It refuses a phrasing or insists on a format | Preamble (vendor or organization instructions) |
| It "can't see" a file or a calendar | Tools and connectors the harness exposes |
| It forgot something from early in a long chat | Compaction rule of the harness |
| It "remembers" something you never told it in this chat | Memory or project feature re-sending saved text |
| It answers about page 3 but not page 60 of your file | Retrieval choosing passages, or the window filling |
| It reasons worse on a hard problem than another product | The model itself, finally |
Work down the table in order and leave the model until last. It is the one thing you cannot change, and it is usually not at fault.
What this means for choosing
Choose by harness first. The question is rarely "which model is smartest?" and usually "which product has the tools this job needs?"
| Job | Harness feature that decides it |
|---|---|
| Document review | File upload, and whether whole files or passages are sent |
| Anything numeric | A code or calculator tool |
| Recurring weekly work | Projects with standing files and instructions |
| A helper the team will share | An agent builder with sharing |
| Finding the instruction in the first place | Policy search |
Which tool for which job lays out who has what, dated. Model differences show up once the harness is already right and the work is already hard.
A staff example
| Officer A | Officer B |
|---|---|
| Asks about a travel claim in a project with the travel instruction attached | Asks the same model the same question in a bare chat |
| A precise answer with the paragraph quoted | A general answer with a made-up form number |
| Same model, same question. The file made the difference. |
What to do with this
List the tools your usual assistant has: search, code, files, projects, agents. That list tells you more about what it can do than its model name does. Then read Prompt injection, which follows from the harness feeding the model everything as one text.