GPTSwarm
以可优化图构建并自组织语言智能体群。
这个 Agent 能做什么,适合哪些场景?
GPTSwarm 是一个用于构建基于 LLM 的智能体图与智能体群的 Python 框架。它将领域操作、智能体、工具和任务放在 swarm.environment 中,并用 swarm.graph 创建和执行智能体图及复合群体图。swarm.llm 负责选择 LLM 后端并计算运行成本,swarm.memory 提供基于索引的记忆,swarm.optimizer 则用于提升智能体表现和群体效率。示例通过 Swarm 类接收智能体类型与环境名,再用 run 或 arun 执行任务并返回结果。它以本地 Python 库形式运行,可配置 OpenAI 与搜索 API,也文档化了通过 LM Studio 使用本地语言模型的路径。
调用方从 swarm.graph.swarm 导入 Swarm,以例如 Swarm(["IO", "IO", "IO"], "gaia") 创建预定义群体,将任务放入 {"task": task} 后调用 await swarm.arun(inputs)。框架根据图执行群体,并返回该调用的结果。需要文件分析时,示例使用 Swarm(["IO", "TOT"], "gaia"),把图像路径列表放入 {"task": task, "files": files},再调用 swarm.run(inputs)。如配置 BING_API_KEY、SEARCHAPI_API_KEY 或 GOOGLE_API_KEY,系统会依次选择 Bing API、SearchAPI 或 Google API 作为搜索引擎;swarm.llm 还承担后端选择和运行成本计算。
- Python 开发者需要把多个预定义智能体组织成图,并用 gaia 环境回答单个知识问答任务。
- 研究人员要试验群体中跨智能体连接的边优化,观察边概率向剪枝或创建方向变化。
- 需要为含本地图像路径的任务调用文件分析能力,并要求三句摘要的应用开发者。
- 希望比较或优化提示与强化学习驱动的智能体群性能的多智能体研究团队。
- 已运行 LM Studio 服务器、希望以 model_name='lmstudio' 接入本地语言模型的开发者。
这个 Agent 有哪些优点和局限?
- 以图为核心表示智能体和复合群体图,并明确提供图的创建与执行组件。
- 将环境、图、LLM 后端、索引记忆和优化算法分成独立模块,适合按组件开展实验。
- 文档展示了跨智能体连接的边优化,以及面向性能和群体效率的优化器。
- 除 OpenAI 凭据外,还文档化了 Bing、SearchAPI、Google 搜索选择顺序和 LM Studio 本地推理路径。
- 安装流程指定 Python 3.10、Conda 和 Poetry,现有项目可能需要调整运行环境。
- 示例中的在线 LLM 与搜索能力依赖 API 密钥;README 未提供价格、配额或离线替代方案。
- README 只展示 gaia 环境及 IO、TOT 配置的少量调用,未说明自定义环境和智能体的完整接口契约。
- 本地推理仅明确文档化 LM Studio 的 Mac 或 Windows 桌面应用路径,其他本地服务的支持情况没有证据。
如何安装或部署这个 Agent?
克隆并安装:
git clone https://github.com/metauto-ai/GPTSwarm.git
cd GPTSwarm/
conda create -n swarm python=3.10
conda activate swarm
pip install poetry
poetry install将 .env.template 改名为 .env,并按所用后端填写 OPENAI_API_KEY;如需搜索,再填写 BING_API_KEY、SEARCHAPI_API_KEY 或 GOOGLE_API_KEY。README 未给出不使用这些服务时的完整凭据配置说明。
如何使用这个 Agent?
最小调用:
from swarm.graph.swarm import Swarm
swarm = Swarm(["IO", "IO", "IO"], "gaia")
inputs = {"task": "What is the capital of Jordan?"}
answer = await swarm.arun(inputs)要使用本地模型,先在 LM Studio 中选择模型并启动服务器,然后在 GPTSwarm 代码中使用 model_name='lmstudio'。
这个 Agent 与同类方案有什么区别?
README 将 OpenAI Swarm 作为相关替代方案提及,并把 GPTSwarm 定位为侧重“Swarm Intelligence”的选择;其中未提供可复核的功能矩阵或基准对比。