Evaluating Context Compaction on the Questions That Come Later
Organizations: Independent Researcher
Abstract
Language-model agents compact their context for the question at hand, but the compacted context must also serve questions that come later. We evaluate compaction on these later questions, using four corpora that annotate the evidence of several questions per text and recorded agent trajectories, and compare every method with random deletion at the same budget. On MultiRC, keeping the sentences that gpt-6-luna (through the OpenAI Decisions API) judges necessary for the current question raises its accuracy on that question by 11.4 points at 25% of the tokens. On the later questions, however, no method that selects sentences for the current question does detectably better than deleting sentences at random. Deleting words instead of sentences does better: LLMLingua-2, which ignores the question, beats random sentence deletion at the same token count by 12.5 points on the later MultiRC questions. It keeps about twice random deletion's share of the evidence's content words, and at equal content-word retention its gain shrinks to 7.3 points (exploratory). On FEVER, label accuracy can overstate what the kept text supports: the gain of sentence selection is no longer detected when answers are scored against the kept evidence, and the 21.0-point gain of LLMLingua-2 is not shown to rest on the kept text. The ranking also depends on the setting: on Evidence Inference sentence selection beats LLMLingua-2 at a nominal 25% budget, and on -bench trajectories, whose later tool calls need exact identifiers, it beats random deletion while LLMLingua-2 shows no detected gain. Scores on the question a compaction was made for do not reliably show how it serves later ones.
Figures & tables
| accuracy (%) | |||||
|---|---|---|---|---|---|
| model | policy | budget | known | hidden | hidden random |
| open-decider | typed | 25% | 70 | 62 | 0.6 [ 1.9 , +0.7 ] |
| open-decider | agnostic | 25% | 63 | 63 | +0.3 [ 0.9 , +1.4 ] |
| open-decider | random | 25% | 61 | 62 | — |
| open-decider | typed | 50% | 72 | 66 | 0.6 [ 1.7 , +0.6 ] |
| open-decider | agnostic | 50% | 67 | 67 | +0.4 [ 0.7 , +1.6 ] |
| MultiRC, gpt-6-luna | MultiRC, open-decider | FEVER, gpt-6-luna | |||||||
|---|---|---|---|---|---|---|---|---|---|
| text | acc. | words | content | acc. | words | content | acc. | words | content |
| random sentences | 68.3 | 26.3 | 26.1 | 62.1 | 26.2 | 26.0 | 61.2 | 25.7 | 25.6 |
| typed sentences | 67.9 | 24.4 | 24.3 | 61.0 | 26.3 | 26.3 | 79.0 | 59.1 | 59.2 |
| random words | 70.8 | 25.0 | 25.2 | 62.6 | 25.0 | 25.1 | 67.5 | 25.2 | 25.2 |
| LLMLingua-2 | 80.8 | 26.3 | 48.0 | 68.1 | 26.3 | 48.0 | 82.2 | 26.4 | 40.7 |
| hybrid | 76.6 | 25.7 | 37.3 | 65.7 | 26.1 | 37.6 | 84.7 | 55.3 | 59.2 |
Appendix figures & tables21 assets
Supplementary material from the paper’s appendix.
Appendix
| analysis | appendix | predictions | met | partly met | not met | unresolved |
|---|---|---|---|---|---|---|
| Evidence Inference overlap test | E | 2 | 1 | — | 1 | — |
| KEEP–DROP contrast | K | 4 | 4 | — | — | — |
| LoCoMo test | M | 6 | 3 | — | — | 3 |
| Follow-ups A–D | G , J , M | 9 | 6 | 1 | 1 | 1 |
| LLMLingua-2 granularity test | H | 2 | 1 | 1 | — | — |
| Hybrid compactor | H | 3 | 1 | 2 | — | — |
| hidden questions, 25% | hidden | ||||
|---|---|---|---|---|---|
| corpus | known, 25% | all | overlapping | disjoint | 50% |
| MultiRC | +10.4 [ +7.4 , +13.3 ] | 0.6 [ 1.8 , +0.6 ] | +3.5 [ +1.5 , +5.7 ] | 1.7 [ 3.2 , 0.2 ] | +0.5 [ 1.0 , +1.9 ] |
| FEVER | +36.0 [ +28.5 , +43.5 ] | +18.5 [ +14.3 , +22.5 ] | +27.3 [ +22.7 , +32.0 ] | +1.3 [ 3.4 , +6.1 ] | +10.1 [ +6.6 , +13.9 ] |
| Ev. Inference | +17.4 [ +14.5 , +20.3 ] | +11.0 [ +8.9 , +13.1 ] | +18.8 [ +14.6 , +23.0 ] | +8.5 [ +6.1 , +10.8 ] | +4.3 [ +2.7 , +5.9 ] |
| corpus, reader | contrast | all hidden | overlapping | disjoint | |
|---|---|---|---|---|---|
| MultiRC, open-decider | typed random | 25 | 0.1 [ 1.1 , +0.8 ] | +6.0 [ +4.3 , +7.7 ] | 2.9 [ 4.0 , 1.9 ] |
| 50 | 0.6 [ 1.6 , +0.3 ] | +3.9 [ +2.4 , +5.4 ] | 3.2 [ 4.4 , 1.9 ] | ||
| agnostic random | 25 | +0.8 [ 0.1 , +1.7 ] | |||
| 50 | +0.4 [ 0.5 , +1.3 ] | ||||
| MultiRC, gpt-6-luna | typed random | 25 | 0.2 [ 1.1 , +0.7 ] | +4.4 [ +2.6 , +6.1 ] | 2.2 [ 3.4 , 1.0 ] |
| 50 | 0.2 [ 1.3 , +0.8 ] | +2.8 [ +1.3 , +4.4 ] | 1.5 [ 2.8 , 0.3 ] |
| sufficiency AUROC vs. | hidden acc. after 25% re-read | |||||
|---|---|---|---|---|---|---|
| model | policy | budget | evidence lost | answer flipped | lowest sufficiency | random |
| open-decider | typed | 25% | 0.81 | 0.69 | 67 | 66 |
| open-decider | agnostic | 25% | 0.79 | 0.69 | 68 | 66 |
| open-decider | random | 25% | 0.81 | 0.68 | 67 | 66 |
| open-decider | typed | 50% | 0.78 | 0.70 | 71 | 69 |
| open-decider | agnostic | 50% | 0.71 | 0.66 | 71 | 70 |
| typed random | overlap | disjoint kept | ||||
|---|---|---|---|---|---|---|
| corpus, reader | all hidden | overlapping | disjoint | share | typed/random | |
| MultiRC, open-decider | 25 | 0.6 [ 1.9 , +0.7 ] | +5.3 [ +2.9 , +7.7 ] | 3.0 [ 4.5 , 1.4 ] | 35 | 14/25 |
| 50 | 0.6 [ 1.7 , +0.6 ] | +4.2 [ +1.9 , +6.3 ] | 3.4 [ 5.0 , 1.8 ] | — | ||
| MultiRC, gpt-6-luna | 25 | 0.8 [ 1.9 , +0.3 ] | +4.3 [ +2.2 , +6.4 ] | 2.9 [ 4.3 , 1.4 ] | 35 | 18/25 |
| 50 | 0.4 [ 1.7 , +0.9 ] | +2.6 [ +0.5 , +4.7 ] | 1.6 [ 3.3 , +0.1 ] | — | ||
| FEVER, gpt-6-luna | 25 | +17.2 [ +13.4 , +21.2 ] | +25.8 [ +21.3 , +30.3 ] | +0.2 [ 4.8 , +5.2 ] | 51 | 22/24 |
| hidden questions | overlapping | ||||
|---|---|---|---|---|---|
| corpus, reader | known | all | overlapping | disjoint | disjoint |
| MultiRC, open-decider | +6.2 [ +3.0 , +9.7 ] | 0.7 [ 2.0 , +0.6 ] | +4.5 [ +2.3 , +6.9 ] | 3.3 [ 4.9 , 1.8 ] | +7.6 [ +4.9 , +10.4 ] |
| MultiRC, gpt-6-luna | +8.0 [ +5.0 , +11.1 ] | 0.4 [ 1.5 , +0.6 ] | +1.3 [ 0.7 , +3.5 ] | 1.2 [ 2.7 , +0.4 ] | +3.0 [ +0.3 , +5.8 ] |
| FEVER, gpt-6-luna | +39.5 [ +33.0 , +46.5 ] | +16.0 [ +11.9 , +20.3 ] | +29.6 [ +24.7 , +34.0 ] | 6.6 [ 12.0 , 1.6 ] | +35.7 [ +29.0 , +42.7 ] |
| Ev. Inference, gpt-6-luna | +22.6 [ +19.6 , +25.8 ] | +11.6 [ +9.5 , +13.8 ] | +20.6 [ +16.9 , +24.5 ] | +8.1 [ +5.6 , +10.5 ] | +12.7 [ +7.6 , +18.1 ] |
| hidden questions | known question | ||||
|---|---|---|---|---|---|
| corpus, reader | L2 random | typed L2 | L2 random | typed L2 | |
| MultiRC, open-decider | 25 | +6.5 [ +5.4 , +7.6 ] | 6.6 [ 8.0 , 5.2 ] | +6.9 [ +4.6 , +9.3 ] | +1.7 [ 1.3 , +4.8 ] |
| 50 | +5.3 [ +4.4 , +6.3 ] | 6.0 [ 7.3 , 4.6 ] | +3.4 [ +1.3 , +5.5 ] | +2.8 [ +0.3 , +5.2 ] | |
| MultiRC, gpt-6-luna | 25 | +12.9 [ +11.8 , +14.1 ] | 13.1 [ 14.5 , 11.8 ] | +12.8 [ +10.3 , +15.1 ] | 3.0 [ 5.9 , 0.1 ] |
| 50 | +10.2 [ +9.3 , +11.1 ] | 10.4 [ 11.7 , 9.2 ] | +9.9 [ +8.0 , +12.0 ] | 2.3 [ 4.3 , 0.2 ] | |
| FEVER, gpt-6-luna | 25 | +20.8 [ +18.8 , +23.0 ] | 3.7 [ 6.7 , 0.6 ] | +22.0 [ +16.2 , +27.9 ] | +12.5 [ +7.0 , +18.5 ] |
| MultiRC, gpt-6-luna | MultiRC, open-decider | FEVER, gpt-6-luna | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| budget | 25% | 50% | 25% | 50% | 25% | 50% | ||||||
| policy | known | hidden | known | hidden | known | hidden | known | hidden | known | hidden | known | hidden |
| typed | 78.7 | 67.9 | 83.2 | 76.1 | 69.0 | 61.0 | 73.6 | 66.1 | 92.5 | 79.0 | 93.0 | 85.6 |
| agnostic | 68.5 | 67.5 | 76.0 | 75.5 | 63.3 | 62.2 | 66.4 | 66.4 | 62.3 | 61.6 | 76.0 | 76.7 |
| TF-IDF | 76.9 | 67.0 | 82.8 | 74.8 | 65.4 | 61.7 | 68.2 | 66.1 | 88.0 | 77.2 | 90.0 | 86.7 |
| random (3 masks) | 67.3 | 68.3 | 76.2 | 76.0 | 61.1 | 62.2 | 66.7 | 66.9 | 56.8 | 61.2 | 72.2 | 75.2 |
| MultiRC, gpt-6-luna | MultiRC, open-decider | FEVER, gpt-6-luna | ||||
| policy | policy/random | difference | policy/random | difference | policy/random | difference |
| hidden questions, 25% of tokens | ||||||
| typed | 68.1/68.5 | 0.4 [ 1.5 , +0.6 ] | 61.0/62.2 | 1.1 [ 2.1 , 0.2 ] | 79.0/61.2 | +17.8 [ +15.0 , +20.8 ] |
| agnostic | 67.6/68.6 | 1.0 [ 1.8 , 0.1 ] | 62.2/62.2 | +0.1 [ 1.0 , +1.2 ] | 61.6/61.2 | +0.4 [ 2.4 , +3.2 ] |
| TF-IDF | 67.1/68.5 | 1.3 [ 2.3 , 0.4 ] | 61.7/62.2 | 0.5 [ 1.5 , +0.5 ] | 77.2/61.2 | +16.0 [ +13.0 , +19.0 ] |
| LLMLingua-2 | 80.7/68.6 | +12.1 [ +11.0 , +13.3 ] | 68.0/62.2 | +5.9 [ +4.7 , +7.0 ] | 82.2/61.2 | +21.0 [ +18.6 , +23.2 ] |
| words sentences | scores random | ||||
|---|---|---|---|---|---|
| corpus, reader | by scores (1) | at random (2) | sentences (3) | words (4) | |
| MultiRC, dec | 25 | +4.6 [ +3.2 , +5.9 ] | +0.4 [ 0.4 , +1.3 ] | +1.3 [ +0.2 , +2.3 ] | +5.4 [ +4.2 , +6.6 ] |
| 50 | +4.3 [ +3.0 , +5.5 ] | +0.5 [ 0.3 , +1.3 ] | +0.5 [ 0.4 , +1.5 ] | +4.4 [ +3.3 , +5.5 ] | |
| MultiRC, luna | 25 | +11.7 [ +10.4 , +13.0 ] | +1.2 [ +0.3 , +2.1 ] | +0.4 [ 0.7 , +1.5 ] | +10.0 [ +8.9 , +11.2 ] |
| 50 | +9.7 [ +8.6 , +10.9 ] | +2.4 [ +1.6 , +3.3 ] | +0.1 [ 0.9 , +1.0 ] | +7.3 [ +6.5 , +8.3 ] | |
| FEVER, luna | 25 | +19.1 [ +15.9 , +22.1 ] | +6.3 [ +4.4 , +8.2 ] | +1.9 [ 1.3 , +5.4 ] | +14.7 [ +12.7 , +16.8 ] |
| MultiRC, gpt-6-luna | MultiRC, open-decider | FEVER, gpt-6-luna | ||||
| policy | known | hidden | known | hidden | known | hidden |
| typed | 78.7 | 67.9 | 69.0 | 61.0 | 92.5 | 79.0 |
| LLMLingua-2 | 80.9 | 80.7 | 70.0 | 68.0 | 79.5 | 82.2 |
| hybrid, half | 82.2 | 76.5 | 70.7 | 65.7 | 89.0 | 84.7 |
| hybrid, quarter | 79.6 | 79.6 | 70.8 | 66.8 | 81.5 | 82.1 |
| random sentences | 67.3 | 68.3 | 61.1 | 62.2 | 56.8 | 61.2 |
| cell | gap | raw | all | content | +answer | breadth | linear |
|---|---|---|---|---|---|---|---|
| MultiRC, luna | LLMLingua-2 random sent. | +12.5 [ +11.3 , +13.6 ] | +10.1 | +7.3 [ +6.1 , +8.4 ] | +4.9 | +2.6 | +8.0 |
| MultiRC, luna | hybrid typed | +8.6 [ +7.3 , +9.9 ] | +7.2 | +5.1 [ +3.8 , +6.4 ] | +3.2 | 0.7 | +6.1 |
| MultiRC, dec | LLMLingua-2 random sent. | +6.0 [ +4.7 , +7.3 ] | +5.5 | +2.0 [ +0.7 , +3.2 ] | +0.6 | 2.2 | +2.3 |
| MultiRC, dec | hybrid typed | +4.7 [ +3.5 , +5.9 ] | +4.6 | +2.5 [ +1.1 , +3.7 ] | +1.1 | 2.9 | +2.8 |
| FEVER, luna | LLMLingua-2 random sent. | +21.0 [ +18.7 , +23.4 ] | +2.7 | +1.3 [ 1.1 , +3.5 ] | — | 4.1 | +14.9 |
| FEVER, luna | hybrid typed | +5.7 [ +3.6 , +7.9 ] | +0.4 | 0.5 [ 1.8 , +0.8 ] | — | 5.8 | +5.7 |
| document label recovered | |||||
|---|---|---|---|---|---|
| corpus | text | supported | refuted | balanced | “not enough info” |
| FEVER | full | 93.8 | 83.5 | 88.6 | – |
| typed 25% | 67.2 | 57.3 | 62.2 | 74.6 | |
| random 25% | 37.0 | 37.1 | 37.1 | 81.1 | |
| typed 50% | 78.5 | 68.3 | 73.4 | 71.7 | |
| random 50% | 60.0 | 57.0 | 58.5 | 75.3 | |
| corpus | claims | docs | KEEP DROP | KEEP | DROP | typed | random | full | |
|---|---|---|---|---|---|---|---|---|---|
| FEVER | all | 5,132 | 200 | +50.0 [ +47.4 , +52.4 ] | 95 | 45 | 76 | 59 | 95 |
| disjoint | 2,551 | 158 | +41.1 [ +36.2 , +45.8 ] | 95 | 53 | 62 | 62 | 93 | |
| overlapping | 2,581 | 196 | +50.1 [ +46.7 , +53.5 ] | 95 | 45 | 88 | 61 | 95 | |
| true | 3,658 | 199 | — | 94 | 21 | 68 | 41 | 94 | |
| false | 1,474 | 199 | — | 97 | 98 | 98 | 99 | 97 | |
| Ev. Inf. | all | 2,915 | 792 | +17.8 [ +15.9 , +19.7 ] | 90 | 72 | 82 | 70 | 90 |
| measured, per document | modeled, per later question | |||||||||
| corpus | scoring | read 25% | read full | 25% | 50% | full | check sep. | check joint | re-read | |
| MultiRC | 10.2 | 2,605 | 15,081 | 15,431 | 1,259 | 1,320 | 1,446 | 245 | 177 | 361 |
| FEVER | 27.2 | 2,795 | 10,460 | 10,810 | 311 | 426 | 671 | 281 | 169 | 168 |
| Evidence Inf. | 3.7 | 22,181 | 3,321 | 6,479 | 1,535 | 2,708 | 4,889 | 1,488 | 184 | 1,222 |
| LoCoMo | 149.6 | 180,510 | 64,220 | 96,742 | 6,270 | 11,783 | 22,721 | 6,218 | 146 | 5,680 |
| thousand input tokens per document, typed 25% | ratio at | break-even | ||||||||
| accuracy (%) | evidence kept, | |||
|---|---|---|---|---|
| memory | luna 25% | luna 50% | qwen 25% | 25% (%) |
| typed | 87.9 | 91.9 | 83.8 | 27.2 |
| agnostic | 90.4 | 94.8 | — | 48.6 |
| TF-IDF | 88.7 | 91.4 | 85.7 | 25.7 |
| random | 88.3 | 89.7 | 83.2 | 25.4 |
| recency | 83.1 | 87.6 | 82.4 | 25.3 |
| gpt-6-luna | qwen3.8-flash | |||||
| memory (last checkpoint) | refused | accuracy | answered acc. | refused | accuracy | answered acc. |
| empty, original options | 10.0 | 81.4 | 90.6 | 0.0 | 85.1 | 85.1 |
| empty | 28.4 | 60.2 | 83.9 | 0.0 | 71.5 | 71.5 |
| full | 0.5 | 90.9 | 91.4 | — | — | — |
| typed 25% | 1.1 | 78.0 | 78.9 | 0.0 | 75.7 | 75.7 |
| agnostic 25% | 2.3 | 81.0 | 82.8 | 0.0 | 81.7 | 81.7 |
| text | hidden, luna | known, luna | hidden, qwen | id kept | |
|---|---|---|---|---|---|
| full state | 91.0 | 70.5 | 96.4 | — | — |
| oracle | 93.2 | 45.5 | 97.3 | 100.0 | 1.00 |
| anticipatory | 75.9 | 47.2 | 80.0 | 77.1 | 0.64 |
| ECov † | 74.8 | 49.3 | 77.3 | 73.6 | 0.64 |
| typed | 67.1 | 59.2 | 74.0 | 66.4 | 0.46 |
| recency | 53.9 | 28.9 | 56.4 | 42.9 | 0.19 |
| stubs | gists | |||||
|---|---|---|---|---|---|---|
| acc. | re-read | tokens | acc. | re-read | tokens | |
| 0.3 | 72.3 | 65.1 | 96.6 | 67.7 | 64.6 | 92.9 |
| 0.5 | 72.6 | 72.8 | 104.5 | 69.1 | 73.2 | 102.0 |
| 0.7 | 72.3 | 79.5 | 111.7 | 69.7 | 79.8 | 108.4 |
| compaction | known | hidden | used | cut | random, hidden | LLMLingua-2 , hidden | random, known |
| random sentences | 67.3 | 68.3 | |||||
| typed | 78.7 | 67.9 | |||||
| LLMLingua-2 | 80.9 | 80.7 | |||||
| qwen3.8-flash | |||||||
| generic | 75.4 | 76.1 | 88.4 | 23.7 | +7.6 [ +6.6 , +8.7 ] | 4.5 [ 5.7 , 3.2 ] | +8.2 [ +6.1 , +10.3 ] |
| focused | 88.5 | 65.4 | 69.5 | 0.7 | 2.9 [ 4.0 , 1.8 ] | 15.1 [ 16.7 , 13.6 ] | +21.4 [ +19.2 , +23.5 ] |