Pattern Proposal: Model-Agnostic LLM Facade with Mock Fallback
Summary
Abstracts multi-vendor LLM invocation behind a unified interface with a deterministic mock fallback for offline and CI testing.
Candidate Pattern
- ID:
model-agnostic-llm-facade-with-mock-fallback - Classification: intelligence
- Maturity: established
- Type: implemented
Observed Signals
No specific signals listed.
Evidence
Supporting Evidence
- src/cas_runner/llm/litellm_client.py (LiteLLMClient) - Production implementation wrapping litellm.
- src/cas_runner/llm/mock_client.py (MockLLMClient) - Mock client enabling deterministic zero-cost unit and flow testing.
Scope Assessment
- Evidence Strength: high
- Confidence: high
- Applies to: ideas-to-life-cas
Rationale
- Intent: Allow agent flows to run seamlessly in local dev, offline CI, and cloud environments without vendor lock-in.
- Context: Underlies all LLM-powered components in cas_runner including AgenticMerger and synthesis steps.
- Force: Direct vendor SDK dependencies create vendor lock-in and test fragility
- Force: Automated CI testing cannot make costly or flaky external API calls
Traceability
Artifact source: proposed-patterns