
any-agent
一套代码跑遍多个 Agent 框架,还能直接对比评估
any-agent 是一个 Python 开发框架,目标是给不同 AI Agent 框架提供统一的使用与评估接口。当前 Agent 生态碎片化严重,LangChain、LlamaIndex、AutoGen、CrewAI 等各有 API 和抽象,切换或对比成本很高。any-agent 通过一层适配抽象,让开发者用同一套代码调用不同框架构建 Agent,并内置评估能力,方便横向对比效果、成本和稳定性。项目还涉及 a2a、MCP 等协议关键词,说明在工具调用与多 Agent 互操作方向有布局。适合需要快速试验多种 Agent 方案、做选型或基准测试的团队,减少重复接入工作。
项目数据
使用教程
环境要求
- Python 环境(支持版本见项目 pyproject.toml)
- 已安装 pip
- 所用模型提供商的 API Key(如 Mistral、OpenAI)
- 如需在 Jupyter Notebook 中运行,需额外安装 nest_asyncio
安装与启动步骤
-
1安装 any-agent
在终端用 pip 安装核心包。README 提示:若要用某框架,需在安装命令里带上对应框架选项,可选值见 pyproject.toml。
pip install 'any-agent' -
2配置模型密钥
根据所选模型提供商导出对应 API Key 环境变量。示例用 Mistral,换成 OpenAI 等其他厂商时用相应变量名。
export MISTRAL_API_KEY="sk-xxxxxxxx" -
3编写 Agent 脚本
所有 Agent 系统的导入方式统一:从 any_agent 引入 AgentConfig 和 AnyAgent,指定框架名、model_id、instructions 和 tools。
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) -
4运行脚本
把上一步代码保存为 py 文件后执行,终端会打印出 Agent 的执行轨迹 agent_trace。
python any_agent_example.py -
5Jupyter 兼容处理
在 Jupyter Notebook 中运行 AnyAgent 前必须先执行这两行,否则会报 RuntimeError: This event loop is already running。
import nest_asyncio nest_asyncio.apply()
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
MISTRAL_API_KEY | 是 | Mistral 模型密钥,README 示例所用提供商的环境变量 | sk-xxxxxxxx |
OPENAI_API_KEY | 否 | 改用 OpenAI 模型时需要设置的对应厂商密钥 | sk-xxxxxxxx |
model_id | 是 | AgentConfig 中的模型标识,格式为 厂商:模型名 | mistral:mistral-small-latest |
instructions | 是 | AgentConfig 中的系统指令,告诉 Agent 如何行动 | Use the tools to find an answer |
tools | 否 | AgentConfig 中的工具列表,可传入 search_web、visit_webpage 等 | [search_web, visit_webpage] |
如何确认成功
运行脚本后终端打印出 agent_trace(Agent 执行轨迹)即表示调用成功。
常见问题
Q:怎么指定要使用的 Agent 框架?
A:安装时在 pip install 命令中带上计划使用的框架选项,并在 AnyAgent.create 的第一个参数填框架名(示例为 "tinyagent"),可选值见 pyproject.toml 与官方文档。
Q:Jupyter 里报 RuntimeError: This event loop is already running
A:这是 Jupyter Notebook 的已知限制。在运行 AnyAgent 前加上 import nest_asyncio 和 nest_asyncio.apply() 两行即可解决。
Q:不想用 Mistral 模型怎么办?
A:设置对应提供商的 API Key(如 OPENAI_API_KEY),并把 AgentConfig 里的 model_id 改成该厂商的模型标识。
Q:新项目还适合用 any-agent 吗?
A:项目已进入 soft deprecation,新项目推荐改用 mozilla-ai-tinyagent;只有确实需要跨多个框架运行或评估 Agent 时才用 any-agent。
注意事项
- any-agent 处于 soft deprecation 状态,仅接受安全/缺陷修复 PR,不再规划新功能。
- 支持跨 Agno、Google ADK、LangChain、LlamaIndex、OpenAI Agents SDK、smolagents 等框架统一调用与评估。
- 多 Agent 场景可通过 Agents-As-Tools 方式实现,详见官方 Tools 文档。
- README 未给出 Python 版本和框架可选值,安装前请查阅 pyproject.toml 与官网文档。
核心亮点
- 统一接口屏蔽不同 Agent 框架的 API 差异,切换框架不用重写业务逻辑
- 内置评估能力,可对多个框架做横向效果对比,便于选型
- 覆盖 a2a、MCP 等新兴协议,工具调用和多 Agent 互操作有前瞻性
不足之处
- 项目星标约 1200,生态和文档成熟度仍在成长阶段
- 统一抽象可能无法完全覆盖各框架的高级或独有特性
适用场景
- 团队在多个 Agent 框架间做技术选型和基准测试
- 需要快速原型验证不同框架效果,避免重复接入
- 构建跨框架、跨协议的多 Agent 协作与评估流程
替代项目
LangChain、LlamaIndex、AutoGen
项目介绍
同类项目推荐
ComfyUI_Custom_Nodes_AlekPet
开源
给 ComfyUI 装上语音翻译和姿态检测,工作流更全能
Custom nodes that extend the capabilities of Comfyui
langchain
开源
组装 AI 应用的乐高积木,从想法到上线不换工具
The agent engineering platform.
transformers
开源
全球最大的模型仓库全家桶,想用的模型一把抓
Transformers: the model-definition framework for state-of-the-art machine learning m···
bruno
开源
把 API 测试当代码管理,用 Git 搞定协作与版本追踪
Opensource IDE For Exploring and Testing API's (lightweight alternative to Postman/I···