Spaces:
Sleeping
Sleeping
Token Optimization Guide
Practical strategies for reducing token consumption while maintaining quality.
Why Token Optimization Matters
| Issue | Impact |
|---|---|
| Excessive file loading | Higher costs, slower responses |
| Context accumulation | Quality degradation after 50% |
| Re-reading files | Wasted tokens on understood content |
| Full files when snippets suffice | 10x token usage |
Goal: Maximize output quality per token spent.
The Token Efficiency Stack
βββββββββββββββββββββββββββββββββββββββ
β 1. Search-First (context-fetch) β β Find before loading
βββββββββββββββββββββββββββββββββββββββ€
β 2. Budget Tracking (token-budget) β β Know your limits
βββββββββββββββββββββββββββββββββββββββ€
β 3. Compression (context-compressor)β β Minimize footprint
βββββββββββββββββββββββββββββββββββββββ€
β 4. Health Monitoring β β Prevent degradation
βββββββββββββββββββββββββββββββββββββββ
Quick Reference: Token Costs
By Content Type
| Type | Tokens/Line | 100 Lines = |
|---|---|---|
| Dense code | 6 | ~600 tokens |
| Standard code | 4 | ~400 tokens |
| Markdown | 3 | ~300 tokens |
| Sparse YAML | 2 | ~200 tokens |
By File Size
| File Lines | Strategy |
|---|---|
| <50 | Load freely |
| 50-200 | Outline first |
| 200-500 | Search + snippets |
| 500+ | Never load fully |
Optimization Patterns
Pattern 1: Search β Outline β Target
Step 1: Search for "handlePayment"
β Found in: payment.ts:45, checkout.ts:120
Step 2: Get outline of payment.ts
β L45-80: handlePayment function
Step 3: Load only L45-80
β 35 lines (~140 tokens) vs 400 lines (~1600 tokens)
β Saved: ~90%
Pattern 2: Summarize After Understanding
After reading auth.ts:
## Summary: auth.ts
- Exports: login, logout, validateToken
- Pattern: Express middleware
- DB: queries users table
- JWT: uses jose library
Next time: Reference summary, don't reload
Pattern 3: Progressive Disclosure
Need: Understand login flow
Level 1: Outline
β "login at L45, uses validateCredentials at L67"
β Often sufficient
Level 2: Key function
β Load L45-65 only
β Understand core logic
Level 3: Dependencies
β Load validateCredentials (L67-85)
β Only if L2 insufficient
Level 4: Full file
β Last resort, re-compress after
Anti-Patterns to Avoid
β The "Context Dump"
BAD:
"Let me read all the files in src/ to understand the project"
β 50 files Γ 200 lines Γ 4 tokens = 40,000 tokens
GOOD:
"Let me search for 'main entry' and 'router'"
β 2 targeted searches, ~500 tokens
β The "Just In Case" Load
BAD:
"Loading utils.ts in case I need it later"
β Probably won't need it, wasted tokens
GOOD:
"Noting utils.ts exists, will load if needed"
β Zero tokens until actually needed
β The Re-Read
BAD:
"Reading config.ts again to check the port"
β Already read it twice = 1200 tokens
GOOD:
"From my earlier analysis, port is on L15"
β Zero additional tokens
Budget Checkpoints
Before Starting Work
β‘ Do I know my current budget usage?
β‘ Have I tried searching before loading?
β‘ Am I loading files I've already understood?
During Execution
β‘ Am I at >50%? Time to compress.
β‘ Am I re-reading files? Use summaries.
β‘ Can I use outline instead of full file?
After Each Wave
β‘ Have I compressed context for next wave?
β‘ Are summaries documented in STATE.md?
β‘ Would a fresh session be more efficient?
Integration with GSD
| GSD Workflow | Token Optimization |
|---|---|
/map |
Generate outline, not full read |
/plan |
Budget estimate per task |
/execute |
Load minimal per task |
/verify |
Targeted evidence only |
/pause |
Compress and dump state |
Metrics
Track these for improvement:
| Metric | Good | Poor |
|---|---|---|
| Files fully loaded | <3 per wave | 10+ |
| Search:Load ratio | 3:1 | 1:3 |
| Re-reads | 0 | 3+ |
| Budget at wave end | <50% | >70% |
See also:
- .agents/skills/token-budget/SKILL.md
- .agents/skills/context-compressor/SKILL.md
- PROJECT_RULES.md β Token Efficiency Rules