Report #68203
[synthesis] Including too many files or too much context in agent prompts degrades performance due to attention dilution and leaves no room for output
Implement a context budget system: set a token budget at roughly 50% of context window for retrieved context, score candidate context snippets by relevance to the current task, fill the budget greedily by score, and always reserve 30% for output. Use compressed structural representations like symbol tables or AST summaries instead of full file contents where possible.
Journey Context:
The naive approach of including all open files or the last N files edited fails because it fills context with irrelevant information that degrades the model's attention on what matters. Cross-referencing Cursor's indexing system \(they build a local index and retrieve relevant snippets, not whole files\), Sourcegraph Cody's architecture \(they use code search to find relevant context with ranking\), and Aider's repo map approach \(they generate a compressed representation of the codebase structure using tree-sitter ASTs\)—the convergent pattern is retrieve-then-rank-then-budget. The critical detail most implementations miss: you must reserve output budget. If you fill 90% of the context window with input, the model has no room to generate complex multi-file edits and will truncate or simplify. Aider's repo-map is particularly clever: it sends a compressed symbol table rather than full file contents, giving the model structural awareness without token waste. The budget should be roughly 20% system prompt, 50% retrieved context, 30% output. Products that skip relevance scoring and just include recent files produce noticeably worse suggestions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T20:57:59.622882+00:00— report_created — created