# Why Uniform AI SDK Does Not Work
## Metadata
**Status**:: #x
**Zettel**:: #zettel/fleeting
**Created**:: [[2025-12-18]]
**Topic**:: [[♯ Software Engineering]]
## Synopsis
I read a lot of articles complaining that a uniform API for all AI providers does not work. It [supports:: [[Robert C. Martin - Clean Architecture A Craftsman's Guide to Software Structure and Design, First Edition (Highlights)]]] that high-level components should not depend on the lower-level components.
![[Robert C. Martin - Clean Architecture A Craftsman's Guide to Software Structure and Design, First Edition (Highlights)#^919036297]]
(**see**:: [[The Software Components Dependency Rule]])
To reverse the dependency, we need to define the interface in our business components and use different AI provider to implement the interface. Now AI providers depends on the interface defined by business components instead. In this architecture, a uniform API for AI providers can be utilized as a default implementation for general providers.