Leverage AI
Context economics · Retrieval enrichment · LeverageAI

The Novelty-Preserving Carve-Out: Stop Paying Context to Repeat Itself

📖 This article has an expanded ebook edition — read the full ebook.

Your enrichment layer is getting richer. The answers are not. The missing test is whether the payload is buying novelty — or paying to repeat what the model can already see.

Here is a failure mode that looks like progress on a dashboard and feels like stagnation in production.

You ship a smarter retrieval stack. You add a convergence layer, a bloom, a multi-hop expander, a “structural context” pack. The JSON gets thicker. The traces look more sophisticated. The token meter climbs. And the answers — subjectively, annoyingly — do not get better. Sometimes they get slightly worse: slower, more hedged, more diffuse. You did the responsible engineering thing. You fed the model more of the graph’s structure. Why didn’t it pay?

Because a large share of that enrichment was not information. It was replay.

This piece is about a cheap audit you can run on any enrichment mechanism, and a design rule that falls out of the audit: spend context on novelty, not on mechanically repeating salience. The numbers come from a dated replay of stored traffic in a production system I built and operate. The doctrine is portable. The specific Top-K is not a universal constant — and I will keep saying that until it sticks.

Reader question

My retrieval layer returns richer and richer context and the answers are not getting better. What is the payload actually supposed to buy?

Name the system (provenance first)

Every figure in this article comes from AskUI — my own AWS Marketplace application. It is unrelated to the third-party UI-automation and testing vendor that also trades under the AskUI name; if you search the brand, you will find that company first, so the disambiguation belongs in the open rather than in a footnote.

AskUI is the system whose stored walk traffic was replayed on 26 July 2026. The figures are this system’s own instrumented telemetry from its own traffic. They are not a general industry benchmark, and they do not travel unmodified into someone else’s stack. Naming the system is a credibility upgrade for exactly that reason: this is not an abstract toy corpus. It is production path history from a shipped product, re-run offline against design alternatives.

I will not name session identifiers. “A dated replay of stored traffic (26 July 2026)” is the right grain.

The design that was reasonable — and what it assumed

The original enrichment idea was not foolish. In the Intent Compiler stack, retrieval does not stop at a ranked list. It builds a layered package: direct semantic hits, a halo of one-hop neighbour gists, advisory recall, a convergence map of nodes repeatedly implicated by actual edges, and then a bloom that raises resolution on those hotspots.1

The slogan underneath was clean: resolution follows structure. If several independent paths in the returned neighbourhood keep pointing at the same page, that page has earned more payload — a richer abstract, more claims, more edges — than a lonely leaf that appeared once on the fringe.

That is Progressive Resolution applied to retrieval: do not polish everything; stabilise structure, then spend detail where structure warrants spend.2 It also sits comfortably inside the broader context-engineering canon. Attention is finite. Context is not merely window capacity; it is an attention budget with diminishing returns.3 Signal density — the share of resident context that actually serves the task — is a first-class quality metric. Progressive disclosure keeps the default surface compact while preserving a route to depth. None of that is wrong.

The silent assumption was more specific: that structural salience in the graph is news to the model when it arrives as bloomed text. That “this node is pointed at five times” is something the package must restate at full resolution, or the model will miss it.

Telemetry rejected that assumption without rejecting the stack.

The overlap audit (the method, not the myth)

Here is the test. Take one retrieval response as actually shipped to the model. Split it into two bags:

  1. Base payload — the fields the model would have even without the enrichment layer under suspicion (titles, IDs, outbound edge lines, halo gists, direct hit abstracts).
  2. Enrichment output — everything the convergence/bloom (or reranker explanation, or multi-hop expansion) added on top.

For each enrichment item, ask a binary question with no poetry attached:

Was an equivalent identifier, title, or relationship already visible somewhere in the base payload of the same response?

If yes, the item is already-visible. If no, it is novel within the payload.

