Explanation¶
Understanding-oriented documentation. The why — what AIMU is, how its parts fit together, and what tradeoffs the design makes (and refuses to make).
Read these when you want to know why the API looks the way it does, not just how to use it.
- Architecture — the load-bearing shape:
BaseModelClient,Agent,Runner, how providers dispatch. - Design principles — what AIMU deliberately doesn't do, and why (the line that separates AIMU from LangChain / LangGraph / Strands / PydanticAI).
- Agents vs workflows — Anthropic's taxonomy and when to pick which.
- StreamChunk model — why one chunk type instead of three.
- System message lifecycle — mutable, then locked at first chat, then unlocked by
reset(). - Tool integration —
@toolvs MCP, dispatch order, when to pick which route. - Async design — why
aimu.aiois a submodule (not method suffixes or smart routing), whyasyncio.TaskGroup, and why in-process providers wrap an existing sync client.
For task-oriented usage, see how-to guides. For the API surface, see reference.