AnyAgent

A unified Python interface for running and evaluating several agent frameworks.

Stars
★ 1.3k
Last updated
1mo ago
License
Apache-2.0
Primary language
Python

At a glance

How it runs
Library / SDKFramework
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
Python 3.11+Shell / CLINetwork accessMCP Server
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

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.

  1. A Python team that needs one creation and execution pattern across supported frameworks such as TinyAgent, Google ADK, and LangChain.
  2. A developer building an evaluation workflow for a web-search agent and comparing three evaluation methods.
  3. An application developer who needs to integrate Model Context Protocol tools into an agent.
  4. A team that wants to serve an agent with A2A or use one agent as a tool for another agent.
  5. 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_webpage
agent = 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?

Pros
  • Uses AnyAgent.create() and AgentConfig as 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.
Limitations
  • 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?

FollowAgents source review · FARS-2.1
Major gaps
41/ 100 5-point scale 2.1 / 5
Trust 0/29
Reliability 8/14
Adaptability 12/18
Convention 11/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust0 / 29 · 0.0/5

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.

Reliability8 / 14 · 2.9/5

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.

Adaptability12 / 18 · 3.3/5

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.

Convention11 / 18 · 3.1/5

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.

Effectiveness7 / 13 · 2.7/5

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.

Verifiability3 / 8 · 1.9/5

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.

Risks and how to mitigate them
  • 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.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision 3e248d1c5a04 New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. 1.18.0
    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.0
    View on GitHub ↗
  2. 1.17.0
    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.0
    View on GitHub ↗
  3. 1.16.1
    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.1
    View on GitHub ↗

FAQ

Should a new project choose AnyAgent or tinyagent?
The repository recommends tinyagent for new projects. AnyAgent is most appropriate when cross-framework execution or evaluation is a specific requirement.
What credentials are required?
Set the API key for the model provider you use. The example uses MISTRAL_API_KEY and also mentions keys such as OPENAI_API_KEY.
Does it support MCP or A2A?
Yes. The README links to cookbooks for an MCP agent, serving an agent with A2A, and building A2A multi-agent systems.
How is the Jupyter event-loop error handled?
The README recommends importing nest_asyncio and calling nest_asyncio.apply() when RuntimeError: This event loop is already running appears.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents