OpenSwarm模型配置详解:DEFAULT_MODEL与LiteLLM如何让你自由切换GPT和Claude
【免费下载链接】OpenSwarmClaude code for everything except coding项目地址: https://gitcode.com/gh_mirrors/open/OpenSwarm
如果你正在寻找OpenSwarm 模型配置的方法,这篇文章正是为你准备的。OpenSwarm 是一个开源的多智能体 AI 团队("Claude Code for everything except coding"),8 个专业智能体协作完成幻灯片、深度研究、文档、图片与视频生成。它的核心设计是:所有智能体共用一个DEFAULT_MODEL环境变量,配合 LiteLLM 自动路由,你可以一行配置在 GPT 和 Claude 之间自由切换。
🔍 为什么 OpenSwarm 的模型切换如此简单?
传统做法是每个智能体各自硬编码模型,改一个模型要改 N 处代码。OpenSwarm 的做法完全不同——
所有智能体绝不硬编码模型,而是启动时统一读取
.env中的DEFAULT_MODEL。
这一约定写在项目的定制指南 AGENTS.md 中:
Models are configured via
DEFAULT_MODELin.env— never hardcoded
也就是说,无论 Orchestrator(协调者)、Slides Agent、Deep Research 还是 Video Agent,全部智能体的模型定义都调用同一个函数,模型选择集中管理。整个智能体网络的组装过程见 swarm.py。
⚙️ 核心原理:一个环境变量管住 8 个智能体
模型配置的全部逻辑集中在 config.py 里,只有不到 40 行:
def get_default_model(fallback: str = "gpt-5.4"): model = os.getenv("DEFAULT_MODEL", fallback) return _resolve(model)工作流程非常简单:
- 启动时从环境变量读取
DEFAULT_MODEL(未设置则回退到gpt-5.4) - 判断模型字符串里有没有斜杠
/ - 没有斜杠 → 按 OpenAI 原生模型处理;有斜杠 → 交给 LiteLLM 路由
每个智能体在定义时都直接引用它,例如:
from config import get_default_model # 所有智能体统一写法 model=get_default_model()涉及 orchestrator/orchestrator.py、slides_agent/slides_agent.py、deep_research/deep_research.py、virtual_assistant/virtual_assistant.py 等全部 8 个智能体文件。
🚦 LiteLLM 如何自动路由你的模型
关键就藏在命名约定里,这是 OpenSwarm 模型配置最巧妙的部分:
| 写法 | 是否含/ | 路由方式 |
|---|---|---|
gpt-5.4 | ❌ | OpenAI 原生直连 |
o3 | ❌ | OpenAI 原生直连 |
litellm/claude-sonnet-4-6 | ✅ | LiteLLM → Anthropic |
litellm/gemini/gemini-3-flash | ✅ | LiteLLM → Google |
判断逻辑在 config.py 的is_openai_provider()函数中:
OpenAI model IDs never contain a slash (e.g. 'gpt-5.4', 'o3'). Any 'provider/model' string is treated as a LiteLLM-routed model.
而实际的路由发生在 _resolve() 函数中:只要模型名带斜杠,就会自动剥掉litellm/前缀,构造一个LitellmModel对象(来自底层框架 agency-swarm),无需手写任何客户端代码。
🎯一句话总结:写gpt-5.4就走 OpenAI,写litellm/...就走 LiteLLM,框架自己识别。
🛠️ 三步切换:从 GPT 到 Claude 的最快配置方法
切换模型只需要改项目状态目录下的.env文件,模板见 .env.example:
1️⃣ 保持原来的 OpenAI 配置
OPENAI_API_KEY=sk-xxx DEFAULT_MODEL=gpt-5.42️⃣ 切换为 Claude 只需两行
ANTHROPIC_API_KEY=sk-ant-xxx DEFAULT_MODEL=litellm/claude-sonnet-4-63️⃣ 或者切到 Google Gemini
GOOGLE_API_KEY=xxx DEFAULT_MODEL=litellm/gemini/gemini-3-flash就这么简单——没有代码改动,重启即可,全部 8 个智能体同步生效。
🔁 智能体的模型回退逻辑(进阶)
部分高级工具(如 Slides Agent 的幻灯片 HTML 编写器)有多级模型优先级,见 slides_agent/tools/ModifySlide.py:
- 存在
ANTHROPIC_API_KEY→ 优先用 Claude Sonnet 4.6 DEFAULT_MODEL为非 OpenAI 模型 → 走 LiteLLM 路由- 复用调用方智能体的 OpenAI 客户端(支持 Codex 浏览器认证)
- 最终回退到 SDK 默认客户端
这种设计保证了:无论你配的是哪家模型,工具链都能"优雅降级",并且当缺少某个厂商的 Key 时,shared_tools/model_availability.py 会清晰告诉你哪些模型可用、缺哪个 Key,而不是直接报错。
📋 常见配置速查表
| 需求 | .env配置 | 说明 |
|---|---|---|
| OpenAI 默认 | DEFAULT_MODEL=gpt-5.4 | 未配置时的内置回退值 |
| 主力 Claude | DEFAULT_MODEL=litellm/claude-sonnet-4-6 | 需ANTHROPIC_API_KEY |
| 主力 Gemini | DEFAULT_MODEL=litellm/gemini/gemini-3-flash | 需GOOGLE_API_KEY |
| 混合场景 | 两个 API Key 都填 | 智能体按优先级自动选择 |
✅ 小结
OpenSwarm 的模型配置体现了多智能体系统的好实践:
- 单一入口:
DEFAULT_MODEL一个变量控制所有智能体 - 零代码路由:
/有无自动区分 OpenAI 直连与 LiteLLM 路由 - 优雅降级:缺少 Key 时给出明确提示而非崩溃
- 永不硬编码:改配置即换模型,Fork 后自定义 Swarm 同样受益
想深入了解智能体结构,可以阅读 AGENTS.md;想查看各智能体如何使用模型,入口都在 config.py 这一个文件里。
【免费下载链接】OpenSwarmClaude code for everything except coding项目地址: https://gitcode.com/gh_mirrors/open/OpenSwarm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考