Skip to content

The context source tray

A visible list of everything the model is reading right now.

9 min

Most AI products have a settings screen for data sources that the user never visits. Toggles for "use memory," "pull from Google Drive," "search the web." The user sets them once, forgets, and spends months confused about why answers are wrong in quiet, consistent ways. The source tray pulls that configuration out of settings and puts it on the prompt surface itself.

"Every source has a toggle. Every toggle has a weight. The tray is the product's memory, visible."
The pattern

Per-source toggle, per-source weight.

A persistent tray above the composer lists every source the model can draw on for the current turn — file, thread, memory, tool. Each has a toggle. Each has a visible weight. The user can disable a source or turn its influence down without leaving the compose screen. The prompt that eventually runs reflects those choices explicitly.

Source tray with toggles and weights
Flip sources on and off; watch the effective prompt update
Context tray · 3 of 4 sources engaged
FILEQ2-plan.pdf
THREADThread · #launch
MEMORYYour notes on pricing
TOOLLive dashboard · Amplitude
Effective prompt

Answer the question using: Q2-plan.pdf, Thread · #launch, Your notes on pricing

Every source has a toggle. Every toggle has a weight. The tray is the product's memory, visible.

The why

Debug is the wrong surface for ordinary use.

When a user gets an unexpected answer, their first question is "what did you read?" If the answer is buried in a settings page, they don't ask — they just lose faith in the product. Keeping sources on the surface means the question never has to be asked.

Three moves

Tray hygiene.

  • Type glyphs. FILE, THREAD, MEMORY, TOOL. Four kinds carry almost every product's needs.
  • Visible weights. A tiny bar showing how much each source is contributing. Users adjust without needing numbers.
  • Effective prompt echo. A one-line summary of what the tray resolves to, shown below it. "Answer using: X, Y, Z." Read like a contract.

The trap

Sources that can't actually be turned off.

Some products ship a source tray that's cosmetic — the toggles move, but the model still quietly reads the same context. That's worse than no tray: the user thinks they've turned something off and is surprised when behavior doesn't change.

Failure modes

What this pattern gets wrong when it gets wrong.

Leaky context
Content from another source, session, or user surfacing in a place it shouldn't.
Ghost citation
A source is shown but doesn't actually back the claim, or links to a page that doesn't contain the quoted text.
Confidence theater
Language or typography that performs certainty beyond what the model actually has.
Seen in the wild

Three shipping variants worth copying.

  • A pinned tray at the top of the response column
  • Each source shows token cost so the user knows the budget
  • A 'what's being used right now' live highlight during streaming