Architecture Design¶
I don't want to have the AI LLM model as an orchestrator. I want to be able to call directly the different AIs on diferent platforms
I want orthogonality (independent, modular components) and avoid over-relying on LLM as orchestrator for performance, cost, and control.
Core Design Principles for Orthogonality¶
- Separation of Concerns
- Platform = "Where to run"
- Model = "What capability to use"
-
Agent = "How to use it (prompt, tooling, logic)"
-
Dependency Inversion
-
High-level classes (Agent) depend on abstractions (Platform, Model), not concrete implementations.
-
Strategy + Composition over Inheritance
-
Prefer composing capabilities (e.g., Agent uses a Model on a Platform) over deep inheritance hierarchies.
-
Explicit Data Flow
- Inputs → Agent → (Prompt + Model Config) → Platform → Output → Agent (post-process)