Compare frameworks
Pydantic AI vs smolagents vs Mastra
Every figure below carries the source that reported it and the moment it was observed. Values that failed validation are withheld rather than shown, and a dash means no source we track carries that field for that framework.
| Field | Pydantic AI | smolagents | Mastra |
|---|---|---|---|
| Stars | 20,220Synced from sourceCurrent5h ago | 29,530 (highest of the compared values)Synced from sourceCurrent5h ago | 28,378Synced from sourceCurrent5h ago |
| downloads | 3,076,771 (highest of the compared values)Synced from sourceStale1mo ago· past SLA | 132,630Synced from sourceStale1mo ago· past SLA | 1,980,114Synced from sourceCurrent5h ago |
| Last commit | 2026-09-28Synced from sourceCurrent5h ago | 2026-09-23Synced from sourceCurrent5h ago | 2026-09-28Synced from sourceCurrent5h ago |
| Language | pythonSeeded, unreviewedwritten 1mo ago | pythonSeeded, unreviewedwritten 1mo ago | typescriptSeeded, unreviewedwritten 1mo ago |
| Licence | MITSynced from sourceCurrent5h ago | Apache-2.0Synced from sourceCurrent5h ago | — |
| Archived | noSynced from sourceCurrent5h ago | noSynced from sourceCurrent5h ago | noSynced from sourceCurrent5h ago |
| Category | structured-outputSeeded, unreviewedwritten 1mo ago | multi-agentSeeded, unreviewedwritten 1mo ago | orchestrationSeeded, unreviewedwritten 1mo ago |
| Contributors | 609Synced from sourceCurrent5h ago | 208Synced from sourceCurrent5h ago | 682Synced from sourceCurrent5h ago |
| Forks | 2796Synced from sourceCurrent5h ago | 2999Synced from sourceCurrent5h ago | 2871Synced from sourceCurrent5h ago |
| Maintainer | PydanticSeeded, unreviewedwritten 1mo ago | Hugging FaceSeeded, unreviewedwritten 1mo ago | MastraSeeded, unreviewedwritten 1mo ago |
| npm downloads, monthly | — | — | 5868462Synced from sourceCurrent5h ago |
| npm downloads, weekly | — | — | 1980114Synced from sourceCurrent5h ago |
| npm package | — | — | @mastra/coreSynced from sourceCurrent5h ago |
| npm window ends | — | — | 2026-09-26Synced from sourceCurrent5h ago |
| Open issues | 1013Synced from sourceCurrent5h ago | 853Synced from sourceCurrent5h ago | 477Synced from sourceCurrent5h ago |
| PyPI downloads, monthly | 13478631Synced from sourceStale1mo ago· past SLA | 614573Synced from sourceStale1mo ago· past SLA | — |
| PyPI downloads, weekly | 3076771Synced from sourceStale1mo ago· past SLA | 132630Synced from sourceStale1mo ago· past SLA | — |
| PyPI package | pydantic-aiSynced from sourceCurrent5h ago | smolagentsSynced from sourceCurrent5h ago | — |
| PyPI released | 2026-09-25T23:32:17.554286ZSynced from sourceCurrent5h ago | 2026-05-29T05:08:43.280962ZSynced from sourceCurrent5h ago | — |
| Requires Python | >=3.10Synced from sourceCurrent5h ago | >=3.10Synced from sourceCurrent5h ago | — |
| PyPI version | 2.51.0Synced from sourceCurrent5h ago | 1.26.0Synced from sourceCurrent5h ago | — |
| Repository | https://github.com/pydantic/pydantic-aiSynced from sourceCurrent5h ago | https://github.com/huggingface/smolagentsSynced from sourceCurrent5h ago | https://github.com/mastra-ai/mastraSynced from sourceCurrent5h ago |
Sources: GitHub REST API, npm registry downloads, PyPI registry metadata, pypistats.org downloads. Most recent observation 5h ago. Where a row is marked, ▲ is the highest of the values shown and ▼ the lowest — arithmetic on the figures above, not a ranking or a recommendation. Rows where neither extreme is meaningful are left unmarked rather than given a direction they do not have.
Change the comparison
Remove one, or open the directory to pick a different set. Up to 3 at a time.