AnyAgent
用统一 Python 接口运行并评估多种智能体框架。
- Star 数
- ★ 1.3k
- 最近更新
- 1 个月前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 41/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配OpenAI API(部分支持)
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 需要在 TinyAgent、Google ADK、LangChain 等多个已支持框架之间采用同一创建与运行接口的 Python 团队。
- 不适合
- 需要长期维护和持续新功能的团队,项目已软弃用
- 只想用单一框架、不需要跨框架对比的开发者
这个 Agent 能做什么,适合哪些场景?
AnyAgent 是一个 Python 库,用于以统一方式使用和评估不同的智能体框架。其核心入口是 AgentConfig 与 AnyAgent:开发者可通过 AnyAgent.create() 选择框架,并用相同的配置模式提供模型、指令和工具。README 列出的支持范围包括 TinyAgent、Google ADK、LangChain、LlamaIndex、OpenAI Agents SDK、smolagents 与 Agno。一次 agent.run() 调用会产生 agent_trace,并且项目提供用于创建智能体评估的示例。它还提供 MCP 智能体和 A2A 服务、多智能体协作的教程入口,但项目已进入软弃用状态,后续不计划新增功能。
安装后,代码从 any_agent 导入 AgentConfig 和 AnyAgent,再调用 AnyAgent.create("tinyagent", AgentConfig(...)) 创建指定框架的智能体。AgentConfig 可包含 model_id、instructions 与工具列表;示例使用 mistral:mistral-small-latest,并传入 search_web 和 visit_webpage。随后调用 agent.run("Which Agent Framework is the best??") 执行请求,并将返回的 agent_trace 打印出来。项目还公开了评估、追踪、服务,以及 MCP 与 A2A 相关的文档和示例入口。
- 需要在 TinyAgent、Google ADK、LangChain 等多个已支持框架之间采用同一创建与运行接口的 Python 团队。
- 想为带网页搜索能力的智能体建立评估流程,并比较三种评估方法的开发者。
- 需要把 MCP 工具接入智能体的应用开发者。
- 计划通过 A2A 服务公开智能体,或让一个智能体作为另一个智能体工具的团队。
- 正在迁移到
tinyagent前,仍需跨多个框架运行或评估现有智能体的研究人员。
如何安装或部署这个 Agent?
运行环境需要 Python 3.11 或更高版本。
pip install 'any-agent'随后为所选模型提供商设置密钥。README 示例使用:
export MISTRAL_API_KEY="YOUR_KEY_HERE"也可按所用提供商设置相应密钥,例如 OPENAI_API_KEY。
如何使用这个 Agent?
可直接使用 README 中的最小调用方式:
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)在 Jupyter Notebook 中,如遇到 RuntimeError: This event loop is already running,先执行 import nest_asyncio 和 nest_asyncio.apply()。
这个 Agent 有哪些优点和局限?
- 通过
AnyAgent.create()和AgentConfig为多个已列出的框架提供共同的创建与运行入口。 - 明确覆盖智能体评估;入门示例包含对网页搜索智能体使用三种方法进行评估。
- 提供 MCP、A2A 服务,以及“智能体作为工具”的多智能体教程入口。
- 项目处于软弃用状态:仅接受安全和缺陷修复,不计划新增功能。
- 运行时要求 Python 3.11 或更高版本。
- 模型调用需要为所选提供商配置 API 密钥;README 不提供统一的无凭据运行模式。
- 所给材料没有列出各框架的安装选项,也没有给出评估 API 的完整配置细节。
这个 Agent 与同类方案有什么区别?
对于新项目,项目明确建议直接使用 mozilla-ai-tinyagent;AnyAgent 更适合必须在 Agno、Google ADK、LangChain、LlamaIndex、OpenAI Agents SDK 或 smolagents 等多个框架之间运行或评估智能体的场景。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| AnyAgent 当前 | 41 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 1.3k | 1 个月前 | Python | — |
| Agentic AI 工程课程 | 39 · 缺口较多 | 开发框架免费 + 模型费 | ★ 6.6k | 5 天前 | Jupyter Notebook | OpenAI API |
| Solace 智能体网格 | 35 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 4.9k | 1 天前 | Shell | — |
| Youtu-Agent | 27 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 4.6k | 7 个月前 | Python | OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:仓库未提供权限模型、用户确认机制、数据流透明性、敏感数据处理、依赖安全审计、外部影响控制、回滚机制或来源归属的说明。所有信任相关标准均未得到满足,因此得分为0。
证据显示:README和pyproject.toml一致地描述了项目目的、依赖和用法,自洽性良好。依赖在PyPI上可获取,且版本范围明确,可用性较好。但失败消息方面,仅提及Jupyter的已知限制,未提供其他错误处理或诊断信息,因此得分较低。
证据显示:README明确了目标受众(需要跨框架运行或评估代理的开发者)和多种使用场景(如web搜索、评估、MCP、A2A)。能力边界通过支持框架列表和可选依赖清晰界定。触发精度通过明确的API和配置选项体现。环境适配方面,支持Python 3.11+,并提供了Jupyter的注意事项。
证据显示:README提供了清晰的信息架构,包括文档链接、快速入门、cookbook等。安装说明明确,支持可选依赖。命名稳定,API一致。提供了多个示例和FAQ(cookbook)。已知限制在README中提及(如Jupyter事件循环问题)。许可证为Apache-2.0,明确。版本控制通过setuptools_scm动态生成,但未提供CHANGELOG。维护责任通过贡献指南和软弃用声明体现。
证据显示:输出可用性方面,提供了AgentTrace对象和打印功能,但未详细说明输出格式。边际价值方面,作为跨框架统一接口,具有独特价值。成本效益方面,未提供性能或资源消耗数据,因此得分较低。
证据显示:README中的声明(如支持框架、功能)与pyproject.toml中的依赖和配置部分对应,但未提供独立的验证来源。跨来源佐证有限,主要依赖单一仓库。事实与推断的区分不明确,例如软弃用声明是推断而非事实。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 仓库处于软弃用状态,新项目建议使用mozilla-ai-tinyagent。
- 未提供安全审计或权限模型,使用前需自行评估风险。
- 依赖较多,且包含可选框架,安装时需注意版本兼容性。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
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在 GitHub 查看 ↗ -
发布说明摘录
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在 GitHub 查看 ↗ -
发布说明摘录
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在 GitHub 查看 ↗
常见问题
新项目应该选择 AnyAgent 还是 tinyagent?
tinyagent。当你明确需要跨多个已支持框架运行或评估智能体时,AnyAgent 才是更贴切的选择。运行需要哪些凭据?
MISTRAL_API_KEY,并提到也可使用 OPENAI_API_KEY 等。它能接入 MCP 或 A2A 吗?
在 Jupyter 中出现事件循环错误怎么办?
nest_asyncio 并调用 nest_asyncio.apply(),以处理 RuntimeError: This event loop is already running。