Pattern Proposal: Provider Abstraction for Deterministic Agent Execution
Summary
LLM access is isolated behind a client interface so agent steps can run against real or mock providers.
Candidate Pattern
- ID:
llm-provider-abstraction - Classification: intelligence
- Maturity: established
- Type: implemented
Observed Signals
No specific signals listed.
Evidence
Supporting Evidence
- src/cas_runner/llm/litellm_client.py (LiteLLMClient) - Real provider adapter
- src/cas_runner/llm/mock_client.py (MockLLMClient) - Test double
Scope Assessment
- Evidence Strength: high
- Confidence: high
- Applies to: ideas-to-life-cas
Rationale
- Intent: Decouple agent execution from LLM backend to enable testing and portability.
- Context: Used by the CAS runner for all LLM-backed agent steps.
- Force: Need to test agent flows without external LLM costs
- Force: Support provider switching to avoid vendor lock-in
- Force: Keep agent code independent of SDK specifics
Traceability
Artifact source: proposed-patterns