Qwen Code 实战:Skill、MCP 与子 Agent 进阶用法
约 2693 字大约 9 分钟
Qwen CodeAI编程助手Skill
2026-04-09
概述
Qwen Code 的能力可以分为三个层次:
- 基础对话与编辑——直接对话完成文件读写和代码修改
- Skill 扩展——预定义的领域工作流,通过
/skill-name触发 - MCP(Model Context Protocol)——连接外部工具和数据源的标准协议
- 子 Agent 委派——将复杂任务拆分为多个独立 agent 并行处理
本文重点介绍后三项进阶用法。
一、Skill:领域工作流的快捷方式
什么是 Skill
Skill 是 Qwen Code 中预定义的领域专家模块,每个 Skill 针对一类任务设计了最优的提示词组合、工具调用顺序和输出格式。你可以通过 /skill-name 语法直接调用。
内置 Skill 一览
| Skill | 触发命令 | 用途 |
|---|---|---|
github-opensource | 提供 GitHub 项目 URL | 生成开源项目介绍文章 |
loop | /loop 5m check the build | 创建定时循环任务 |
qc-helper | /qc-helper how do I configure MCP? | 回答 Qwen Code 使用问题 |
review | /review <pr-number> | 审查 PR 代码变更 |
tech-research | 提供技术调研需求 | 生成技术调研报告 |
使用示例
1. 代码审查
/review 42这会审查 PR #42 的所有变更,检查代码质量、安全性和性能问题。如果想直接在 PR 上留下 inline 评论:
/review 42 --comment2. 定时循环任务
/loop 30m 检查 CI 构建状态这会在后台创建一个每 30 分钟运行一次的任务。查看所有循环任务:
/loop list取消所有循环任务:
/loop clear3. 技术调研
当需要调研某个技术时,Skill 会自动:
- 搜索官方文档和最佳实践
- 对比同类工具的优劣
- 生成结构化的知识文章
帮我调研一下 Rust 的 Web 框架怎么选Qwen Code 会自动调用 tech-research Skill,生成包含技术对比、使用建议的文章。
4. 帮助查询
/qc-helper 如何配置审批模式?这个 Skill 专门回答 Qwen Code 自身的配置和用法问题。
自定义 Skill
项目可以在 .qwen/skills/ 目录下添加自定义 Skill。一个 Skill 本质上是一个包含特定提示词和工具配置的目录结构:
.qwen/skills/
└── my-skill/
├── SKILL.md # Skill 描述和触发条件
├── prompts/ # 自定义提示词模板
│ └── main.md
└── scripts/ # 辅助脚本(可选)
└── helper.shSKILL.md 示例:
---
name: my-skill
description: 我的自定义技能,用于处理特定任务
---
## 触发条件
当用户提到 "XXX" 时触发。
## 工作流程
1. 首先...
2. 然后...
3. 最后...二、MCP(Model Context Protocol):连接外部世界
MCP 是什么
MCP 是 Anthropic 提出的开放协议,定义了大模型与外部工具、数据源之间的标准通信方式。通过 MCP,Qwen Code 可以安全地调用数据库、API、文件系统等外部资源。
MCP 架构
Qwen Code (Client)
│
│ MCP Protocol
│
├── MCP Server: filesystem
│ └── 提供安全的文件读写能力
│
├── MCP Server: database
│ └── 提供 SQL 查询能力
│
└── MCP Server: custom-tool
└── 你的自定义工具服务配置 MCP Server
在项目或全局配置文件中添加 MCP 服务器:
.qwen/settings.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"]
},
"database": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
}使用场景
1. 数据库查询
配置好 PostgreSQL MCP Server 后,可以直接对话查询:
帮我查一下上周注册的用户有多少Qwen Code 会通过 MCP 协议向数据库服务器发送查询请求并返回结果。
2. 文件系统访问
通过 MCP Server 限定可访问的目录范围,实现比直接文件操作更精细的权限控制:
{
"mcpServers": {
"docs-only": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/project/docs"]
}
}
}3. 自定义 HTTP API
可以编写自己的 MCP Server 来调用内部 API:
// 一个简化的 MCP Server 示例
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
const server = new McpServer({
name: 'internal-api',
version: '1.0.0'
});
server.tool('query-user', {
userId: { type: 'string' }
}, async ({ userId }) => {
const response = await fetch(`https://api.internal/users/${userId}`);
const data = await response.json();
return {
content: [{ type: 'text', text: JSON.stringify(data) }]
};
});MCP vs 直接工具调用
| 对比维度 | 直接工具 | MCP Server |
|---|---|---|
| 权限控制 | 依赖审批模式 | Server 侧独立控制 |
| 可复用性 | 仅限当前会话 | 跨项目、跨团队复用 |
| 安全性 | 模型直接接触资源 | 中间层可做审计和限流 |
| 生态 | 内置 | 可使用社区已有实现 |
三、子 Agent:并行处理复杂任务
什么是子 Agent
子 Agent 是 Qwen Code 中的 agent 工具,允许当前 agent 启动独立的子进程(subprocess)来处理特定任务。每个子 Agent 有自己独立的上下文和工具集。
可用 Agent 类型
| Agent 类型 | 说明 | 适用场景 |
|---|---|---|
general-purpose | 通用 agent | 复杂多步骤任务、代码搜索、研究问题 |
Explore | 快速探索 agent | 查找文件、搜索关键词、理解代码库结构 |
使用模式
1. 代码库探索
当你需要在大范围代码中搜索但不确定具体位置时:
帮我看看这个项目里是怎么处理认证的Qwen Code 会启动一个 Explore agent 快速搜索多个位置和命名约定,而不是逐文件手动查找。
Explore agent 支持指定搜索深度:
- "quick":基础搜索,快速定位
- "medium":中等深度,覆盖多个模块
- "very thorough":全面分析,跨多个位置和命名约定
2. 并行任务处理
当多个任务互相独立时,可以并行启动子 agent:
同时帮我做两件事:
1. 调研一下项目的错误处理机制
2. 找出所有使用了某个废弃 API 的地方这两个搜索可以并行执行,互不干扰。
3. 复杂任务委派
对于需要多轮迭代的研究型问题:
帮我研究一下如何优化项目的构建速度,包括分析当前配置、
对比主流 bundler 方案、给出迁移建议子 Agent 会:
- 先分析现有构建配置
- 搜索相关 benchmarks 和社区最佳实践
- 生成结构化的对比报告
- 返回给主 agent 整合
何时使用子 Agent
应该使用:
- 不确定的开放式搜索("找到所有相关代码")
- 需要多轮研究的复杂问题
- 可以并行执行的独立子任务
不应该使用:
- 已知具体文件路径,直接
read_file更快 - 搜索特定类定义,用
grep_search更精确 - 在 2-3 个文件内查找,直接读文件更高效
实战示例
示例 1:理解 API 端点
帮我弄清楚这个项目里 API 端点是怎么工作的Qwen Code 会启动 Explore agent:
- 搜索 "API endpoints" 关键词
- 查找路由定义文件
- 阅读控制器或路由配置
- 整理出端点列表和对应的处理逻辑
示例 2:多文件重构
把项目中所有的 console.log 替换成统一的 logger 工具主 agent 会:
- 启动 Explore agent 找出所有
console.log出现位置 - 对每个文件使用
edit工具进行替换 - 运行 lint 验证改动
示例 3:技术债务清理
找出所有超过 200 行的函数并列出它们Explore agent 会:
- 在
**/*.{ts,js}中搜索函数定义 - 结合 AST 分析或行号统计识别长函数
- 返回按长度排序的列表及所在文件
四、组合使用:Skill + MCP + 子 Agent
实际使用中,三者往往组合使用:
场景:为一个 GitHub 开源项目生成文档
# 用户输入项目 URL
https://github.com/example/awesome-project执行流程:
1. Qwen Code 识别为 GitHub URL → 触发 github-opensource Skill
2. Skill 启动 Explore agent → 快速理解项目结构
3. 通过 MCP Server(如已配置)→ 读取本地 clone 的内容
4. 主 agent 整合信息 → 生成文章
5. 自动创建文件到正确的目录场景:代码审查 + 技术债分析
/review 42
# 在 review 过程中发现需要理解某个历史改动
> 这个函数的逻辑看起来不太对,帮我查一下当初为什么这么写执行流程:
1. review Skill 审查 PR 变更
2. 发现可疑逻辑 → 自动启动 Explore agent 搜索 git history
3. 找到相关提交信息和 issue 讨论
4. 将背景信息整合到 review 报告中五、最佳实践
1. 明确任务边界
给 agent 的指令应该具体且可验证:
# ❌ 太模糊
帮我优化一下性能
# ✅ 具体
找出首页渲染中耗时超过 100ms 的组件并给出优化建议2. 利用 Todo List 跟踪复杂任务
对于多步骤工作,主动要求使用 todo 列表:
帮我重构 auth 模块,用 todo list 跟踪每一步3. 选择合适的工具粒度
| 需求 | 推荐工具 |
|---|---|
| 读取已知文件 | read_file |
| 搜索特定类 | grep_search |
| 按文件名查找 | glob |
| 开放式研究 | agent (Explore) |
4. 善用长期记忆
对于项目特定的约定和习惯,可以让 agent 记住:
记住:我们项目的 commit message 使用 conventional commits 格式这会保存到项目的 QWEN.md 中,后续会话自动遵循。
5. 安全审批模式
根据任务风险选择合适的审批模式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
ask | 每个危险操作都需确认 | 生产环境、重要改动 |
editor | 仅文件编辑免审批 | 日常编码 |
yolo | 完全免审批 | 沙箱、实验环境 |
六、常见问题
Q: Skill 和 MCP 有什么区别?
Skill 是预定义的工作流和提示词模板,告诉 Qwen Code "怎么做某类任务"。 MCP 是外部工具的通信协议,扩展了 Qwen Code "能访问什么资源"。
Skill 关注流程,MCP 关注连接。两者互补。
Q: 子 Agent 会消耗更多 token 吗?
是的。每个子 Agent 有独立上下文,会产生额外的 token 消耗。但对于可以并行完成的独立任务,总体耗时可能更短。
Q: 如何知道当前有哪些 Skill 可用?
可以查看 Qwen Code 的文档或使用 /qc-helper 查询:
/qc-helper 当前有哪些可用的 skill?Q: MCP Server 可以动态加载吗?
可以。可以在配置文件中定义多个 MCP Server,Qwen Code 启动时会根据配置自动连接。也可以在会话中动态指定(具体取决于实现)。
小结
Qwen Code 的进阶用法围绕三个核心概念展开:
- Skill:封装领域知识的快捷方式,减少重复描述
- MCP:连接外部世界的标准协议,扩展能力边界
- 子 Agent:并行处理复杂任务的委派机制,提升效率
熟练掌握这些能力,可以让 Qwen Code 从一个简单的编程助手,升级为能够独立承担复杂工程任务的 AI 工程师。
