Each get_customer call on the Customer Support Resolution Agent returns a full 24 month order history averaging 18,000 tokens of JSON. Sessions now compact after roughly 12 turns, median handling latency has risen to 31 seconds, and reviewers note that the agent loses the customer's earlier statements once compaction starts. A typical contact uses two or three fields from that payload. Which change most effectively addresses it?
- ARaise the compaction threshold so the harness tolerates a much larger transcript before it begins summarising the earlier turns.
- BInstruct the agent in the system prompt to disregard the order history fields it does not need when it reads a get_customer result.
- CChange get_customer to return the account summary and the recent order identifiers, with the full history fetched on demand by a separate call. Correct
- DDelegate every get_customer call to a subagent through the Task tool so that the large payload lands in a separate context window.
Why A is wrong: Tempting because compaction is where the customer statements are lost, so deferring it appears to protect them. It is wrong because the payload still consumes the same share of every input, so latency and cost stay high and the loss returns as soon as the higher threshold is reached.
Why B is wrong: Tempting because ignoring irrelevant fields is exactly what a human would do and the instruction is easy to write. It is wrong because the tokens are already in the context once the result is returned, so reading behaviour changes nothing about compaction pressure, latency or spend.
Why C is correct: Correct because it removes the tokens at their source: the tool returns what a contact actually consumes, the rare case that needs deep history retrieves it explicitly, and compaction pressure, latency and cost all fall together.
Why D is wrong: Tempting because subagent isolation is a real technique for keeping bulky work out of a coordinator's context. It is wrong because it is over-engineered for a payload the tool itself should shrink, and it adds a round trip and a summarisation boundary to every identity lookup.