That is the whole audit. It is not “is this relevant?” Relevance is a different axis — the one the industry already optimises. It is not “is this duplicated in the corpus?” Corpus redundancy is a third axis, and a sibling piece treats it as error-correcting structure rather than bloat.4 The overlap audit is strictly about redundancy inside one response: are you paying tokens to tell the model something the same JSON already told it?

Run the fraction. That single percentage is often more informative than another latency chart.

A worked pass on one package (shape, not invention)

Imagine a single search package as the model receives it. The base payload already contains, among other things: five direct hits with short abstracts; for each hit, a handful of outbound edge lines in the form page → relation → neighbour; and a halo of one-hop neighbour gists so the synthesizer can see local context without walking every edge by hand. That is already a lot of structure. The convergence layer then nominates additional “hotspot” pages for bloomed resolution — richer abstracts, claim lists, path explanations.

Now walk the nominations one by one. Nomination A is project.ebook-writer. Scan the outbound lines: three different direct hits already list edges into that same project. Mark already-visible. Nomination B is a concept page that appears in two halo gists by title. Already-visible. Nomination C is a page that never appears as a destination on any outbound line in this package, and does not appear among the direct hits, but appears as an inbound source: something outside the returned neighbourhood points at a page that is in the set. Mark novel. Nomination D is a high-mass hub that every search in this corpus seems to rediscover — and sure enough, it is already named four times on edge lines. Already-visible.

Do that for the whole nomination list. Sum the already-visible marks. Divide by the total. That ratio is the overlap rate for this package. Average it across a sample of packages and you have the audit result. In the AskUI replay the average was not “somewhat high.” It was 99.7%.

Two implementation notes matter if you want the audit to be honest rather than theatrical.

First, decide in advance what counts as “equivalent.” Title match, stable ID match, and edge-destination match are the strict, automatable core. Fuzzy paraphrase matching (“this bloomed claim restates a halo gist in different words”) is real waste but harder to score without another model call; start with exact and near-exact identifiers so the audit cannot be accused of motivated reading. If the strict audit already shows double-digit waste, you do not need the fuzzy layer to justify a redesign.

Second, audit the model-facing package, not the internal debug view. Engineers often look at a dashboard that already deduplicates what the model still receives twice. The only payload that counts is the one that entered the context window.

What the AskUI replay actually said

On the 26 July 2026 replay of stored AskUI walk history, the enrichment layer under test was the convergence nomination set — the nodes the bloom stack proposed for higher resolution because the returned neighbourhood kept pointing at them.

99.7%
of convergence nominations were already present in the visible outbound edge lines
6,472 → 987
convergence entries after the carve-out (replay)
4.75 → 0.33 MB
payload bytes under the same replay comparison
Top-5
current empirical attention convenience — not a universal constant

Read the 99.7% figure slowly. Almost the entire “smart” layer was re-announcing destinations the model could already see listed on outbound edges in the same package. The convergence map was not mostly discovering structure. It was mostly printing a highlight reel of structure the halo and edge lines had already exposed.

Two further results closed off the obvious escape hatches.

First, a harsher exponential threshold — “only bloom when mass is really high” — sounded like principled thrift. In the actual mass distribution, the higher rungs were rarely reached at all. The instrument was wrong for the shape of the data. You cannot save a bad spend policy by raising a threshold that almost never fires.

Second, convergence mass was only a weak predictor of whether a page was actually opened. The thing we were using as a warrant for more payload was not even a strong warrant for the next walk step. Salience-as-mass and usefulness-as-opened were only loosely coupled.

None of this meant “delete the convergence layer.” It meant re-price it.

How the failed variants earned their keep

The path to the carve-out was not a single clever insight. It was a short sequence of designs that each failed in a way that clarified the next instrument — the kind of failure that only compounds if you keep the walk history and the harness long enough to interrogate them.

The first idea was the rich bloom itself: more convergence should earn more context. Conceptually tidy. Empirically, a bloat engine for already-visible structure. That failure established the measurement need: you cannot argue with “it feels richer” once you can count already-visible nominations.

