Missing Graceful Degradation
Agent Fails Completely When Dependency Unavailable Instead of Degrading Gracefully
2 patterns for this goal
Reliability and resilience fail when agents cannot continue operating in degraded mode when a dependency becomes unavailable, when a system that works well at pilot scale silently degrades accuracy without alerting operators, or when architecture assumes all components will always be available. The 2 patterns documented here cover graceful degradation (what happens when a dependency fails) and scale degradation (what happens as data volume increases 1000x) โ both are reliability issues invisible in development or pilot testing because development doesn’t replicate production conditions: pilots run on small datasets with reliable infrastructure, while production simultaneously scales data, infrastructure, and concurrency, each multiplying the conditions under which graceful degradation matters.
Reliability and resilience failures are the result of testing in the wrong environment: pilots test happy-path scenarios at small scale with reliable infrastructure, so they never surface the failures that occur when a single dependency breaks or when data scales 1000x. The mitigation that recurs across both patterns is the same architectural move โ design explicitly for failure modes that will occur in production (dependency failures, scale transitions, resource constraints) rather than assuming perfect availability: build fallback paths before production, partition and test at 10x and 100x intended scale before claiming scalability, and instrument accuracy metrics continuously so degradation is visible the moment it starts, not after users report wrong answers. No system designed only for happy path survives the journey from pilot to production.
Per Missing Graceful Degradation, identify all hard dependencies (external APIs, required tools, databases that have no fallback), then design fallback paths for each: local approximations, reduced-accuracy paths, cached results from previous requests, or explicit capability reduction and user messaging. Test each fallback path independently before production, not just in simulation โ a cached fallback that hasn’t been used in months is just dead code.
Per RAG Scale Degradation, naive flat-index retrieval starts hitting latency cliffs around 100K-500K documents and accuracy cliffs around 1M-10M documents, but exact thresholds depend on embedding model quality, reranking strategy, and inference infrastructure. Don’t assume a system that works at 100K will work at 1M โ test at 10x intended scale before considering the architecture proven.
Per RAG Scale Degradation, instrument end-to-end accuracy separately from component accuracy and alert when accuracy drops more than a configured threshold (e.g., alert if accuracy drops > 2% per month or < 90% absolute). If using retrieval + reranking + generation, measure accuracy at each stage independently so you can see whether degradation is in retrieval, reranking, or generation โ degradation in retrieval signals you need hierarchical partitioning or vector-index optimization, not better generation.
Graceful degradation includes fallback (trying an alternative when primary fails), but also reduced-mode operation, partial responses, and explicit user messaging. A fallback that returns results users don’t know are degraded is hiding the failure, not handling it gracefully โ tell users when capability is reduced.
| Pattern | Mechanism |
|---|---|
| Missing Graceful Degradation | When a dependency (external API, tool, database) fails, the entire agent fails instead of operating in reduced mode with fallback paths |
| RAG Scale Degradation | Retrieval accuracy silently drops and latency increases exponentially when corpus scales 1000x (10K โ 10M documents) without hierarchical partitioning |
Total: 2 patterns
Agent Fails Completely When Dependency Unavailable Instead of Degrading Gracefully
Retrieval-Augmented Generation System Collapses When Corpus Scales Beyond Threshold