// blog

What 2,000 hours of Dota taught me about building AI agents

3 min read
  • gaming
  • agentic-ai
  • mental-models

I have north of 2,000 hours in Dota 2, a fact I used to leave off my résumé. But the longer I build agentic systems for a living, the more I catch myself explaining agent architecture with Dota concepts. The overlap is not a coincidence: a MOBA is a partially-observable, multi-agent environment with long horizons and hard resource constraints — which is precisely the problem statement of agentic AI.

Fog of war is the whole game

New Dota players stare at their hero. Good players stare at the minimap, inferring where five invisible enemies are from what they can't see. The map is mostly fog; skill is acting well under uncertainty rather than waiting for it to resolve.

Agents live in fog permanently. The codebase they haven't read, the API state they haven't queried, the user intent behind an ambiguous request — all fog. Weak agents behave like weak players: they either act as if the fog isn't there (hallucinating the state of the map) or they "farm safe" forever, burning forty tool calls re-verifying what they already know. The design lesson is to make scouting cheap and explicit: give the agent fast read-only tools and teach it, via prompt, when confidence is high enough to commit. Ward the map, then make the play.

Item builds are context management

You get six inventory slots. Every item is a trade-off against the five you didn't buy, and buying "generically good" items on every hero is how you lose to someone who itemized for this game.

Six slots is a context window. Every tool schema, every retrieved document, every stale transcript chunk occupies a slot that something else can't. The teams whose agents perform best are ruthless itemizers — five tools this task needs rather than the fifty the platform offers, results projected down to the fields that matter. Hoarding is a losing build in both games.

Throwing from ahead

Dota's most painful loss is the thrown game: you're up 20k gold, you get overconfident, you take a fight you didn't need, and the advantage evaporates. Winning players ask "what could still lose this?" especially when ahead.

Agents throw constantly. Nine steps of a ten-step migration done perfectly, then — flush with success — the agent skips the verification step and force-pushes. The fix in Dota is discipline around objectives; the fix in agents is structural: budgets, checkpoints, and a verifier that is not the same context that did the work. Never let the carry review their own game.

Drafting beats mechanics

Between two teams of equal mechanical skill, the draft — picking heroes that compose — decides the game before it starts. In multi-agent systems, the draft is your decomposition: which specialists exist, what each one sees, how their outputs combine. A perfect prompt inside a bad decomposition is a mechanically brilliant hero in a draft with no front line. I spend more time on the draft than the prompts now, and everything got better when I started.

The meta shifts

Every Dota patch reshapes the game, and players who mastered the old meta rage while players who mastered adapting climb. Model releases are patches. Frameworks rise and fall like hero tiers. The durable skill was never the specific build — it's reading the new patch notes fast and updating. 2,000 hours well spent, it turns out.

← All posts