The second idea was thrift by curve: keep bloom, but demand exponentially more mass for higher resolution rungs. It sounded like the adult version of the first idea. The mass distribution simply did not reach those rungs. The failure established that the problem was not “insufficient strictness.” It was “wrong spend target.”

Ameliorations and re-tweaks followed — the familiar loop where an idea is mutated until everyone is tired of it. What finally held was not a more elaborate threshold. It was a category split: a small attention convenience for repeated signals the model could in principle reconstruct, and a protected residual for signals it could not. The counterexamples did not merely reject losers; they bred the evaluator. That is the harness doing its job. The co-design loop that made the iteration fast enough to stay inside one line of thought is a story for another day. What matters here is the economic doctrine the loop left behind.

The inversion: attention convenience, then novelty

If 99.7% of nominations are already visible, the right response is not “never show repeated signals.” The model’s attention is finite; a short, explicit shortlist of the most repeated destinations can still be a useful glance — a nudge, not a second photocopy of the neighbourhood.5

The design that survived replay was an inversion of the original spend rule:

Show a small fixed number of repeated signals as an attention convenience, but always preserve information the model cannot obtain from what it has already been shown.

In the AskUI setting, that small fixed number is currently top five. I am stating that as a current empirical setting, not as a law of nature. Different graph densities, different edge-line verbosity, different model families will move K. What should not move is the principle underneath: the carve-out that protects novelty, and the refusal to spend the bulk of the budget re-paying salience.

Under that policy, the replay reduced convergence entries from 6,472 to 987 and bytes from 4.75 MB to 0.33 MB, while measured precision and cost per eventual take improved.

That sentence is doing three jobs at once, and only two of them are victories. Which brings us to the caveat that must not be sanded off.

The mandatory caveat (read it as load-bearing)

Replay, not live traffic

Absolute historical takes fell under the replay, and replay cannot fully predict how future walkers will adapt to a smaller payload. The live test has not been run yet. This is a replay result, not a live-traffic result.

A payload reduction from 4.75 MB to 0.33 MB looks like a win on its own. It is only a real win when read alongside precision and cost-per-take together. Byte totals and raw call counts are engineering constraints, not quality scores by themselves.6 Celebrating the megabyte collapse without the precision line, the cost-per-take line, and the absolute-take decline is dashboard cosplay. Celebrating all four without admitting the live gap is marketing.

Historical replay is also conditioned on what the old walker was shown. Behaviour under the new package is partly a new experiment. That is not a reason to ignore the overlap finding — 99.7% already-visible does not need a live A/B to be embarrassing — but it is a reason to keep the claim scoped.

Context rot research makes the same economic point from the model side: frontier systems degrade as input grows, even inside advertised windows.7 Lost-in-the-middle work shows that material buried mid-context is systematically under-used.8 Paying tokens to restate salience is not only wasteful; it can actively dilute the attention available for the rare item that was actually news.

How to read the four numbers together

When people skim a result like this, they latch onto the megabyte line. 4.75 MB to 0.33 MB is a dramatic ratio. Dramatic ratios are dangerous. Here is the joint reading this piece insists on:

If you only quote the middle two bullets, you are selling. If you only quote the last bullet, you are sandbagging. The honest posture is all four, plus the live gap. That posture is also how you keep the doctrine portable: other teams will get different absolute-take behaviour; they still need the same joint reading discipline.

Deterministic fusion doctrine already said attention is CapEx — full-resolution everything is how you afford nothing.1 The replay made the accounting concrete. CapEx spent on reprinting the halo is CapEx not spent on the residual, on deeper source descent, or on headroom that keeps the model from diffusing.

What was actually novel: inbound-only relationships

When the already-visible mass was stripped away, a residual class survived the audit: uncommon inbound-only relationships — the “cited by” direction rather than the “references” direction already printed on outbound lines.

That residual is why the reverse direction belongs in the carve-out at all. Outbound edges answer: given this page, where might I go? Inbound edges answer: what larger or more peculiar thing considers this page relevant? The model can often notice that several visible edges point to the same place. It cannot infer an invisible reverse relationship from outside the returned neighbourhood.

