optimize-agent-context
Optimize Agent Context
Enforce the Band-Aid Philosophy: an agent context file should only contain rules that fix mistakes the agent is actively making. Everything else is bloat that degrades performance and increases cost.
Core Rules (Non-Negotiable)
- NO BLOAT — Never include directory structures, file trees, dependency lists, or package inventories. The agent has tools to discover these.
- NO SUMMARIES — Never include vague app descriptions ("This is a video sharing app"). This distracts the model and triggers hallucinations.
- ONLY FIX KNOWN FAILURES — Every line must correct a specific, observed agent mistake or enforce an architectural constraint the agent cannot guess.
- USE NEGATIVE CONSTRAINTS — When the agent uses the wrong tool/library, explicitly state what NOT to use, then what TO use.
- BE MINIMAL — Target under 20 lines. Bullet points preferred. If a rule can be removed without the agent breaking, remove it.
Why This Matters
Studies show bloated, AI-generated context files:
- Degrade agent performance by ~3%
- Increase token costs by 20%+
- Trigger hallucinations by surfacing legacy code the agent then tries to use ("pink elephants" effect)
Workflow
Mode A: Create New Agent File (Interview)
When the user wants to create a new context file from scratch:
-
Ask these questions one at a time (do not dump all at once):
- "What specific mistakes has the AI agent been making repeatedly?" (e.g., wrong imports, forgetting to format, modifying wrong files)
- "Are there legacy tools/libraries the agent keeps using but shouldn't?" (e.g., "We have Redux but use Zustand for new features")
- "Any build/test/env quirks the agent can't figure out on its own?" (e.g., special env vars, non-standard test commands)
-
Synthesize answers into a ruthlessly minimal bulleted markdown file.
-
Validate the output against the Core Rules above. Strip anything that violates them.
-
Present the file and ask: "Does this capture the mistakes? Anything to add or remove?"
Mode B: Audit Existing Agent File
When the user has an existing agent.md / claude.md / cursorrules and wants it optimized:
- Read the file using
view_file. - Classify every line into one of:
- ✅ KEEP — Fixes a known failure or states an ungessable constraint
- ❌ BLOAT — Directory trees, dependency lists, file structures
- ❌ SUMMARY — Vague app descriptions, project overviews
- ❌ OBVIOUS — Things the agent can discover via tools (package.json, tsconfig, etc.)
- ⚠️ MAYBE — Potentially useful but needs user confirmation
- Present the audit as a table showing each section and its classification.
- Generate the optimized version with only ✅ KEEP and confirmed ⚠️ MAYBE lines.
- Show before/after line count to demonstrate the reduction.
Mode C: Add a Band-Aid
When the user reports a specific agent mistake mid-session:
- Ask: "What did the agent do wrong?"
- Write a single, precise negative constraint:
Do NOT [wrong thing]. Instead, [correct thing]. - Suggest appending it to the existing context file.
Output Format
The generated file should follow this structure:
# Agent Rules
- [Negative constraint or correction]
- [Negative constraint or correction]
- [Build/test quirk]
- [Architectural constraint]
No headers beyond the title. No explanations. No examples. Just rules.
Anti-Patterns to Reject
If the user or another agent tries to include any of these, push back:
| Anti-Pattern | Why It's Bad |
|---|---|
| Folder tree / file structure | Agent has list_dir and find_by_name |
| Dependency list | Agent reads package.json / requirements.txt |
| "This app is a..." summary | Distracts model, triggers hallucination |
| Tech stack overview | Agent reads config files |
| Code style rules already in linter config | Redundant — linter enforces these |
| Long code examples | Bloats context, agent writes its own code |