Install
openclaw skills install smart-model-switcher-v2智能模型自动切换 V5.0.2 - 多模态感知,自动识别图片/视频/音频/代码/文本任务,切换到最适合的模型。支持图片理解(qwen3-vl-plus)、视频音频(qwen3.5-plus)、代码(glm-5)、Office文档(MiniMax-M2.5)、推理等场景。零感知切换,无需手动操作。
openclaw skills install smart-model-switcher-v2自动识别任务类型 • 智能切换最优模型 • 零感知 • 无需手动
| 特性 | V4 | V5.0.2 |
|---|---|---|
| 多模态感知 | ✅ 图片 | ✅ 图片 + 视频 + 音频 |
| Office 模式 | ❌ 无 | ✅ MiniMax-M2.5 |
| 视频理解 | ❌ 不支持 | ✅ 自动切换 qwen3.5-plus |
| 音频理解 | ❌ 不支持 | ✅ 自动切换 qwen3.5-plus |
| 主窗口限制 | ❌ 无限制 | ✅ 仅主窗口生效,子代理不切换 |
| 任务感知 | 智能上下文分析 | 智能上下文分析 + 文件检测 |
智能模型切换只对主窗口(主会话)生效!
| 会话类型 | 是否执行智能切换 | 说明 |
|---|---|---|
| 主窗口 | ✅ 执行 | 用户直接对话的会话(飞书、WebChat、Telegram 等) |
| 子代理 | ❌ 不执行 | 团队成员办公室(马云CEO、技术专家、市场猎手等) |
| Spawned Session | ❌ 不执行 | 通过 sessions_spawn 创建的所有会话 |
当前会话是主窗口?
├── YES → 执行智能切换逻辑
└── NO → 跳过切换,使用该会话预设模型
检测方法:
depth = 0 或无 subagent context 标记[Subagent Context] 或 depth > 0| 模型 ID | Provider | 能力 | 推荐场景 |
|---|---|---|---|
qwen3.5-plus | Bailian | 图片/视频/音频 ⭐⭐⭐⭐⭐ | 多模态任务首选 |
qwen3-vl-plus | Bailian | 图片 ⭐⭐⭐⭐⭐ | 纯图片理解、OCR |
qvq-max | Bailian | 图片 ⭐⭐⭐⭐⭐ | 复杂视觉推理 |
glm-4v | GLM | 图片 ⭐⭐⭐⭐ | 图片理解 |
| 模型 ID | Provider | 代码能力 | 推荐场景 |
|---|---|---|---|
glm-5 | Bailian/GLM | ⭐⭐⭐⭐⭐ | 代码生成、Debug、重构 |
qwen3-coder-plus | Bailian | ⭐⭐⭐⭐⭐ | 代码补全、项目开发 |
qwen-coder-turbo | Bailian | ⭐⭐⭐⭐ | 快速代码任务 |
| 模型 ID | Provider | 推理能力 | 推荐场景 |
|---|---|---|---|
qwq-plus | Bailian | ⭐⭐⭐⭐⭐ | 复杂推理、数学证明 |
qwen3-max | Bailian | ⭐⭐⭐⭐⭐ | 深度思考、分析 |
glm-5 | Bailian/GLM | ⭐⭐⭐⭐ | 逻辑推理 |
| 模型 ID | Provider | 能力 | 推荐场景 |
|---|---|---|---|
MiniMax-M2.5 | Bailian | ⭐⭐⭐⭐⭐ | Office 文档处理 |
| 模型 ID | Provider | 综合能力 | 推荐场景 |
|---|---|---|---|
qwen3.5-plus | Bailian | ⭐⭐⭐⭐ | 日常对话、写作、翻译 |
qwen-plus | Bailian | ⭐⭐⭐ | 快速任务 |
qwen-turbo | Bailian | ⭐⭐ | 简单任务、低成本 |
IF 当前会话不是主窗口 → 跳过所有切换逻辑,使用预设模型
IF 消息包含图片/视频/音频 → 切换到 qwen3.5-plus
├── 图片 + 代码相关 → qwen3.5-plus (视觉+代码)
├── 视频文件 → qwen3.5-plus (唯一支持视频)
├── 音频文件 → qwen3.5-plus (唯一支持音频)
└── 纯图片理解 → qwen3-vl-plus 或 qwen3.5-plus
视频文件扩展名:.mp4, .avi, .mov, .mkv, .wmv, .flv, .webm, .m4v
音频文件扩展名:.mp3, .wav, .m4a, .ogg, .flac, .aac, .wma
图片文件扩展名:.png, .jpg, .jpeg, .gif, .webp, .bmp, .svg
IF 消息包含代码关键词 → 切换到代码模型
├── 复杂代码任务 → glm-5 (最强代码)
├── 快速代码补全 → qwen-coder-turbo
└── 项目级开发 → qwen3-coder-plus
IF 消息包含推理关键词 → 切换到推理模型
├── 复杂推理 → qwq-plus (最强推理)
├── 数学/证明 → qwen3-max
└── 一般分析 → glm-5
IF 用户说 "Office模式" / "切换Office" / "MiniMax" → 切换到 MiniMax-M2.5
└── Office 文档处理 → MiniMax-M2.5
IF 纯文本任务 → 使用通用模型
├── 长文档 → qwen3.5-plus (1M context)
├── 写作/翻译 → qwen3.5-plus
└── 简单对话 → qwen-plus / qwen-turbo
收到消息
│
├── 🔒 是否为主窗口(主会话)?
│ ├── NO → 跳过切换,使用该会话预设模型
│ │
│ └── YES ↓
│
├── 🖼️ 包含图片/视频/音频?
│ ├── 视频文件 (.mp4/.avi/.mov/.mkv/...) → qwen3.5-plus ⭐多模态优先
│ ├── 音频文件 (.mp3/.wav/.m4a/.ogg/...) → qwen3.5-plus ⭐多模态优先
│ ├── 图片 + 代码关键词 → qwen3.5-plus (视觉+代码)
│ └── 纯图片 → qwen3-vl-plus 或 qwen3.5-plus
│
├── 💻 代码关键词?
│ └── YES → glm-5 (最强代码)
│
├── 🧠 推理关键词?
│ └── YES → qwq-plus / qwen3-max
│
├── 📎 Office 关键词?
│ └── YES → MiniMax-M2.5
│
└── 📝 通用任务 → qwen3.5-plus
image 类型内容,文件扩展名 .png, .jpg, .jpeg, .gif, .webp, .bmp{
"modelPreferences": {
"multimodal": "qwen3.5-plus", // 视频/音频/图片
"vision": "qwen3-vl-plus", // 纯图片
"coding": "glm-5", // 代码最强
"reasoning": "qwq-plus", // 推理最强
"office": "MiniMax-M2.5", // Office 文档
"general": "qwen3.5-plus", // 通用最强
"fast": "qwen-turbo" // 快速任务
}
}
用户: [发送一个 .mp4 文件] "帮我分析这个视频"
环境: 主窗口 (WebChat)
检测: 视频文件 + 主窗口
切换: qwen3.5-plus (唯一支持视频的模型)
执行: 分析视频内容
用户: "让技术专家写个爬虫"
环境: 技术专家办公室 (子代理)
检测: 代码关键词 + 子代理环境
结果: 不执行智能切换,使用技术专家预设模型 (glm-5)
执行: 生成爬虫代码
用户: "切换到 Office 模式"
环境: 主窗口 (飞书)
检测: Office 关键词 + 主窗口
切换: MiniMax-M2.5
提示: "🧠 已切换到 MiniMax-M2.5(Office 模式)"
用户: [发送一个 .mp3 文件] "转录这段录音"
环境: 主窗口 (Telegram)
检测: 音频文件 + 主窗口
切换: qwen3.5-plus (唯一支持音频的模型)
执行: 转录音频内容
用户: "让推理专家证明根号2是无理数"
环境: 推理专家办公室 (子代理)
检测: 推理关键词 + 子代理环境
结果: 不执行智能切换,使用推理专家预设模型 (qwq-plus)
执行: 给出证明过程
检测当前会话:
1. 是否有 [Subagent Context] 标记?
2. 是否有 depth > 0?
3. 是否是 spawned session?
└── YES → 跳过所有智能切换,使用预设模型
└── NO → 继续执行智能切换逻辑
分析用户消息:
1. 是否包含图片/视频/音频附件 ← 最高优先级
2. 提取关键词
3. 识别任务类型
4. 确定上下文需求
选择最优模型:
1. 根据任务类型查找最佳模型
2. 检查模型可用性 (API Key + 套餐)
3. 应用 fallback 逻辑
4. 记录选择原因
切换模型:
1. 调用 session_status(model: "xxx")
2. 发送提示信息给用户
3. 执行任务
4. 记录性能数据
重要:AI Agent 在每次响应前,必须执行以下检测流程!
智能切换只对主窗口生效!子代理不要执行模型切换!
Step 0: 检测当前会话类型
├── 消息开头有 [Subagent Context]?
│ └── YES → 这是子代理,跳过智能切换,使用预设模型
│
├── 有 depth 标记且 depth > 0?
│ └── YES → 这是子代理,跳过智能切换,使用预设模型
│
├── 是 spawned session?
│ └── YES → 这是子代理,跳过智能切换,使用预设模型
│
└── NO → 这是主窗口,继续执行智能切换逻辑
子代理示例:
[Wed 2026-03-25 21:05 GMT+8] [Subagent Context] You are running as a subagent...[Subagent Task]: ...depth=1 或任何 depth > 0主窗口示例:
[Subagent Context] 标记depth=0 或无 depth 标记模型切换是会话级别的,不影响其他通道!
不同通道独立,互不影响!
使用 session_status 工具,带上当前会话的 sessionKey:
// 当前会话切换(不影响其他通道)
session_status(model: "bailian/glm-5")
// 切换其他会话的模型(需要指定 sessionKey)
session_status(sessionKey: "feishu/xxx", model: "bailian/qwen3.5-plus")
默认行为:不带 sessionKey 时,只切换当前会话的模型。
Step 0: 主窗口检测 ← 第一步!
├── 是子代理? → 跳过切换,使用预设模型
└── 是主窗口? → 继续
Step 1: 检测消息内容
├── 是否包含图片/视频/音频?
│ └── YES → 切换到 qwen3.5-plus(多模态模型)
│
├── 是否包含代码关键词?
│ └── YES → 切换到代码模型 (glm-5)
│
├── 是否包含推理关键词?
│ └── YES → 切换到推理模型 (qwq-plus)
│
├── 是否包含 Office 关键词?
│ └── YES → 切换到 Office 模型 (MiniMax-M2.5)
│
└── 否则保持当前模型
使用 session_status 工具切换模型:
session_status(model: "bailian/qwen3.5-plus") // 多模态
session_status(model: "bailian/glm-5") // 代码
session_status(model: "bailian/qwq-plus") // 推理
session_status(model: "bailian/MiniMax-M2.5") // Office
切换成功后,给用户一个简短提示:
场景 A: 主窗口发送视频
────────────────────────
用户: [发送一个 .mp4 视频文件] "帮我分析这个视频"
AI 行为:
1. 检测: 无 [Subagent Context] → 是主窗口
2. 检测到视频文件 → 需要多模态模型
3. 决策: 使用 qwen3.5-plus(唯一支持视频)
4. 调用: session_status(model: "bailian/qwen3.5-plus")
5. 提示: "🧠 已切换到 qwen3.5-plus(视频理解)"
6. 分析视频内容
场景 B: 子代理处理代码任务
────────────────────────
消息: [Subagent Context] You are running as a subagent...
任务: 技术专家,写一个爬虫
AI 行为:
1. 检测: 有 [Subagent Context] → 是子代理
2. 决策: 跳过智能切换,使用预设模型 (glm-5)
3. 不调用 session_status
4. 直接执行任务
| 场景 | 是否切换 | 最优模型 |
|---|---|---|
| 🏠 主窗口 + 视频 | ✅ 切换 | qwen3.5-plus |
| 🏠 主窗口 + 音频 | ✅ 切换 | qwen3.5-plus |
| 🏠 主窗口 + 图片 | ✅ 切换 | qwen3.5-plus |
| 🏠 主窗口 + 代码 | ✅ 切换 | glm-5 |
| 🏠 主窗口 + 推理 | ✅ 切换 | qwq-plus |
| 🏠 主窗口 + Office | ✅ 切换 | MiniMax-M2.5 |
| 🤖 子代理 + 代码 | ❌ 不切换 | 使用预设模型 |
| 🤖 子代理 + 推理 | ❌ 不切换 | 使用预设模型 |
| 🤖 子代理 + 任何 | ❌ 不切换 | 使用预设模型 |
V5.0.2 核心亮点:主窗口智能切换,子代理保持预设,发图片/视频/音频自动切换多模态模型,完全无感! 🚀