In a densely bidirectional graph, most inbound relationships are already visible as outbound from somewhere else in the result set. That is exactly why true inbound-only survivors are rare — and why the ones that remain after the overlap filter carry outsized information value per byte. Rarity is not a bug in the design; it is the economic signal.

I am going to stop the argument there on purpose. What a reverse edge means epistemically — consequence versus antecedent, use versus association, the fuller list of stabilising reveals — is a different piece of work, forthcoming as a treatment of edge-direction epistemics. So is the graph-design prescription that might follow. This article’s job is the measurement: the replay found that the novel residual was inbound-only, and the novelty test explains why. The meaning of that residual is sibling territory.

One disambiguation for readers who already know the stack: Quote Satellite is an existing reverse-index mechanism used for a different purpose — giving selected source-exact quotes access without granting them canonical citizenship in the main graph.9 Do not conflate that design with the novelty carve-out. Same compass direction (something reverse-ish); different question (evidence access without authority vs. within-payload novelty economics).

Why the context-engineering canon still needed this axis

Attention budget, signal density, context budgeting, and progressive disclosure all reason about how much context and how relevant it is.3 They are necessary. They are not sufficient for the failure mode measured here.

A token can be relevant and still worthless if the model can already recover the same fact from another field in the same package. Relevance does not imply novelty-within-payload. Corpus non-duplication does not imply payload non-duplication. You can have a beautifully non-redundant wiki and still ship responses that re-print the same edge three ways.

Route-invariant grounding — the property that reasonable walk variation still reaches equivalent load-bearing evidence — is also adjacent rather than identical.10 You can have route resilience and still waste payload. You can tighten payload and then re-measure route behaviour. The axes touch in A/B design; they do not substitute for each other.

Axis Question Owned by
How much / how focused Is attention diluted? Attention Budget, Signal Density, Context Budgeting
How relevant Does this serve the task? Rerank, fusion, progressive disclosure
Corpus shape Is repetition load-bearing structure? Wiki redundancy / error correction
Route stability Do varied walks still ground? Route-invariant grounding
Within-payload novelty Is this obtainable elsewhere in the same response? This piece

Where else the same tax shows up

Wiki bloom is a clean specimen because the edge lines make “already visible” almost mechanical to score. The tax is not unique to wikis.

Multi-hop expanders that re-emit entity cards for nodes already present in the first-hop set are running the same meter. If hop-2 is mostly a prettier reprint of hop-1’s neighbour list, the overlap audit will light up red even if every entity is “relevant.”

Agent research dossiers that concatenate three tool results, each of which summarizes the same three URLs the agent already opened, are paying novelty zero for summary volume one hundred. The audit still works: treat each tool-result section as enrichment relative to the cumulative base of prior sections in the same turn.

Rerank explanations that attach a paragraph of “why this document ranked” when the features cited are already literal fields in the document card are another form of halo reprint. A one-line attention convenience (“top feature: exact title match”) may still be worth it. A second abstract usually is not.

Tool-schema restatement is adjacent: dumping full parameter docs into the prompt when the model already has a compact tool list. That is closer to classic context hygiene than to graph bloom, but the novelty test still applies — is this schema text news relative to what is already resident?

In each case the design move is the same. Separate the shortlist that helps attention from the residual that cannot be reconstructed. Measure the residual. Protect it by policy. Stop congratulating yourself for the shortlist’s thoroughness when thoroughness was the waste.

A protocol you can run next week

Doctrine without an operating model is a slogan. Here is a protocol specified far enough that a competent engineer can run it without inventing the missing half.

1. Pick one enrichment mechanism

Bloom, multi-hop expansion, “related entities” pack, tool-result restatement, agent research dossier — anything that adds fields after a base retrieval. Name it in one line. Write down the exact field paths that count as enrichment versus base. If you cannot draw that line, you are not ready to audit; you are ready to clean the schema.

2. Log a sample of model-facing packages

