Digest

HN on context engineering: nobody agrees when to reset, everyone agrees what to keep

We read all 40 comments on Drew Breunig's context engineering post. Reset points ran from 128k to 800k tokens. What survived a reset was a written file.

Published Updated 4 min read

Drew Breunig's "The State of Context Engineering" drew 40 comments on Hacker News this weekend, and the thread could not agree on the one number everyone wanted: how full a coding agent's context can get before it degrades. Reported reset points ran from about 128,000 tokens to 800,000. Where the thread did agree was on what to do at a reset, and that agreement is the useful part. The people who coped wrote things down outside the context. Our view: the first thing to write down is the evidence that the work was checked, because it is the first thing compaction throws away.

The post

Breunig's post argues that long context did not solve context problems: "Long contexts let you fit in more information, but they also let you fit in more errors." He resets at 200,000 to 300,000 tokens, lists six tactics (augmentation, tool loadout, quarantine, pruning, offloading, summarization) and ends on a line several commenters quoted back: the job is choosing "when to be deterministic (what to put in code) and when to be probabilistic (when to let the model drive)".

One sentence in it matters most for anyone verifying agent work: "Early stages of compaction often strip out tool results you no longer need."

What the thread said

We read all 40 comments, 19 of them top-level. Three positions came up repeatedly.

The reset point is personal. Five commenters gave a number, and so did Breunig:

WhoWhere they reset or compactSetup
cyanydeezkeeps context low, about 128klocal models, compaction plus eviction (comment)
throw-qqqqqabout 200kmanages context by hand (comment)
Breunig200k to 300kstarts fresh before a big job
jwpapi400kauto-compact (comment)
ethanj8011no large change until 700k to 800knewer models, coding (comment)
kadobanwhen the model says its "context budget" is almost upwrites a handoff file (comment)

A sixfold spread on one question is not a measurement problem. It says the number depends on the model, the task and the harness, and that a fixed rule will be wrong for most people.

Too little is also a failure. jdw64 pushed back on the "shrink it" reflex: "if there's too little information, it also ends up working in strange ways" (comment). ethanj8011 made the same point from the other side: the model fills 250k "very quickly (presumably mostly by looking through the codebase)", and "without that context I find the models perform badly".

What survives is an artifact. The most practical comments did not argue about size. They described what they keep when the context goes. kadoban has the model "write a handoff file" and clears everything. DenisM checkpoints "into artifacts (code, design, intent)" and resumes with fresh context, noting that the design doc and execution plan "are now outcomes of coding process, not inputs to it" (comment). viccis uses "a lightweight ticket system", where "planning creates very detailed tickets with acceptance criteria" and implementation writes back what future work needs (comment).

antleys tied it to Breunig's closing line, and to a choice they face often: "ask the AI to do a task for me or B) ask the AI to build something that can do the task for me" (comment).

What is missing from the list

Look at what the artifacts hold: the plan, the design, the intent, the acceptance criteria. Not one commenter described keeping the result of checking the work. DenisM comes nearest: a second agent validates the approach, which checks the plan, not the outcome.

That gap is not academic. An agent's evidence that a change works is a tool result: a test run, a page read, a network log. Breunig's own sentence says those are what early compaction strips. So the common sequence is: the agent checks its work, the check scrolls out, the context compacts, and the next turn sees only the agent's summary, "done, verified". The summary survives; the proof does not.

viccis's setup comes closest, because acceptance criteria written on a ticket are a test the next session can re-run. The missing half is writing the outcome back next to the criteria: what was run, what it returned, against which commit.

The takeaway

Put the check in Breunig's deterministic column. Acceptance criteria are already being written down; make each one something a script can re-run without a model, and store its last result as an artifact, not as a line in the agent's memory. Then a reset costs nothing on the question that matters most. Instead of trusting a summary that says "verified", the next session re-runs the check and reads the answer.

The thread will keep arguing about 200k versus 800k, and it should, because the answer moves with every model. Whether the work was checked should not depend on how much of the context survived.

Sources

  1. 01Drew Breunig: The State of Context Engineeringwww.dbreunig.com
  2. 02Hacker News: discussion threadnews.ycombinator.com
  3. 03Hacker News: jdw64, too much and too littlenews.ycombinator.com
  4. 04Hacker News: throw-qqqqq, a 200k limitnews.ycombinator.com
  5. 05Hacker News: jwpapi, auto-compact at 400knews.ycombinator.com
  6. 06Hacker News: cyanydeez, local and around 128knews.ycombinator.com
  7. 07Hacker News: ethanj8011, 700k to 800knews.ycombinator.com
  8. 08Hacker News: kadoban, a handoff filenews.ycombinator.com
  9. 09Hacker News: DenisM, checkpointing into artifactsnews.ycombinator.com
  10. 10Hacker News: viccis, tickets with acceptance criterianews.ycombinator.com
  11. 11Hacker News: antleys, deterministic or probabilisticnews.ycombinator.com
Reticleverdict

// The agent clicked "Pay". Did the right things actually happen?

{verified: "no"failureReason: "POST /api/order returned 500, expected 200"source: "src/checkout/PayButton.tsx:42"}

Example from the README

Your agent says it works. Reticle checks the network, state and console inside your running app, and names the line to fix.

85 of 88 seeded bugs caught in the public benchmark