One API to Run and Evaluate Agents Across Six Frameworks
If you've ever tried to compare agent frameworks, you know the drill. You build the same agent in LangChain, then rebuild it in LlamaIndex, then again in smolagents—and by the time you're done, you're not even sure you're comparing the same thing anymore. any-agent from Mozilla AI is an attempt to fix that: a single interface for using and evaluating different agent frameworks without rewriting your code six times.
What It Does
any-agent gives you one API surface for building agents that run on top of multiple frameworks. You define your agent system once, and the library handles the translation to whichever backend you want to use. The currently supported frameworks are Agno, Google ADK, LangChain, LlamaIndex, OpenAI Agents SDK, and smolagents—plus TinyAgent itself.
The idea is that you always use the same imports (AgentConfig and AnyAgent), configure your agent once, and then swap frameworks without touching your agent logic. The README points to documentation covering agents, tools, tracing, serving, and evaluation, so the scope goes beyond just running agents—it's also about measuring how they perform across different backends. It requires Python 3.11 or newer.
One important note up front: any-agent is in soft deprecation. It started as a research project to compare frameworks and distill a minimal common surface, and that distillation has graduated into a separate package called mozilla-ai-tinyagent. The any-agent project will still get security and bug fixes, but no new features are planned.
Why It's Cool
-
It solves a real comparison problem. If you're evaluating agent frameworks for a project, the hardest part isn't reading their docs—it's building the same thing in each one and keeping the comparison fair.
any-agentcollapses that work by giving you one interface that maps to all of them. -
The soft deprecation is actually a feature, not a bug. Mozilla is being upfront that this was a research vehicle, and the useful parts have been extracted into
tinyagent. That's a healthy sign—it means the project did its job. You're not being sold a forever tool; you're being pointed at the leaner successor if you only need the core agent loop. -
Six frameworks under one roof is a lot of surface area. Agno, Google ADK, LangChain, LlamaIndex, OpenAI Agents SDK, and smolagents all have different mental models, different tool abstractions, and different execution patterns. Getting them to share a single interface is non-trivial, and the fact that this exists at all is useful for anyone doing framework research.
-
Evaluation is treated as a first-class concern. The docs list tracing, serving, and evaluation alongside agents and tools. For anyone who's tried to benchmark agents, you know that observability and evaluation are usually afterthoughts bolted on later. Here they're part of the core concept list.
-
Contributions for new frameworks are welcome. The README explicitly links to open GitHub tickets for adding framework support, which suggests the project is still open to community input even in maintenance mode.
How to Try It
-
Make sure you're on Python 3.11 or newer.
-
Install the package:
pip install 'any-agent'
The README notes you should update your pip install command to include the frameworks you plan on using—check pyproject.toml for the available options.
- Set the API key for whichever model provider you're using. The example uses Mistral, but you can swap in OpenAI or others:
export MISTRAL_API_KEY="YOUR_KEY_HERE"
- Define your agent using the shared imports:
from any_agent import AgentConfig, AnyAgent
From there, you configure your agent and run it against whichever framework you've selected. The model configuration docs cover how to set up different providers.
- Check the documentation for the agents, tools, tracing, serving, and evaluation sections—those are where the multi-framework comparison actually pays off.
The repository is at github.com/mozilla-ai/any-agent. If you're starting something new and only need a core agent loop, the README recommends going straight to mozilla-ai-tinyagent instead.
Final Thoughts
any-agent is best understood as a research artifact that's still useful for a specific job: running and evaluating agents across multiple frameworks under one API. If that's your problem, it's worth a look—especially since the framework support is broad and the evaluation tooling is built in. If you just need an agent loop, skip it and go to tinyagent. The honest takeaway is that this project did its job well enough to make itself partially redundant, which is a good outcome for everyone involved.