Twenty is a useful start for a distribution; more if traffic is highly multimodal. Export the full payload the model saw, including system scaffolding if the enrichment is mixed into it. Exclude internal dashboards. Timestamp and config-hash each package so you can replay the audit after the next code change.

3. Build the already-visible index for each package

From base fields only, extract the set of stable IDs, normalised titles, and edge destinations. This is your obtainability surface. Keep it dumb and deterministic. Resist the urge to embed everything “for semantic overlap” on day one.

4. Label each enrichment atom

For every ID, title, edge, or claim fragment the enrichment layer added, mark already-visible or novel against that package’s obtainability surface. Be strict: if the outbound line already named the node, the bloomed abstract of that node is already-visible for the purpose of this audit. You may still keep a short Top-K convenience list in production; the audit is measuring waste, not forbidding convenience. Record a third bucket — ambiguous — for items you cannot score without judgment, and keep it small; if ambiguous dominates, your schema is too free-form for automatic audit and you should tighten identifiers first.

5. Report a joint scorecard, not a single hero metric

6. Redesign the spend rule before you redesign the model

Cap salience-repetition to a small attention convenience. Preserve the novel residual by policy, not by accident. Re-measure the joint scorecard. Do not ship a byte-reduction victory lap without the quality pair and an explicit live-traffic plan. If absolute takes fall, write that down in the same paragraph as the byte win.

7. Keep K empirical; keep the carve-out doctrinal

Sweep K on your traffic. Plot embarrassment rate, residual survival, precision, and cost-per-take against K. Pick an operating point. Publish the principle in the design doc. Refuse to fossilise last month’s optimum as architecture religion. Re-sweep when edge-line verbosity, graph density, or model family changes — those are the levers that actually move K.

8. Schedule the live test as part of the design, not as a sequel fantasy

Replay is how we found the 99.7% figure and the residual class. Live traffic is how you learn whether walkers adapt, whether absolute takes recover, and whether the residual still carries the weight you hoped. Put a date and an owner on that test when you ship the carve-out. A doctrine that cannot survive contact with adapted behaviour is still a hypothesis.

Takeaway

After this, you can audit any context-enrichment mechanism by asking what proportion of its output was already visible elsewhere in the same response — and rebuild the mechanism around novelty instead of salience.

What this is not

It is not an argument that Hotspot Bloom was a mistake as a research programme. The stack made structure legible; the telemetry revised what structure deserves full resolution. That is how instruments are supposed to work.1

It is not an argument that graph edges are worthless if they are bidirectional. Density is why inbound-only survivors are rare and valuable.

It is not a claim that AskUI’s percentages are your percentages. Run the audit. Your already-visible fraction might be lower. If it is 20%, you have a different problem (and a better enrichment layer than we did). If it is 90%+, you have been paying a replay tax with a sophistication story on top.

It is not a substitute for route-invariant grounding tests, corpus hygiene, or live evaluation. It is the missing novelty axis those programmes usually skip.

Objections, answered without hedging the measurement

“The model might need the repetition to notice.” That is exactly what the attention-convenience budget is for. A short Top-K list is the honest form of that argument. Full-resolution bloom of everything already on the edge list is the dishonest form. If your claim is “the model is thick and needs a highlight,” ship a highlight — not a second copy of the book.

“Our enrichment is semantic, not structural; your edge-line audit does not apply.” Then redefine already-visible against whatever base fields you do ship — prior tool results, document cards, citation lists. The axis is obtainability within the payload, not “edges” as such. Edges made our audit easy. They are not a prerequisite for the doctrine.

“Cutting payload will hurt multi-hop reasoning.” It might, if you cut the novel residual. The carve-out is specifically designed not to. What it cuts is the reprint. If your multi-hop quality depended on the reprint, you have a different problem: the base package was unreadable and the bloom was papering over layout failure. Fix the base. Do not call the paper “reasoning.”

