AnyAgent
A unified Python interface for running and evaluating several agent frameworks.
- Source repo
- mozilla-ai/any-agent
- Stars
- ★ 1.3k
- Last updated
- 1mo ago
- License
- Apache-2.0
- Primary language
- Python
- FA score
- 41/100 · Major gaps
At a glance
- How it runs
- Works with
- Portable with changesOpenAI API (Partial support)
- Cost
- Free software; you pay for model usage
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- A Python team that needs one creation and execution pattern across supported frameworks such as TinyAgent, Google ADK, and LangChain.
- Not a fit if
- Teams needing active feature development; the project is in soft deprecation
- Developers committed to one framework who don't need cross-framework comparison
- Source review
- 41/100 · Major gaps 8 safety controls not found
What does this agent do, and when should you use it?
AnyAgent is a Python library for using and evaluating multiple agent frameworks through one interface. Its main entry points are AgentConfig and AnyAgent: developers select a framework with AnyAgent.create() while supplying models, instructions, and tools through a common configuration pattern. The README lists TinyAgent, Google ADK, LangChain, LlamaIndex, OpenAI Agents SDK, smolagents, and Agno as supported frameworks. A call to agent.run() produces an agent_trace, and the project includes an example for creating an agent evaluation. It also documents entry points for MCP agents, A2A serving, and multi-agent patterns, although the project is softly deprecated and has no planned new features.
After installation, code imports AgentConfig and AnyAgent from any_agent, then creates a framework-specific agent with AnyAgent.create("tinyagent", AgentConfig(...)). AgentConfig can carry a model_id, instructions, and a tool list; the example uses mistral:mistral-small-latest with search_web and visit_webpage. The application then calls agent.run("Which Agent Framework is the best??") and prints the resulting agent_trace. The project also exposes documentation and cookbook entry points for evaluation, tracing, serving, MCP, and A2A.
- A Python team that needs one creation and execution pattern across supported frameworks such as TinyAgent, Google ADK, and LangChain.
- A developer building an evaluation workflow for a web-search agent and comparing three evaluation methods.
- An application developer who needs to integrate Model Context Protocol tools into an agent.
- A team that wants to serve an agent with A2A or use one agent as a tool for another agent.
- A researcher who still needs cross-framework execution or evaluation while planning a move to
tinyagent.
How do you install or deploy this agent?
Python 3.11 or newer is required.
pip install 'any-agent'Then set credentials for the selected model provider. The README example uses:
export MISTRAL_API_KEY="YOUR_KEY_HERE"Set the relevant provider credential instead when applicable, such as OPENAI_API_KEY.
How do you use this agent?
The README's minimal invocation is:
from any_agent import AgentConfig, AnyAgent
from any_agent.tools import search_web, visit_webpageagent = AnyAgent.create("tinyagent",
AgentConfig(model_id="mistral:mistral-small-latest",
instructions="Use the tools to find an answer",
tools=[search_web, visit_webpage])
)
agent_trace = agent.run("Which Agent Framework is the best??")
print(agent_trace)In Jupyter Notebook, if RuntimeError: This event loop is already running occurs, run import nest_asyncio followed by nest_asyncio.apply() first.
What are this agent's strengths and limitations?
- Uses
AnyAgent.create()andAgentConfigas a common creation and execution surface across several listed frameworks. - Explicitly includes agent evaluation; the starter material covers evaluating a web-search agent with three methods.
- Provides cookbook entry points for MCP, A2A serving, and an agents-as-tools multi-agent pattern.
- The project is in soft deprecation: security and bug-fix pull requests are accepted, but no new features are planned.
- It requires Python 3.11 or newer.
- Model calls require credentials for the chosen provider; no credential-free execution mode is described.
- The supplied material does not enumerate framework installation options or give complete evaluation API configuration details.
How does this agent compare with similar options?
For new projects, the repository explicitly recommends mozilla-ai-tinyagent. AnyAgent is the better fit when you specifically need to run or evaluate agents across frameworks including Agno, Google ADK, LangChain, LlamaIndex, OpenAI Agents SDK, or smolagents.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| AnyAgent This agent | 41 · Major gaps | Library / SDKFree + model costs | ★ 1.3k | 1mo ago | Python | — |
| Agentic AI Engineering Course | 39 · Major gaps | FrameworkFree + model costs | ★ 6.6k | 5d ago | Jupyter Notebook | OpenAI API |
| Solace Agent Mesh | 35 · Major gaps | CLIFree + model costs | ★ 4.9k | 1d ago | Shell | — |
| Youtu-Agent | 27 · Major gaps | CLIFree + model costs | ★ 4.6k | 7mo ago | Python | OpenAI API |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows: The repository provides no documentation on permission model, user confirmation, data flow transparency, sensitive data handling, dependency security audit, external effects control, rollback mechanism, or source attribution. All trust criteria are unmet, hence score 0.
Evidence shows: README and pyproject.toml consistently describe the project's purpose, dependencies, and usage, indicating good self-consistency. Dependencies are available on PyPI with clear version ranges, indicating good availability. However, failure messages are limited; only the Jupyter known limitation is mentioned, with no other error handling or diagnostics, hence lower score.
Evidence shows: README clearly identifies the target audience (developers needing to run or evaluate agents across frameworks) and multiple use cases (e.g., web search, evaluation, MCP, A2A). Capability boundaries are defined through the list of supported frameworks and optional dependencies. Trigger precision is evident through clear API and configuration options. Environment fit is addressed with Python 3.11+ support and Jupyter notes.
Evidence shows: README provides clear information architecture with documentation links, quickstart, and cookbooks. Installation instructions are clear with optional dependencies. Naming is stable and API consistent. Multiple examples and FAQ (cookbooks) are provided. Known limitations are mentioned in README (e.g., Jupyter event loop issue). License is Apache-2.0, clearly stated. Versioning is dynamic via setuptools_scm, but no CHANGELOG is provided. Maintenance responsibility is indicated through contribution guidelines and soft deprecation notice.
Evidence shows: Output usability is addressed with AgentTrace object and print functionality, but output format is not detailed. Marginal value is high as a unified interface across frameworks. Cost-benefit is not quantified; no performance or resource data, hence lower score.
Evidence shows: Claims in README (e.g., supported frameworks, features) correspond to dependencies and configuration in pyproject.toml, but no independent verification sources are provided. Cross-source corroboration is limited, relying mainly on the single repository. Fact vs. inference separation is unclear; e.g., soft deprecation is an inference rather than a fact.
- Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
- Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
- Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
- Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
- The repository is in soft deprecation; new projects are advised to use mozilla-ai-tinyagent.
- No security audit or permission model is provided; assess risks before use.
- Many dependencies, including optional frameworks, require careful version compatibility management.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
What's Changed * feat(tinyagent): Allow messages as input to agent.run. by @daavoo in https://github.com/mozilla-ai/any-agent/pull/906 Full Changelog: https://github.com/mozilla-ai/any-agent/compare/1.17.0...1.18.0View on GitHub ↗ -
Release notes excerpt
What's Changed * feat: Add any-llm-args to config. by @daavoo in https://github.com/mozilla-ai/any-agent/pull/905 Full Changelog: https://github.com/mozilla-ai/any-agent/compare/1.16.1...1.17.0View on GitHub ↗ -
Release notes excerpt
What's Changed * fix(tests): Clear ANY_LLM_KEY env var in unit tests by @peteski22 in https://github.com/mozilla-ai/any-agent/pull/903 * fix(smolagents): Reuse AnyLLM client instance to avoid event loop errors by @peteski22 in https://github.com/mozilla-ai/any-agent/pull/902 * fix(callbacks): Handle coroutines in before/after_agent_invocation by @daavoo in https://github.com/mozilla-ai/any-agent/pull/904 Full Changelog: https://github.com/mozilla-ai/any-agent/compare/1.16.0...1.16.1View on GitHub ↗
FAQ
Should a new project choose AnyAgent or tinyagent?
tinyagent for new projects. AnyAgent is most appropriate when cross-framework execution or evaluation is a specific requirement.What credentials are required?
MISTRAL_API_KEY and also mentions keys such as OPENAI_API_KEY.Does it support MCP or A2A?
How is the Jupyter event-loop error handled?
nest_asyncio and calling nest_asyncio.apply() when RuntimeError: This event loop is already running appears.