We spent months structuring our design system. Naming conventions, token layers, component anatomy, composition patterns. We thought we were building for developers.
The agents are the ones getting the most value out of it today.

Agents don't guess. They read.
An agent doesn't "figure out" which component to use. It knows. Because the system exposes a readable API. Props, variants, slots, states, design tokens. Everything the agent needs to make a decision is explicit and structured.
Without that foundation, the output is predictable. Naming is vague. Semantics are absent. Values are hardcoded. You spend more time fixing the generated UI than you would have spent building it from scratch.
A well-structured design system flips that equation. The agent ships clean code because it has clean inputs.
What actually makes a DS agent-readable
I've tested several approaches, methodologies, structures. What actually moved the needle wasn't sophistication. It was strictness.
It starts with naming. When a button is called Button and its variants are primary, secondary, ghost, the agent resolves the right pattern instantly. When naming is inconsistent, it picks the wrong one half the time. Same goes for props and variants — the agent doesn't just need the API surface, it needs the intent. When should you use ghost vs outline? That context matters as much for an agent as it does for a junior developer.
Tokens are the second layer. When a component references --space-4 instead of 16px, the agent produces code that survives a theme change. Hardcoded values mean you're back to find-and-replace the moment the system evolves.
Then comes composition. A card that contains a header, a body, and a footer. A form that uses specific input variants in specific contexts. Without these patterns documented, the agent generates flat markup that technically works but doesn't follow the system.
The real test
When an agent builds an interface by pulling the right components for each context, you know the system is working. But the real proof is what happens when a component doesn't exist yet.
A good system lets the agent create a new component by reasoning from the existing style, the rules, the tokens. It doesn't invent something from scratch. It extends what's already there. Same spacing logic. Same color semantics. Same composition patterns.
That only works if the system is explicit enough to learn from. If your tokens are flat, your naming is inconsistent, and your documentation is scattered, the agent will produce something that looks close but breaks on the second variant.
The design system was always an API
We've always described design systems as "the source of truth for the product." That was mostly marketing. In practice, it was a component library that developers referenced when they remembered to.
With agents in the loop, the metaphor becomes literal. The design system is the API that agents consume to produce interfaces. Every component exposes its anatomy, its states, its edge cases. The quality of the output is directly proportional to the quality of that API.
Design systems were built so developers could integrate fast and well. Today, agents rely on the same foundations. The teams that invested in structure are shipping with AI. The teams that skipped it are still fixing the output by hand.