“99.7% is so high it cannot be right.” Run your own audit. I am not asking you to believe AskUI’s percentage as a constant of nature. I am asking you to believe that the percentage is measurable, and that until you measure it you are guessing whether your enrichment is a product or a tax. In a densely bidirectional graph with verbose edge lines, high already-visible rates are exactly what you should expect. The surprise was not that the rate was high. The surprise was that we had been shipping the tax as a feature.

“This is just context hygiene with new branding.” Context hygiene says: remove what does not serve the task. This says: even among things that serve the task, remove what the model can already obtain from the same response. That is a stricter filter. Plenty of “hygienic” packages still fail it.

Close

The industry is in a phase where every stack grows an enrichment layer. Larger windows made the habit feel cheap. Attention never got cheaper. The models still diffuse under clutter; the middle of a long package is still a bad place to hide the one fact that was actually new.7,8

The overlap audit is almost insultingly simple. That is the point. You do not need another model call to ask whether a field is news. You need to compare the enrichment layer to the rest of its own response.

When we did that in AskUI — my AWS Marketplace app, own traffic, dated replay, not a bake-off — the answer was humiliating in a useful way: 99.7% of convergence nominations already visible in outbound edge lines; exponential thrift that never reached its own rungs; mass only a weak predictor of opens; entries 6,472 to 987; bytes 4.75 MB to 0.33 MB; precision and cost-per-take improved under the replay; absolute historical takes fell; live adaptation still untested; and a tiny residual of inbound-only relationships doing the real novel work. The surviving rule was not “Top-K equals five forever.” It was:

Spend context on novelty, not on mechanically repeating salience.

Cap the highlight reel. Protect the residual the model cannot reconstruct. Measure precision and cost-per-take next to the bytes. Admit when the evidence is still replay. Then go run the live traffic.

That is what the payload was supposed to buy all along: not a second printing of the neighbourhood map, but the few lines the map could not have told you.

References

  1. Scott Farrell / LeverageAI. “Intent Compiler” (ebook), ch. 4 — Bloom: Resolution Follows Structure. Wiki cite #e622a9. Stack: Direct → Halo → Recall → Convergence → Bloom; resolution follows structure. — leverageai.com.au (Intent Compiler series)
  2. Scott Farrell / LeverageAI. “Progressive Resolution” (ebook). Coarse-to-fine work; increase resolution only after structure stabilises. Wiki cites #708a2d, #66dc5b.
  3. Anthropic Engineering. “Effective Context Engineering for AI Agents.” — “Context must be treated as a finite resource with diminishing marginal returns”; attention budget framing. https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
  4. Scott Farrell / LeverageAI. “Your Wiki's Redundancy Is Error Correction.” Article 183. https://leverageai.com.au/wp-content/media/articles/article.php?article=183-wiki-redundancy-is-error-correction
  5. Scott Farrell / LeverageAI. “The Nudge Doctrine” (ebook), ch. 1. A nudge is a small advisory prior — a whisper, not a vote. Wiki cite #0b8589.
  6. Scott Farrell / LeverageAI. “File Back the Walk” (ebook), ch. 11 — What Telemetry Is Not. Bytes and call counts as engineering constraints, not quality scores. Wiki cite #2bcb76. Combined with AskUI replay caveat in content.md (26 July 2026).
  7. Chroma Research. “Context Rot: How Increasing Input Tokens Impacts LLM Performance.” Eighteen frontier models degrade as input grows within declared windows. https://www.trychroma.com/research/context-rot
  8. Liu et al. “Lost in the Middle: How Language Models Use Long Contexts.” Transactions of the Association for Computational Linguistics, 2024. U-curve: performance degrades for relevant material in the middle of long context. https://aclanthology.org/2024.tacl-1.9/
  9. Scott Farrell / LeverageAI. “Quotes Without Canonical Authority” (ebook), ch. 1 — Quote Satellite / access without citizenship. Reverse lookup without graph citizenship; different purpose from novelty residual. Wiki cite #1e0156.
  10. Scott Farrell / LeverageAI. “Route-Invariant Grounding.” Article 182. https://leverageai.com.au/wp-content/media/articles/article.php?article=182-route-invariant-grounding