Context Engineering
Context Engineering is 3.8% of the CCDV-F blueprint. It tests how you decide what occupies a finite window on each turn, which remedy fits which degradation symptom, and what a compaction step must never throw away.
Written by Kiran Manne
3.8% of the CCDV-F blueprint, which is roughly 2 questions of 53. It sits inside Prompt and Context Engineering, worth 11% in total.
Context Engineering is 3.8% of CCDV-F, so expect around two questions from it. The sub-skill sits above prompt wording and below application architecture: given a finite window and a task that will not sit comfortably inside it, decide what occupies that window on each turn.
The thing to hold onto is that context is a budget spent on every single request, not a container filled once. In an agent the largest consumer is rarely the standing instructions. It is accumulated tool output: file contents, search results, service responses, and the record of things that were tried and abandoned. That material arrives without anybody deciding to add it, which is why context problems present as gradual degradation across a long session rather than as an obvious failure on turn one.
Questions here typically describe a symptom and ask for the remedy. An agent that was sharp early and vague an hour later, a summariser that lost a constraint agreed twenty turns ago, a research task drowning in retrieved documents: each has a different structural fix, and the fixes are not interchangeable. What is being tested is whether you can read the symptom, not whether you can list the techniques.
Learn the failure modes and the volumes involved, and the remedies fall out of them.
What the exam tests here
- Attributing window pressure to its real source, which in an agent is usually tool output
- Choosing between on-demand retrieval, compaction, external notes and delegation for a described symptom
- What a compaction step must preserve and what it can safely discard
- The interaction between assembly order and cached reuse, since both depend on stability
- Preventing failed attempts and superseded results from steering later turns
Budget the window by consumer, not by section
Divide a request into what you control at design time and what accumulates at run time. Standing instructions and tool definitions are fixed and paid on every call, so their cost is predictable and optimising them is a one-off job. Conversation history and tool results are neither: they grow with the task, and in a tool-using agent they dominate everything else within a few dozen turns.
That asymmetry decides where effort goes. Trimming two hundred tokens of preamble is a rounding error next to a tool returning an entire file when the model needed one function. Instrument the split before optimising it, because the intuition that the preamble is the problem survives only until you measure a real agent session and find it accounts for a tenth of the traffic.
Four remedies for four different symptoms
On-demand retrieval answers "I cannot know in advance which of these thousands of documents matters", keeping identifiers cheap in the window and fetching bodies only when a step calls for one. Compaction answers "this session is long and the early turns are settled", replacing a stretch of history with a summary and continuing from it.
External notes answer "this has to survive beyond the window", writing decisions and state to a file the agent can reopen. Delegation answers "this subtask will read far more than it concludes", handing it to a separate context that returns findings rather than transcript. Matching these correctly is most of the sub-skill. Compacting a retrieval problem shrinks the wrong thing, and delegating a task whose value is the detail throws away what you needed.
Compaction is lossy, so decide what survives
A summarisation step is not neutral compression. Something is being deleted, and the failure mode is quiet: the agent carries on confidently without the constraint it accepted nine turns ago. Write the retention policy explicitly instead of asking for a generic summary. Decisions, commitments, open questions, paths and identifiers, and anything the user stated as a requirement should survive close to verbatim. Raw payloads, superseded drafts and the reasoning behind an abandoned branch generally should not.
Compaction also costs more than the summarisation call itself. Rewriting the middle of a conversation changes the bytes of the prefix, so a cached history stops matching from that point and the following request rebuilds it. Usually worth paying, which is why compacting every few turns is a poor default.
Assemble in a stable order
The window has an ordering as well as a size, and two separate forces pull the same way. Cached reuse requires that everything ahead of a breakpoint stay byte-identical, so anything volatile placed early poisons what follows it. Attention behaves more predictably when material sits in a consistent position relative to the request.
A layout satisfying both puts fixed instructions and tool definitions first, then stable reference material, then the accumulating exchange, then the current request. What breaks it is small and easy to overlook: a session identifier interpolated into the preamble, a tool list assembled per user, a retrieved document appended above the history instead of below it. Treat assembly as code with a defined order rather than as string concatenation.
Where candidates go wrong
Trap 1: summarising on a timer
Periodic compaction looks like hygiene and behaves like data loss. Firing every few turns regardless of what those turns contained will cheerfully compress the one exchange carrying the acceptance criteria while leaving a stretch of routine tool calls intact.
Trigger on pressure instead, when the window is genuinely filling, and protect a defined set of items rather than whatever the summariser found interesting. An option describing fixed-interval summarisation with no statement of what is protected is the weaker answer even when the alternative sounds more involved.
Trap 2: assuming retrieval means embeddings
Semantic search is one retrieval strategy and questions often present it as the only one. For a codebase, an agent that lists a directory, searches for a symbol and opens the two files that matched will frequently beat a vector index, because the corpus already carries exact structure and names worth using.
Embeddings earn their place where query and content share meaning but not vocabulary. The useful instinct is to ask what the corpus is: navigable and precisely named, or unstructured prose.
Trap 3: leaving failures in the transcript
A tool call that errored, a path that did not exist, a plan the user rejected: all of them remain in history and all of them keep shaping the next turn. Long sessions accumulate this residue and start repeating attempts or hedging around dead ends.
Removing or explicitly annotating superseded material is a legitimate context operation, and hoping the model infers that an approach was ruled out is not a design. Where something was excluded, say so in the surviving context rather than trusting the error text to speak for itself.
Common questions
How many CCDV-F questions come from Context Engineering?
3.8% of 53 questions puts it at roughly two. Within its domain it sits between Prompt Engineering at 4.6% and Output Handling at 2.6%, so it deserves a solid share of preparation time but not the largest one.
How is compaction different from just dropping the oldest messages?
Dropping by age is blind to importance and will discard the requirement stated in the first message while keeping the small talk from the fifth. Compaction replaces a span with a deliberately chosen summary, governed by a policy that names what must be carried forward. Truncation is a length operation; compaction is an editorial one.
When is a subagent better than simply having a larger window?
When the subtask reads a great deal and concludes very little. Searching a large repository or reviewing a long document generates bulk that has no value once the conclusion exists, so keeping it in a separate context and returning only the finding leaves the main session clean. Room in the window is not a reason to fill it.
How do I tell a context problem from a bad prompt?
By when it appears. A prompt defect shows up on the first request and reproduces reliably in isolation. A context problem shows up after a session has run for a while, resists reproduction from a clean start, and improves the moment you reset the conversation. That timing is usually the decisive clue in an exam scenario.
The rest of Prompt and Context Engineering
- Prompt Engineering (4.6%)
- Output Handling (2.6%)
Practise this
The CCDV-F bank covers every sub-skill in the blueprint, weighted the way the real paper is. Free sample questions need no account.
Free CCDV-F questions