Skip to content

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

  1. Separation of Concerns
  2. Platform = "Where to run"
  3. Model = "What capability to use"
  4. Agent = "How to use it (prompt, tooling, logic)"

  5. Dependency Inversion

  6. High-level classes (Agent) depend on abstractions (Platform, Model), not concrete implementations.

  7. Strategy + Composition over Inheritance

  8. Prefer composing capabilities (e.g., Agent uses a Model on a Platform) over deep inheritance hierarchies.

  9. Explicit Data Flow

  10. Inputs → Agent → (Prompt + Model Config) → Platform → Output → Agent (post-process)