Spare capacity, narrow surface: the exposure record of a production agent-memory system
Description
A production memory system, serving six agents for twelve weeks, never exposed 83.78% of its own corpus — and not for lack of room. The proactive channel delivered 583,763 slots against 67,187 chunks, capacity to show everything eight times, and showed 1,787 distinct chunks: 2.66%.
This work measures the exposure surface of a memory system for agents: how many distinct items an agent in production actually receives, and which ones. It is a coordinate the field's benchmarks do not measure — they evaluate nDCG and recall over query sets, and none of those metrics sees what no query ever reached. The field's canonical survey (TMLR 2602.06052v4, 218 papers) does not record the term.
What is measured
- Non-exposure is the result of policy, not a capacity limit. Under uniform serving the expected coverage would be 99.98%.
- The two channels of the surface freeze, for opposite reasons. The coverage channel exhausts 100% of an eligible pool of 108 chunks every day; the main one is determined by search traffic from months ago and does not respond to score adjustment.
- Exposure falls with collection size. The five types with more than a thousand chunks are squeezed into 10.7–27.0% exposure; of the ten small types, eight are above 32.5% and two are at zero. Size, however, is not separable from curation: no corpus variable measures the latter.
What is not measured, and the paper says so
There is no instrumented downstream outcome: nothing here establishes that non-exposure costs the agent value. The generalization of the mechanism is deductive — it holds for any ranker with lexicographic order and a bonus on the subordinate coordinate — and not empirical: it is one system. And of the two measured surfaces, only the brief is decided by the system; search is initiated by the agent and accounts for most of the recorded exposure.
Instrument defects as part of the contribution
Section 6 and Appendix E catalogue 17 instrument defects found
during the work, eight of them altering numbers that were already written. They are in the
paper because the rate at which a production measurement produces silent defects is itself a
result — and because each correction names who found it and what would have prevented it.
Among them: a value cited in five places without any artifact that contained it; three
coefficients that lived only in stdout for four days; an artifact
rewritten on every run being cited as a historical source; and a guard whose regular
expression made it incapable of failing.
The package
Besides the manuscript, the deposit includes the verifier (claims_check.py, 19
guards that recompute the numerical claims against the artifacts), the six mechanical
censuses, the 58 measurement artifacts, the 53 scripts that generate them and the three
serving modules pinned by the sha256 of their blobs. The intent is that every
number in the paper be recomputable by a third party without access to the system — and the
package carries the artifacts, not only their hashes, because a corpus pinned by identifier
was already lost in this same work, taking 280 adjudicated episodes with it.
Relationship to the pre-registration. This is a completed observational
study. The interventional trial it precedes is pre-registered at
10.5281/zenodo.22110203 and has not
yet started: no randomized epoch exists, no arm has been assigned. The deviations between the
public registration and what will apply to Epoch 1 are declared in
DEVIATIONS-FOR-PAPER.md, including the most delicate one — the registration still
declares open a designation defect that was resolved outside it.
⛔ Erratum 2026-09-07 — one script in the package is a record of an error, not an instrument
The file measurement/dose2.mjs, inside
scripts.zip, was refuted on 2026-08-27 and the number it produces is
false. It is in the deposit as a record of the error, and nothing inside it says so —
this erratum exists so that whoever opens the package knows before running it.
- What it produces:
churn0 atw ∈ {2.0 · 4.0 · 7.5}, with 19 boosts emitted. - What the real pipeline produces: 11 / 15 / 17 states
out of 350, monotonic, saturating in
(4.0 ; 4.4]. - Why: "production path" there was the right corpus with the
ordering reimplemented — it goes through neither
interleaveFreshnorpickDedup. A positive control over a reconstructed pipeline proves nothing about the pipeline.
⚠️ The aggravating factor: the file's own header asserts what was refuted — "now on the path that prod REALLY uses" (in the original Portuguese, "agora no caminho que prod REALMENTE usa") — and narrates a harness defect already fixed, which leads one to conclude that that version is sound. It is not.
No number in this paper depends on it. The current texts
(MANUSCRIPT.md §5.4 and DEVIATIONS-FOR-PAPER.md §1), both
deposited, give 11 / 15 / 17. The risk is exclusively to whoever reruns the script
taking it for an instrument.
The caveat had existed since 08-27 in measurement/README.md, which is
not part of the deposit — the artifact travelled and the caveat stayed behind.
The files of a published record are immutable, so the correction comes through here.
Detail: paper2-interventional/deposit/paperA/POST-PUBLISH.md in the
repository.
Erratum (2026-09-08) — the interventional trial has started.
The section Relationship to the pre-registration above states that the trial
pre-registered at
10.5281/zenodo.22110203
“has not yet started: no randomized epoch exists, no arm has been assigned”.
That was true when this record was published and ceased to be on
2026-09-01. The 234 epochs were randomized prospectively in a single operation
(ASSIGNMENT.json; drand quicknet beacon, round 31774052, seed
SHA256(ascii(randomness_hex))), balanced 117 control / 39 w=2 /
39 w=4 / 39 w=7.5, and Epoch 1 entered active mode at
2026-09-01T10:25:39Z. No trial result is contained in this record, and no
conclusion of this observational study depends on the state of the trial — the corrected
statement is descriptive, not analytical.
Two honesty notes on this correction. First: the defect is one of
aging, not an error at the time of writing — a sentence about a live
series, published as if it were an instant, became false through the passage of time.
It was detected by an automatic verifier that compares the text's claims against the
state of the artifacts (claims_check.py), not by rereading. Second: the
files of this deposit remain immutable and were not altered; this
erratum is appended to the description, which is metadata. The MANIFEST remains
the proof of the published content and must not be recomputed.
What changed in v1.1 (2026-10-05)
The text above is the v1.0 description with its two dated errata, translated from the Portuguese published with v1.0; content and numbers are unchanged, and the Portuguese original stays on the v1.0 record. Version 1.1 is the manuscript translated to English and revised: the 2026-09-21 corrections, a 2026-10-04 audit of claims that had aged, and the reviews of 2026-10-05. Every change is recorded, with its source, in Appendix F of the manuscript; the 2026-10-05 round is Appendix F-5. Where the v1.0 description and v1.1 differ, v1.1 holds.
Title. v1.0 was titled "Spare capacity, narrow surface: what a production agent-memory system actually surfaces". v1.1 is titled "Spare capacity, narrow surface: the exposure record of a production agent-memory system": the old ending used "actually" as an intensifier and repeated surface/surfaces. The title note at the top of the manuscript records the change.
Recomputed with production code. Three quantities were recomputed rather than relabelled, each with a dated artifact.
- Access counterfactual (§4.3.2). The published 2/3/5 → 131/129/128 came
from a script whose recency and
importancedefault are not those of the production function. WithcalculateSaliencethe three chunks rank 1, 3 and 4 by salience among the 149 served chunks and fall to a tie at ranks 44–46 when the access component is zeroed (23–47 across instants and access-timing assumptions). Dedup was not replayed, so these ranks do not by themselves establish final served membership. "Beyond rank 100" and "exactly 52 places lower" are withdrawn. The claim that zeroing access takes the three out of the top-10 stands.out/SALIENCE-COUNTERFACTUAL-PROD-2026-10-05.json. - Tie-break exposure (§5.7.1). Recounted on the comparator's key instead of
the SQL pre-rank expression: 34–42 pairs at second resolution (0.59–0.73%) and 1,197 at day
resolution. The earlier 68 / 269 / 917 / 1,656 remain cited as the pre-rank count.
out/TIEBREAK-EXPOSURE-PROD-2026-10-05.json. - Bonus against step (§4.4, §5.4). The 0.0946 and 1.79× used a severity
multiplier of 0.5 that only the replay's summary applies; production applies 0.25. The
bonus is 0.0473, 0.90× the largest adjacent gap, and the claim that the items crossed
several positions is withdrawn.
out/BONUS-VS-STEP-2026-10-05.json.
Claims corrected or narrowed. Several sentences of the v1.0 description above are superseded:
- "never exposed 83.78% of its own corpus": the 56,288 live chunks (83.78%) have neither a brief-log record nor a positive search counter. That is a lower bound on non-delivery by the brief and by tracked search, not a measurement that they were never exposed; non-delivery across all agent-facing search is not established. The bound also assumes that the brief's log write, which is fail-open and records no failure, never failed: a failed write would deliver items with no row.
- "delivered 583,763 slots ... and showed 1,787 distinct chunks: 2.66%": the brief log records 583,763 selected slots and 1,635 distinct live chunks (2.43%); 1,787 counts the 152 that were served and later deleted. The log is written before the text renderer, which can drop trailing items at a token budget; a render check found no dropped item in the briefs reconstructed from 2026-08-22 to 2026-09-07, and delivery over the whole window was not verified, so these counts are logged selections. The same applies to "how many distinct items an agent in production actually receives": what is counted is what the brief selected and logged.
- "search is initiated by the agent and accounts for most of the recorded exposure": the search counter records that a chunk was a top candidate of some tracked call, whoever initiated it (automated callers included). It bounds from above what tracked search returned and identifies no initiator.
- "the main one is determined by search traffic from months ago and does not respond to score adjustment": the three chunks present in every brief of the week hold ranks 1, 3 and 4 by salience among the 149 served only through tracked search traffic from months ago (44–46 with access zeroed). The high-pain pin separately affects selection: it selects them in phase 0, before the quota pass, protects only what the score has already placed there, and is measured as necessary for main-set membership for one of the three (lifting it removes chunk 116107 from every reconstructed brief; the other two stay). The main pool would respond to a score adjustment, and nobody adjusts it.
- "a coordinate the field's benchmarks do not measure", "they evaluate nDCG and recall over query sets, and none of those metrics sees what no query ever reached": the survey's metrics (its Table 3) also cover memory quality, responses and end-to-end task success. What its metric taxonomy does not include is a census of distinct memory items delivered under production traffic. The survey is the source inspected, not a census of the field: what its taxonomy and its extracted text lack does not establish field methods or conventions.
- "exhausts 100% of an eligible pool of 108 chunks every day": measured on 2026-08-26 to 08-29,
inside a period of defective session ingestion, and describing that regime. The coverage
channel's daily reach is bounded by its eligible population (path patterns, the
importance/pain floor and age windows); within a brief it responds to score only within
last_servedties (17/350 in the replay, with the designation and the recorded severity labels held fixed; not a maximum over all score adjustments) and then saturates. - "eight are above 32.5%": seven are above 32.5% and one is at 32.5%.
Also narrowed: in the derivation of §5 the "if and only if" entry condition now holds only when the item is the only bonused one of its stratum, the closed formula for the saturating bonus is withdrawn, and the generality claims are stated for rankers that serve a prefix of the lexicographic order. Numbers in the text that have no preserved artifact are flagged where they appear.
A v1.0 statement withdrawn. v1.0 stated, in §1 (Introduction, the first of
the coverage channel's two reasons), that the coverage channel went five consecutive days with
zero new items while the minimum age of what it served rose by exactly +1.00 per day; its §2
added that §4.3.1 showed five consecutive days without an eligible candidate, which §4.3.1 did
not show. The series came from a table in a pre-deposit draft, computed by a script whose output
was never saved, and the statement was false as written: the table itself recorded 52 new items
on 2026-08-20 (the memory/lessons.md ingestion of that day), but its minimum-age query
excluded those chunks because they had later been deleted (_sprint-2026-10-04/A-recon/RECON-52-e-sondas-2026-10-04.json).
v1.1 replaces it with two separate measurements: in the 10-row agent briefs, the same 108
coverage-side ids on every day from 2026-08-23 to 2026-08-29
(_sprint-2026-10-04/A-rc2/COVERAGE-SET-FROM-LOG-2026-10-04.json; the five health
probes of 2026-08-26 are outside that count and served five further chunks that day), and,
counting serves across both channels, the 2026-08-21..22 batch at 108 distinct chunks a day
(109 on 2026-08-26), with its minimum served age rising from 0.92 on 2026-08-23 to 6.92 on
2026-08-29 in steps of 1.00 (0.72 on 2026-08-22; BATCH-CYCLE-2026-08-29.json).
The package. The 13 files of v1.0 are carried over unchanged. Added:
spare-capacity-narrow-surface-v1.1.pdf and its source spare-capacity-narrow-surface-v1.1.md;
artefatos-v1.1.zip (60 files: the 2026-10-04/05 artifacts, among them the
diagnostic of the one residual mismatch of the filter reconstruction, artifacts the text cites
that v1.0 did not include, the current DEVIATIONS-FOR-PAPER.md, and the review
records of Appendix F); scripts-v1.1.zip (39 files: the scripts that produced
them, the four v1.0 scripts changed since, the retired monitoring triggers, the parity checks
of drafts rc8 to rc18, the PDF build, and serving-brief.ts, the brief module whose
line numbers the text cites, which v1.0 did not deposit); and MANIFEST-v1.1.json,
with the sha256 of each file and a census showing that every _sprint-2026-10-04/
and out/ path the text cites is in this package or in the v1.0 files. In eight
packaged files a local filesystem path was replaced by a placeholder; the manifest names them
and keeps the hash of the original. The deposited manuscript is byte for byte the final draft
(rc18, Appendix F-5).
What this version does not do. The verifier in the package,
claims_check.py, is the v1.0 one and checks the v1.0 Portuguese text. It has not
been ported to the English text of v1.1. The numbers of v1.1 trace to the artifacts and
commands listed in Appendix D, but this guard set does not re-verify them.
Files
artefatos-v1.1.zip
Files
(1.8 MB)
| Name | Size | |
|---|---|---|
|
md5:da78be7457cfa6123097900bc815f6e9
|
298.3 kB | Preview Download |
|
md5:003960b8be86376958f5fda12767228f
|
184.7 kB | Preview Download |
|
md5:76a75af212fb0e9fbcd00b44e8cbc9fe
|
117.8 kB | Download |
|
md5:9cfc019892bfd34fb4e96c2068936618
|
14.6 kB | Preview Download |
|
md5:24c64c3c6cf7998db30a91090b2a45ea
|
18.9 kB | Preview Download |
|
md5:35030f12226156addc578ce9d772950a
|
5.0 kB | Download |
|
md5:2a8a8ae3490780173c6d868da8f94bb0
|
26.2 kB | Preview Download |
|
md5:6b30ceafbd66332a933c18762cacf148
|
24.5 kB | Preview Download |
|
md5:a08076709e14b13ecf148c53ffb8f863
|
126.6 kB | Preview Download |
|
md5:9fe7b06db36bf618ac554b5ab79c4fae
|
22.4 kB | Preview Download |
|
md5:fbb925d0fceebeb62b01754e2ede1aa4
|
200.2 kB | Preview Download |
|
md5:2f60d64c27ebc5360436ae9d4b1371e9
|
149.8 kB | Preview Download |
|
md5:b9762fd24a60d5ed1e34cf45736f3b17
|
8.7 kB | Download |
|
md5:b1ff58d7682893d5462f4aa53c5e2a2b
|
6.3 kB | Preview Download |
|
md5:b908155b295e59ba1cb9611bac290525
|
12.6 kB | Download |
|
md5:13f58eab59d529bde3887d0338d9e48e
|
29.6 kB | Download |
|
md5:351a15c18b64e3a93e07f7d523abbd92
|
231.1 kB | Preview Download |
|
md5:d864b7cfb136a621f5b45658d80dc5cc
|
318.3 kB | Preview Download |
Additional details
Related works
- Is continued by
- Preprint: 10.5281/zenodo.22110203 (DOI)
- Is supplemented by
- Software: https://github.com/totobusnello/memoria-nox/tree/main/paper2-interventional (URL)
- References
- Preprint: https://osf.io/yf7d2/ (URL)