从入门到精通,全方位掌握 Qoder(通义灵码 Agentic 版)的使用方法。 涵盖安装配置、核心模式、智能补全、多专家协作、MCP 扩展、CLI 工具等全部内容。
Qoder(前身为通义灵码 Agentic 版)是阿里巴巴推出的 Agentic 编码平台,定位为"面向真实软件开发的自主编程平台"。它不是简单的代码补全工具,而是一个能理解整个代码库、自主规划任务、端到端交付成果的 AI 开发伙伴。[citation:1][citation:8]
💡 一句话理解 Qoder:它不是帮你"写代码"的工具,而是帮你"做软件"的团队。
| 指标 | 数据 |
|---|---|
| 支持代码库最大文件数 | 100,000 个文件 |
| Agent 最长执行时间 | 26 小时 |
| 已生成代码库 Wiki | 400,000+ 个 |
| 全球用户数 | 1,000,000+ 开发者 |
| 支持编程语言 | 127+ 种 |
| 核心语言深度支持 | JavaScript / TypeScript / Python / Go / C/C++ / C# / Java |
Qoder 不是一个单一工具,而是覆盖全场景的产品矩阵:[citation:5]
| 产品形态 | 定位 | 适用人群 |
|---|---|---|
| Qoder Desktop | 自主开发桌面端(主力 IDE) | 日常开发主力 |
| JetBrains 插件 | IDE 内嵌编码助手 | JetBrains 重度用户 |
| Qoder CLI | 终端原生 Agent 工具 | 终端党 / DevOps |
| Qoder Work | 桌面办公助手 | 跨场景协作 |
| Qoder Wake | 7×24 数字员工 | 企业级自动化 |
Qoder 1.0 从"AI IDE"进化为"自主开发桌面",背后有三个 guiding principles:[citation:9][citation:17]
| 场景 | 传统方式 | 用 Qoder |
|---|---|---|
| 新建项目 | 手动搭脚手架、配环境、写样板代码(数小时) | 描述需求 → Quest 自动生成完整项目(几分钟) |
| 理解陌生代码库 | 逐文件阅读、画调用图(数天) | Repo Wiki 自动生成架构文档(几分钟) |
| Bug 修复 | 定位 → 分析 → 修复 → 测试(数小时) | Agent 自主定位 + 修复 + 验证(几分钟) |
| 代码重构 | 手动逐文件修改、担心遗漏(数天) | Agent 跨文件批量重构(几分钟) |
| 写单元测试 | 逐个文件手写测试用例(数小时) | Agent 自动生成覆盖率高的测试(几分钟) |
| 平台 | 最低要求 | 推荐配置 |
|---|---|---|
| Windows | Windows 10 64位 / 8GB RAM / 2GB 磁盘 | Windows 11 / 16GB RAM / 5GB+ 磁盘 |
| macOS | macOS 12 (Monterey) / 8GB RAM | macOS 14 (Sonoma)+ / 16GB+ RAM / Apple Silicon |
| Linux | Ubuntu 20.04+ / 8GB RAM | Ubuntu 22.04+ / 16GB+ RAM |
1. 访问官网 https://qoder.com/download
2. 下载 Windows 安装包(.exe)
3. 双击运行安装程序
4. 按向导提示完成安装(建议勾选"添加到 PATH")
5. 启动 Qoder Desktop# 方式一:官网下载 .dmg
# 访问 https://qoder.com/download 下载对应架构版本
# Apple Silicon (M1/M2/M3/M4): qoderWork-mac-arm64.dmg
# Intel Mac: qoderWork-mac-x64.dmg
# 方式二:命令行下载
curl -O https://qoder.com/download/qoderWork-mac-arm64.dmg
# 安装:打开 .dmg 文件,将 Qoder 拖入 Applications 文件夹# Debian/Ubuntu (.deb)
wget https://qoder.com/download/qoder-amd64.deb
sudo dpkg -i qoder-amd64.deb
# Fedora/RHEL (.rpm)
wget https://qoder.com/download/qoder-x86_64.rpm
sudo rpm -ivh qoder-x86_64.rpm1. 打开 IDE → Settings(Windows: Ctrl+Alt+S / macOS: Cmd+,)
2. 选择 Plugins → Marketplace
3. 搜索 "Qoder"
4. 点击 Install → 重启 IDE
5. 侧边栏出现 Qoder 图标 → 点击登录| IDE | 用途 |
|---|---|
| IntelliJ IDEA | Java/Kotlin 开发 |
| PyCharm | Python 开发 |
| WebStorm | JavaScript/TypeScript 开发 |
| GoLand | Go 开发 |
| CLion | C/C++ 开发 |
| Android Studio | Android 开发 |
| Rider | .NET 开发 |
| RubyMine | Ruby 开发 |
| PhpStorm | PHP 开发 |
# macOS / Linux
curl -fsSL https://qoder.com/install | bash
# Windows PowerShell
irm https://qoder.com/install.ps1 | iex
# Windows CMD
curl -fsSL https://qoder.com/install.cmd -o install.cmd && install.cmd
# 验证安装
qodercli --version
# 登录
qodercli login
# 打开项目
qodercli open /path/to/your/project1. 启动 Qoder → 自动弹出浏览器登录页
2. 支持三种登录方式:
- 邮箱注册(推荐)
- GitHub 账号 SSO
- Google 账号 SSO
3. 新用户自动获得 300 Credits 免费额度 + 2 周 Pro 试用1. 点击右上角用户图标 → Settings
2. 找到 Language 选项 → 切换为"简体中文"
3. 重启 Qoder 生效1. File → Open Folder → 选择你的项目目录
2. Qoder 自动开始代码索引(右下角显示进度)
3. 小型项目(<1000 文件):约 30 秒
4. 大型项目(10000+ 文件):约 1-3 分钟
5. ⚠️ 务必等待索引完成!否则 AI 无法理解项目结构Qoder 的核心配置文件位于用户目录:
// ~/.qoder/config.json
{
"modelRouting": {
"default": "auto",
"preferences": {
"complexArchitecture": "claude-sonnet-4",
"chineseContext": "qwen2.5-max"
}
},
"indexing": {
"maxFileSize": "5MB",
"excludePatterns": [
"**/node_modules/**",
"**/.git/**",
"**/build/**",
"**/dist/**",
"**/.venv/**"
],
"semanticIndexing": true
},
"memory": {
"persistent": true,
"autoConsolidation": true
},
"mcp": {
"enabled": true,
"servers": [
{
"name": "database",
"command": "npx -y @modelcontextprotocol/server-postgres"
}
]
}
}✅ 检查清单:
□ 右下角显示"已连接到 Qoder 服务"
□ 侧边栏 Qoder 图标可正常点击
□ 打开代码文件,输入时能看到 NEXT 建议(灰色虚线文字)
□ 按 Ctrl+L(Win)/ Cmd+L(Mac)能打开对话面板
□ 对话面板能正常发送消息并收到回复Qoder 1.0 采用双窗口设计——Editor 窗口 + Quest 窗口并行运行:[citation:9]
┌──────────────────────────────────────────────────────────┐
│ ┌─ Editor 窗口(协作编码区)────────────────────────┐ │
│ │ ┌────────────┬────────────────────┬───────────┐ │ │
│ │ │ │ │ │ │ │
│ │ │ 文件树 │ 代码编辑器 │ NEXT │ │ │
│ │ │ (左侧) │ (中央) │ 建议面板 │ │ │
│ │ │ │ │ (右侧) │ │ │
│ │ │ • src/ │ // 你的代码 │ ┌───────┐ │ │ │
│ │ │ • main │ function demo(){ │ │Tab采纳│ │ │ │
│ │ │ • utils │ // AI 建议 │ └───────┘ │ │ │
│ │ │ • tests/ │ } │ │ │ │
│ │ └────────────┴────────────────────┴───────────┘ │ │
│ │ ┌────────────────────────────────────────────────┐│ │
│ │ │ 终端面板(集成 Terminal) ││ │
│ │ │ $ npm run dev ││ │
│ │ └────────────────────────────────────────────────┘│ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ ┌─ Quest 窗口(任务委派区)───────────────────────────┐ │
│ │ ┌────────────┬────────────────────┬───────────┐ │ │
│ │ │ 任务导航 │ Agent 对话流 │ 产物区 │ │ │
│ │ │ (左侧) │ (中央) │ (右侧) │ │ │
│ │ │ • Task 1 │ > 正在分析... │ Spec文档 │ │ │
│ │ │ • Task 2 │ > 生成代码中... │ 文件变更 │ │ │
│ │ │ • Task 3 │ > 运行测试... │ 交付清单 │ │ │
│ │ └────────────┴────────────────────┴───────────┘ │ │
│ └──────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘| 概念 | 一句话解释 | 类比 |
|---|---|---|
| NEXT | 预测你下一步要写的代码,按 Tab 采纳 | 高级自动补全 |
| Ask 模式 | 只问不写,纯问答 | Stack Overflow 内置版 |
| Agent 模式 | 结对编程伙伴,自动规划+执行 | 结对编程搭档 |
| Quest 模式 | 项目外包模式,委派异步执行 | 项目经理 + 开发团队 |
| Experts 模式 | 多 AI 专家并行协作 | 虚拟专家团队 |
| Repo Wiki | 自动生成的代码库知识库 | 项目专属维基百科 |
| Knowledge Card | 高密度知识单元 | 精华笔记卡片 |
| Memory | 从对话中学习的记忆系统 | AI 的"经验本" |
| Rules | 项目级规则配置 | 团队编码规范 |
| MCP | 连接外部工具的协议 | AI 的"万能接口" |
| Custom Agent | 自定义智能体 | 你招的"专属员工" |
| Spec | 技术设计文档 | 开发任务书 |
| Workspace | 独立的工作空间 | 独立工位 |
你的需求
│
▼
┌─────────────────────────────────────────┐
│ 选择交互模式 │
├─────────────────────────────────────────┤
│ 简单补全 → NEXT(Tab 采纳) │
│ 技术问答 → Ask 模式(Ctrl+L) │
│ 小任务 → Inline Chat(Ctrl+I) │
│ 中任务 → Agent 模式(对话面板) │
│ 大项目 → Quest 模式(独立窗口) │
│ 超复杂 → Experts 模式(多 Agent) │
└─────────────────────────────────────────┘
│
▼
Qoder 自主执行
│
▼
你审查结果 → 接受/修改/回滚Qoder 提供五种交互模式,从"轻量问答"到"全自动交付"逐级递进:[citation:5]
| 模式 | 一句话定义 | 是否修改文件 | 适用场景 | 快捷键 |
|---|---|---|---|---|
| NEXT | Tab 采纳"下一步编辑"建议 | ✅ | 快速补全、批量修改 | Tab |
| Ask | 只问不写,纯粹问答 | ❌ | 代码解释、技术问答 | Ctrl+L / Cmd+L |
| Inline Chat | 编辑器内直接召唤 AI | ✅ | 局部代码优化/生成 | Ctrl+I / Cmd+I |
| Agent | 结对编程,自动规划+执行 | ✅ | Bug 修复、功能添加、重构 | Ctrl+L → 切换 |
| Quest | 项目外包,委派异步执行 | ✅ | 新功能开发、大型重构 | 点击 Quest 标签 |
详见第五章完整攻略
详见第六章完整攻略
使用方式:
1. 在代码编辑器中,选中你想讨论的代码块
2. 按 Ctrl+I(Win)/ Cmd+I(Mac)
3. 在弹出的输入框中描述你的需求
4. AI 在代码旁边直接回复,可一键应用适用场景:
示例对话:
class=class="hl-string">"hl-comment">// 选中以下代码,按 Ctrl+I,输入class="hl-string">"优化这段代码的性能"
function findDuplicates(arr) {
const duplicates = [];
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j] && !duplicates.includes(arr[i])) {
duplicates.push(arr[i]);
}
}
}
return duplicates;
}Qoder 会回复:
class=class="hl-string">"hl-comment">// ✅ 优化后:时间复杂度从 O(n²) 降至 O(n)
function findDuplicates(arr) {
const seen = new Set();
const duplicates = new Set();
for (const item of arr) {
if (seen.has(item)) {
duplicates.add(item);
} else {
seen.add(item);
}
}
return [...duplicates];
}详见第七章完整攻略
详见第八章完整攻略
NEXT(Next Edit Suggestion,行间建议预测)是 Qoder 的核心补全引擎。它不止于单行补全,而是理解你整个项目的上下文,预测你接下来要做的所有编辑。[citation:42][citation:46]
| 能力 | 说明 | 示例 |
|---|---|---|
| 多行编辑 | 光标附近一次建议多处修改 | 改函数名 → 自动更新所有调用点 |
| 跨文件修改 | 识别需要同步修改的相关文件 | 改接口签名 → 自动更新实现类 |
| 自动导包 | 检测缺失的 import 并自动添加 | 用 useState → 自动 import |
| 函数级生成 | 根据注释/签名生成完整函数体 | 写注释 → 生成完整实现 |
方式一:按 Tab 键 → 采纳完整建议
方式二:鼠标点击 "Accept" 按钮
方式三:Ctrl + →(Win)/ Cmd + →(Mac)→ 逐词采纳按 Esc 键 → 灰色虚线文字消失如果建议不在当前视图中:
按 Tab → 自动跳转到目标位置按住 Alt(Win)/ Option(Mac)键 → 预览建议效果
松开按键 → 恢复原代码快捷键:Alt + P(Win)/ Option + P(Mac)
适用场景:NEXT 未自动弹出时手动刷新class=class="hl-string">"hl-comment">// 你修改了函数名
function getUserData() { ... }
class=class="hl-string">"hl-comment">// NEXT 自动建议更新本文件所有调用点:
class=class="hl-string">"hl-comment">// getUserData() → fetchUserProfile()
class=class="hl-string">"hl-comment">// getUserData(id) → fetchUserProfile(id)
class=class="hl-string">"hl-comment">// const data = getUserData() → const data = fetchUserProfile()class=class="hl-string">"hl-comment">// 你在 interface 中添加一个字段
interface User {
id: number;
name: string;
email: string;
class=class="hl-string">"hl-comment">// NEXT 建议添加:
avatar: string; class=class="hl-string">"hl-comment">// ← 根据上下文自动推断
}class=class="hl-string">"hl-comment"># 在 Qoder 中输入注释:
class=class="hl-string">"hl-comment"># 实现一个函数,将列表按指定大小分块
class=class="hl-string">"hl-comment"># NEXT 自动生成:
def chunk_list(lst, size):
class="hl-string">""class="hl-string">"将列表按指定大小分块"class="hl-string">""
return [lst[i:i+size] for i in range(0, len(lst), size)]class=class="hl-string">"hl-comment">// 你写下:
const router = createBrowserRouter([...])
class=class="hl-string">"hl-comment">// NEXT 自动添加:
import { createBrowserRouter } from class='hl-string'>'react-router-dom'路径:右上角用户图标 → Settings → NEXT| 设置项 | 说明 | 推荐值 |
|---|---|---|
| 启用 NEXT | 全局开关 | ✅ 开启 |
| 注释触发 | 在注释块中自动激活 | ✅ 开启 |
| 自动导包 | 自动添加 import 语句 | ✅ 开启 |
| 跨文件建议 | 建议修改其他相关文件 | ✅ 开启 |
| 文件类型过滤 | 指定启用/禁用 NEXT 的文件类型 | 按需配置 |
NEXT 支持多种主流代码风格规范,会自动适配:[citation:46]
设置路径:Settings → Code Style
可选风格:
• PEP 8(Python 官方规范)
• Google Style(Google 编码规范)
• Airbnb(前端主流规范)
• StandardJS(JavaScript 标准风格)
• 自定义(上传你的 .eslintrc / .prettierrc)Ask 模式是一个不修改任何文件的纯问答模式。它结合了海量技术文档知识 + 对你项目代码的实时理解,提供准确、有上下文感知的答案。[citation:4][citation:21]
方式一:按 Ctrl+L(Win)/ Cmd+L(Mac)
方式二:点击右侧 Qoder 图标 → 选择 Ask 模式
方式三:在对话面板顶部切换为 "Ask"你:这段代码的输出为什么是 undefined?
[粘贴代码]
function getUserName(user) {
return user.name.first;
}
const user = { name: "张三" };
console.log(getUserName(user));
Qoder:问题在于 user.name 是字符串 "张三",
不是对象。访问 .first 会得到 undefined。
修复方式:
function getUserName(user) {
if (typeof user.name === 'string') {
return user.name;
}
return user.name?.first || user.name;
}你:我的 Node.js 应用报这个错是什么意思?
"Error: listen EADDRINUSE: address already in use :::3000"
Qoder:这个错误表示端口 3000 已被其他进程占用。
解决方案:
1. 找到占用端口的进程:
macOS/Linux: lsof -i :3000
Windows: netstat -ano | findstr :3000
2. 杀掉该进程:
kill -9
3. 或换一个端口:
app.listen(3001) 你:React 的 useMemo 和 useCallback 有什么区别?什么时候该用哪个?
Qoder:核心区别:
• useMemo:缓存计算结果(值)
• useCallback:缓存函数引用(函数)
使用场景:
• 昂贵计算 → useMemo
• 传递给子组件的回调 → useCallback
• 依赖稳定的引用 → useCallback
[附带代码示例...]你:我要做一个实时聊天应用,WebSocket 和长轮询哪个更合适?
Qoder:对于实时聊天,推荐使用 WebSocket,原因:
✅ 全双工通信,延迟极低
✅ 服务端可主动推送
✅ 连接复用,减少开销
长轮询仅适合:
⚠️ 不支持 WebSocket 的环境
⚠️ 极低频的消息推送
推荐方案:Socket.IO(兼容性好)+ Redis(水平扩展)你:我们项目的 UserService 是怎么处理密码加密的?
Qoder:[自动搜索项目代码]
UserService 在 src/services/user.service.ts 中,
使用 bcryptjs 进行密码哈希:
• 注册时:bcrypt.hash(password, 12)
• 登录时:bcrypt.compare(input, hashedPassword)
盐轮数配置在 src/config/auth.config.ts 中,当前为 12 轮。你:[上传错误截图/UI 设计图/日志截图]
这个错误怎么解决?
Qoder:[识别图片内容]
根据截图,这是 TypeScript 编译错误:
"Property 'xxx' does not exist on type 'YYY'"
原因是...[给出详细分析和修复方案]| 技巧 | 说明 |
|---|---|
| 提供上下文 | 粘贴相关代码片段,AI 回答更精准 |
| 说明环境 | 告知框架版本、运行环境等 |
| 上传截图 | 错误截图/UI 截图直接发给 AI |
| 追问深入 | 不满意可以追问"为什么""还有别的方法吗" |
| 要求示例 | "给我一个完整的可运行示例" |
Agent 模式是 Qoder 的自主编程核心。你用自然语言描述目标,Agent 会自主完成以下全流程:[citation:4][citation:21]
你描述目标 → Agent 拆解任务 → 搜索代码库 → 制定计划
→ 编辑文件 → 运行命令 → 验证结果 → 交付成果方式一:对话面板顶部 → 切换为 "Agent"
方式二:按 Ctrl+L → 输入需求 → 自动进入 Agent 模式
方式三:输入 /agent 手动触发Agent 模式拥有以下工具权限:[citation:29]
| 工具 | 功能 | 示例 |
|---|---|---|
| Read | 读取文件内容 | 阅读现有代码理解逻辑 |
| Write | 创建/覆盖文件 | 生成新模块代码 |
| Edit | 精确编辑文件 | 修改特定函数 |
| Glob | 按模式查找文件 | 找到所有 *.test.ts |
| Grep | 搜索文件内容 | 查找所有使用某 API 的位置 |
| Bash | 执行终端命令 | npm install / git commit / 运行测试 |
你:在当前的 Express 项目中添加一个 GET /api/health 健康检查接口
Agent 执行流程:
1. [Glob] 查找现有路由文件 → 找到 src/routes/
2. [Read] 阅读现有路由结构 → 理解项目模式
3. [Write] 创建 src/routes/health.ts
4. [Edit] 在 src/app.ts 中注册新路由
5. [Bash] 运行 npm run build → 验证编译通过
6. [Bash] 运行 npm test → 验证测试通过
7. 交付:展示修改的文件列表 + 测试结果你:用户反馈登录后购物车数据丢失,帮我排查并修复
Agent 执行流程:
1. [Grep] 搜索 "cart" 相关代码 → 定位到 cart.service.ts
2. [Read] 阅读购物车逻辑 → 发现问题:购物车存在 sessionStorage
3. [Grep] 搜索登录逻辑 → 发现登录后页面刷新导致 sessionStorage 清空
4. [Edit] 修改购物车服务:
- 登录前暂存购物车到 localStorage
- 登录后从 localStorage 恢复
5. [Write] 添加对应的单元测试
6. [Bash] 运行测试 → 全部通过
7. 交付:修复方案说明 + 修改文件 + 测试结果你:把项目里所有的 var 声明改成 const/let,并确保没有破坏现有功能
Agent 执行流程:
1. [Grep] 搜索所有 "var " 使用位置 → 找到 47 处
2. [Read] 逐一分析每个 var 的作用域和是否被重新赋值
3. [Edit] 批量修改:
- 不被重新赋值的 → const
- 需要重新赋值的 → let
4. [Bash] 运行 npm run lint → 检查代码规范
5. [Bash] 运行 npm test → 确保功能正常
6. 交付:修改统计 + 文件列表 + 测试结果你:为 src/services/payment.service.ts 中的所有公共方法生成单元测试
Agent 执行流程:
1. [Read] 阅读 payment.service.ts → 识别 8 个公共方法
2. [Read] 阅读现有测试文件 → 理解测试风格(Jest + Supertest)
3. [Write] 生成 payment.service.test.ts:
- 每个方法至少 3 个测试用例(正常/边界/异常)
- Mock 外部依赖(数据库/支付网关)
- 包含集成测试场景
4. [Bash] 运行 npx jest payment.service → 验证通过
5. 交付:测试文件 + 覆盖率报告在复杂任务中设置检查点,确保每步可控:
你:帮我实现用户模块,每个步骤完成后暂停等我确认
[设置检查点:"用户实体创建完成"]
[设置检查点:"Repository 层完成"]
[设置检查点:"Service 层完成"]
[设置检查点:"Controller + 路由完成"]• 按 Esc 或输入 "stop" → 中断当前 Agent 任务
• Agent 每步操作都有快照 → 可随时回滚到之前状态
• 对话面板显示完整操作历史 → 可逐条审查方式一:在需求前加上文件路径
你:在 src/utils/helpers.ts 中添加一个防抖函数
方式二:使用 @ 引用文件
你:@src/config/database.ts 帮我优化这个数据库连接池配置
方式三:使用 # 添加上下文标签
你:#backend #database 帮我设计一个分表方案Quest 是 Qoder 最具革命性的功能——一个独立的 Agent 自主执行窗口。你描述目标,Quest 自主完成从需求澄清到代码交付的全链路。[citation:1][citation:9]
🔥 核心区别:Agent 模式是"结对编程"(你在旁边看着),Quest 模式是"项目外包"(你定义目标,AI 全自动执行)。
┌─────────────────────────────────────────────────────┐
│ Step 1: 需求输入 │
│ 你描述目标:"搭建一个全栈图书管理系统" │
├─────────────────────────────────────────────────────┤
│ Step 2: 需求澄清 │
│ Quest 反问:"需要用户登录吗?数据库用 MySQL 还是 │
│ MongoDB?前端要管理后台还是用户端?" │
├─────────────────────────────────────────────────────┤
│ Step 3: Spec 生成 │
│ Quest 自动生成技术设计文档: │
│ • 架构设计图 │
│ • 数据库表结构 │
│ • API 接口定义 │
│ • 模块划分 │
├─────────────────────────────────────────────────────┤
│ Step 4: 任务拆解 │
│ Quest 将大任务分解为子任务: │
│ • Task 1: 创建数据库表 │
│ • Task 2: 实现后端 API │
│ • Task 3: 实现前端页面 │
│ • Task 4: 编写测试 │
│ • Task 5: 运行验证 │
├─────────────────────────────────────────────────────┤
│ Step 5: 自主执行 │
│ Quest 依次/并行执行所有子任务 │
│ 你可以实时查看进度,也可以离开做别的事 │
├─────────────────────────────────────────────────────┤
│ Step 6: 交付验收 │
│ Quest 输出: │
│ • 完整可运行的项目代码 │
│ • 自动更新的 Repo Wiki │
│ • 交付清单(Delivery Checklist) │
│ • 测试报告 │
└─────────────────────────────────────────────────────┘方式一:点击顶部 "Quest" 标签(独立窗口)
方式二:快捷键 Ctrl+E(Win)/ Cmd+E(Mac)
方式三:从命令面板选择 "Open Quest Panel"Quest 提供三种预设模板,适应不同场景:[citation:35]
| 模板 | 适用场景 | 特点 |
|---|---|---|
| Spec-Driven(代码+规格) | 需求明确、有清晰计划 | 先写 Spec → 再执行 → 适合复杂项目 |
| Prototype Demos(原型探索) | 有个想法、想快速看效果 | 模糊目标 → 快速原型 → 适合创意验证 |
| Create Tools(创建工具) | 构建自动化工具/脚本 | 需求明确 → 生成独立工具 |
Step 1: 打开 Quest 窗口 → 选择 "Spec-Driven" 模板
Step 2: 输入需求描述:
─────────────────────────────────────────
搭建全栈图书管理系统
后端:SpringBoot3 + MyBatis-Plus + MySQL
- 设计图书表(id, title, author, isbn, price, stock)
- 设计借阅记录表(id, user_id, book_id, borrow_date, return_date)
- 实现新增图书接口
- 实现分页查询接口
- 实现借阅/归还接口
- 全局异常处理
前端:Vue3 + Element Plus
- 图书列表页面(分页、搜索)
- 新增图书弹窗表单
- 借阅记录页面
- 登录注册页面
额外要求:
- 自动生成 MySQL 建表 SQL
- 生成 Postman 接口文档
- 为所有接口编写单元测试
─────────────────────────────────────────
Step 3: Quest 自动生成 Spec 文档 → 你审阅确认
Step 4: Quest 自主执行(约 10 分钟)
Step 5: 验收交付
✅ 数据库设计文档 + 建表 SQL
✅ 后端全套代码(Entity/Mapper/Service/Controller)
✅ 前端页面 + 组件
✅ 单元测试代码
✅ Postman 集合导出
✅ 自动更新的 Repo Wiki| 指标 | 传统人工开发 | Quest 模式 |
|---|---|---|
| 开发时间 | 6-8 小时 | 约 10 分钟 |
| 代码量 | ~2000 行 | ~2000 行 |
| Bug 数量 | 需手动调试 | 自动测试验证 |
| 文档完整度 | 通常缺失 | 自动生成全套 |
class=class="hl-string">"hl-comment"># 推荐的需求描述结构
class=class="hl-string">"hl-comment">## 项目概述
[一句话描述项目目标]
class=class="hl-string">"hl-comment">## 技术栈
- 后端:[框架 + 数据库 + 中间件]
- 前端:[框架 + UI 库]
- 部署:[Docker / 云服务 / 本地]
class=class="hl-string">"hl-comment">## 功能需求
1. [功能1详细描述]
2. [功能2详细描述]
3. [功能3详细描述]
class=class="hl-string">"hl-comment">## 非功能需求
- 性能:[响应时间要求]
- 安全:[认证/加密要求]
- 兼容:[浏览器/设备要求]
class=class="hl-string">"hl-comment">## 额外要求
- [生成单元测试]
- [生成 API 文档]
- [Docker 容器化]Qoder 1.0 支持跨项目多任务并行处理:[citation:9]
Workspace 1: 图书管理系统(运行中)
Workspace 2: 官网改版项目(排队中)
Workspace 3: API 文档生成(运行中)
统一面板实时追踪所有任务状态
任务完成后自动生成交付清单虽然 Quest 是"放手"模式,但你随时可以:
• 在对话中输入新指令 → Quest 调整方向
• 点击 "Pause" → 暂停任务
• 点击 "Stop" → 终止任务
• 修改 Spec → Quest 重新规划Experts 模式是 Quest 的升级版——Qoder 自动组建一支 AI 专家团队,多个专家并行协作完成复杂任务。[citation:9][citation:25]
| 专家 | 职责 | 典型输出 |
|---|---|---|
| 规划专家(Planner) | 需求分析、任务拆解、技术方案设计 | 架构图、任务列表、技术选型建议 |
| 研究专家(Researcher) | 代码库探索、依赖分析、方案调研 | 调研报告、可行性分析 |
| 编码专家(Coder) | 核心代码实现 | 功能代码、模块实现 |
| 审查专家(Reviewer) | 代码审查、质量把关 | 审查报告、修改建议 |
| 测试专家(Tester) | 测试用例设计、自动化测试 | 测试代码、覆盖率报告 |
方式一:Settings → Model & Mode → Execution Mode → 选择 "Experts Mode"
方式二:在 Quest 输入框前加前缀 /expert
方式三:在对话中直接说"使用专家模式"你:/expert 设计一个支持文件上传与预览的 React 管理后台
Quest 自动编排:
┌──────────────────────────────────────────────────┐
│ 📋 规划专家 │
│ ├─ 分析需求 → 文件上传 + 预览 + 管理 │
│ ├─ 技术选型 → React + Ant Design + Express │
│ └─ 输出任务树 → 12 个子任务 │
├──────────────────────────────────────────────────┤
│ 🔍 研究专家 │
│ ├─ 调研文件上传最佳实践 │
│ ├─ 分析预览方案(图片/PDF/视频) │
│ └─ 输出技术调研报告 │
├──────────────────────────────────────────────────┤
│ 💻 编码专家(并行) │
│ ├─ 后端:文件上传 API + 存储策略 │
│ ├─ 前端:上传组件 + 预览组件 │
│ └─ 数据库:文件元数据表设计 │
├──────────────────────────────────────────────────┤
│ 🔎 审查专家 │
│ ├─ 检查代码规范 │
│ ├─ 安全检查(文件类型验证、大小限制) │
│ └─ 输出审查报告 + 自动修复 │
├──────────────────────────────────────────────────┤
│ 🧪 测试专家 │
│ ├─ 上传功能测试(各种文件类型) │
│ ├─ 预览功能测试(大文件、损坏文件) │
│ └─ 输出测试报告 + 覆盖率 │
└──────────────────────────────────────────────────┘除了内置专家,你还可以创建专属专家:[citation:29][citation:33]
在对话中输入:/create-agent
Qoder 引导你完成:
1. 专家名称 → "前端代码审查官"
2. 专家描述 → "确保所有前端代码符合团队 TypeScript 规范"
3. 工具权限 → Read, Grep, Glob
4. 模型选择 → claude-sonnet-4
5. 系统提示词 → 自动生成
6. 保存位置 → ~/.qoder/agents/frontend-reviewer.md
---
name: frontend-reviewer
description: 前端代码审查专家,检查 TypeScript 规范、React 最佳实践、性能问题
tools: Read, Grep, Glob, Bash
model: class="hl-string">"claude-sonnet-4"
skills:
- code-review
- performance-analysis
mcpServers:
- eslint-mcp
---
你是一位资深前端代码审查专家。审查清单:
1. **TypeScript 规范**
- 禁止使用 any 类型
- 必须定义明确的 interface
- 严格模式必须开启
2. **React 最佳实践**
- 检查 useEffect 依赖数组
- 检查 key 属性使用
- 检查不必要的重渲染
3. **性能检查**
- 大列表是否使用虚拟滚动
- 图片是否懒加载
- 是否有内存泄漏风险
4. **样式规范**
- CSS 类名使用 BEM 命名
- 禁止使用 inline style(除动态值外)| 作用域 | 路径 | 可见范围 |
|---|---|---|
| 用户级 | ~/.qoder/agents/*.md | 所有项目可用 |
| 项目级 | ${project}/.qoder/agents/*.md | 仅当前项目 |
方式一:自动触发
你:帮我审查一下最近修改的前端代码
→ Qoder 自动识别 → 调用 frontend-reviewer 专家
方式二:手动触发
你:/frontend-reviewer 审查 src/components/ProductList.tsx
→ 强制调用指定专家
方式三:在 Quest 中自动编排
你:/expert 重构整个用户模块
→ Quest 自动调度多个专家并行工作Repo Wiki 是 Qoder 自动为你的代码库生成的结构化知识库——相当于 AI 帮你写了一本项目的维基百科。[citation:1][citation:20]
.qoder/repowiki/
├── zh/ ← 中文版本
│ ├── content/
│ │ ├── 快速开始.md ← 环境搭建、本地启动
│ │ ├── API文档/ ← 接口定义、DTO 结构
│ │ ├── 业务逻辑/ ← 核心业务流程
│ │ ├── 数据模型/ ← 实体关系、数据库表
│ │ ├── 架构设计/ ← 整体架构、模块关系
│ │ ├── 核心模块/ ← 各模块详细设计
│ │ ├── 开发指南/ ← 编码规范、开发流程
│ │ └── 故障排查/ ← 常见问题与解决方案
│ └── meta/
│ └── repowiki-metadata.json ← 代码片段索引
└── en/ ← 英文版本(可选)
└── ...方式一:右键项目根目录 → Qoder → Generate Repo Wiki
方式二:命令面板 → "Generate Repo Wiki"
方式三:在对话中输入 /wiki generate
生成时间参考:
• 小型项目(<100 文件):约 1 分钟
• 中型项目(1000 文件):约 3-5 分钟
• 大型项目(10000+ 文件):约 10-15 分钟Repo Wiki 会在以下时机自动更新:
✅ Git commit 推送后 → 增量更新受影响的文档
✅ 手动触发 /wiki update → 全量刷新
✅ Quest 任务完成后 → 自动同步新知识
可在 Settings → Repo Wiki → Update Strategy 中配置:
• 自动更新(默认)
• 手动更新(需手动触发)传统方式:老人带新人看代码 → 2 周
使用 Repo Wiki:新人阅读自动生成的文档 → 1 天
新人入职 Checklist:
□ 打开 .qoder/repowiki/快速开始.md → 环境搭建
□ 阅读 架构设计/ → 理解整体结构
□ 阅读 核心模块/ → 了解各模块职责
□ 阅读 数据模型/ → 理解数据库设计
□ 有问题直接问 Qoder → Ask 模式你:这个项目的核心业务流程是什么?
Qoder:[基于 Repo Wiki 回答]
本项目是一个电商订单系统,核心流程:
1. 用户下单 → OrderService.createOrder()
2. 库存锁定 → InventoryService.reserve()
3. 支付处理 → PaymentService.charge()
4. 库存扣减 → InventoryService.confirm()
5. 物流创建 → ShippingService.create()
异常流程:
• 支付失败 → 自动释放库存
• 库存不足 → 订单进入等待队列
详细架构图见 .qoder/repowiki/zh/架构设计/订单流程.md你:这个接口被哪些服务调用了?
Qoder:[基于 Repo Wiki 的调用关系图]
GET /api/products 被以下位置调用:
• src/frontend/pages/ProductList.tsx:45
→ 页面加载时获取商品列表
• src/frontend/components/SearchBar.tsx:23
→ 搜索时重新获取
• src/backend/jobs/sync-products.ts:12
→ 定时同步任务
详细调用链见 Repo Wiki 的 API 文档。路径:Settings → Repo Wiki
┌─────────────────────────────────────────┐
│ Update Strategy: [自动更新 ▼] │
│ Language: [中文 + English ▼]│
│ Include Patterns: **/*.java │
│ **/*.ts │
│ Exclude Patterns: **/test/** │
│ Max File Size: 5MB │
│ Generate on Commit: ☑ 开启 │
│ Generate on Quest: ☑ 开启 │
└─────────────────────────────────────────┘Qoder 的知识引擎由三层组成,协同工作:[citation:51]
┌──────────────────────────────────────────────────────┐
│ 知识引擎(Knowledge Engine) │
├──────────────────────────────────────────────────────┤
│ Layer 1: Repo Wiki │
│ ├─ 项目架构知识(自动生成) │
│ ├─ 模块关系图 │
│ └─ 更新策略:Git commit 触发 │
├──────────────────────────────────────────────────────┤
│ Layer 2: Knowledge Card(知识卡片) │
│ ├─ 架构文档卡片 │
│ ├─ 代码规范卡片(Spec) │
│ ├─ 技术栈信息卡片 │
│ └─ 更新策略:手动 + 自动结合 │
├──────────────────────────────────────────────────────┤
│ Layer 3: Memory(记忆) │
│ ├─ 用户偏好(编码风格、框架选择) │
│ ├─ 踩坑经验(常见问题及解决方案) │
│ ├─ 对话历史提炼 │
│ └─ 更新策略:每次对话自动学习 │
└──────────────────────────────────────────────────────┘
class=class="hl-string">"hl-comment"># 整体架构
class=class="hl-string">"hl-comment">## 设计理念
本系统采用微服务架构,按业务域拆分为独立服务。
class=class="hl-string">"hl-comment">## 服务清单
| 服务 | 职责 | 技术栈 | 端口 |
|------|------|--------|------|
| order-service | 订单管理 | Spring Boot 3 | 8081 |
| payment-service | 支付处理 | Spring Boot 3 | 8082 |
| inventory-service | 库存管理 | Go + Gin | 8083 |
class=class="hl-string">"hl-comment">## 关键决策
- 服务间通信:gRPC(内部)+ REST(外部)
- 数据一致性:Saga 模式
- 服务发现:Consul
> 📌 来源:src/main/java/com/example/Application.java:1-29
class=class="hl-string">"hl-comment"># 编码规范
class=class="hl-string">"hl-comment">## 命名约定
- 类名:PascalCase(如 OrderService)
- 方法名:camelCase(如 getOrderById)
- 常量:UPPER_SNAKE_CASE(如 MAX_RETRY_COUNT)
- 数据库表:snake_case(如 order_items)
class=class="hl-string">"hl-comment">## 必须遵循
- 所有公共方法必须有 Javadoc 注释
- 异常处理必须使用自定义异常类
- 禁止使用 System.out.println(用 Logger)
- 数据库查询必须使用参数化(禁止字符串拼接)
class=class="hl-string">"hl-comment">## 代码审查清单
- [ ] 是否有单元测试覆盖
- [ ] 是否有异常处理
- [ ] 是否有日志记录
- [ ] 是否有性能考虑
class=class="hl-string">"hl-comment"># 技术栈信息
class=class="hl-string">"hl-comment">## 后端
- Java 21 + Spring Boot 3.2
- MyBatis-Plus 3.5.6
- MySQL 8.0 + Redis 7.0
- RabbitMQ 3.12
class=class="hl-string">"hl-comment">## 前端
- Vue 3 + TypeScript
- Element Plus + Pinia
- Vite 5 + Vue Router 4
class=class="hl-string">"hl-comment">## DevOps
- Docker + Docker Compose
- Jenkins CI/CD
- Kubernetes(生产环境)Memory 是 Qoder 从每次对话中自动学习的系统:[citation:51]
你:帮我写一个 Python 函数,用 requests 库调用 API
[后续对话中...]
你:再写一个类似的,但这次是 POST 请求
Qoder:[基于 Memory 中的偏好]
根据之前的对话,你偏好使用 requests 库。
以下是 POST 请求版本:
[生成代码,自动包含错误处理、超时设置、
JSON 解析等之前讨论过的最佳实践]| 类别 | 示例 |
|---|---|
| 编码偏好 | "用户偏好 TypeScript 严格模式" |
| 框架选择 | "后端统一使用 Spring Boot 3" |
| 代码风格 | "喜欢函数式写法,少用 for 循环" |
| 踩坑记录 | "上次 Node.js 版本不兼容导致依赖安装失败" |
| 项目决策 | "决定使用 PostgreSQL 而非 MySQL" |
在对话中输入:/knowledge
可用命令:
• /knowledge edit 架构设计 → 编辑指定卡片
• /knowledge add 踩坑记录 → 添加新知识
• /knowledge delete 过期内容 → 删除知识
• /knowledge list → 查看所有知识卡片Teams 计划功能:
✅ 团队成员生成的 Knowledge Card 自动同步
✅ 一人踩坑,全团队受益
✅ 知识卡片通过 Git 同步(.qoder/repowiki/ 目录提交到仓库)
✅ 支持多语言(中文/英文自动分区)Rules 是 Qoder 的项目级规则系统——通过自然语言告诉 AI 你的编码规范和项目约定,让 AI 的输出始终符合团队标准。[citation:30]
项目根目录/
└── .qoder/
└── rules/
├── global.md ← 全局规则(始终生效)
├── product.md ← 产品/业务背景
├── structure.md ← 项目结构与分层约定
├── tech.md ← 技术栈与工具链
├── frontend.md ← 前端专项规则
├── backend.md ← 后端专项规则
└── testing.md ← 测试相关规则| 类型 | 说明 | 适用场景 |
|---|---|---|
| 始终生效 | 所有对话和编辑都自动应用 | 编码风格、文档格式 |
| 模型决策 | AI 自动判断是否应用 | 场景化任务(如生成测试) |
| 手动引入 | 用 @rule 手动引用 | 按需工作流 |
| 指定文件生效 | 匹配通配符的文件自动应用 | 语言/目录特定规则 |
---
trigger: always-active
severity: error
description: 全局编码规范,所有生成代码必须遵守
---
class=class="hl-string">"hl-comment"># 全局编码规范
class=class="hl-string">"hl-comment">## 代码风格
- 所有代码必须包含有意义的注释
- 函数长度不超过 50 行
- 圈复杂度不超过 10
- 禁止使用魔法数字,必须定义为常量
class=class="hl-string">"hl-comment">## 安全要求
- 所有 SQL 必须使用参数化查询,禁止字符串拼接
- 所有用户输入必须进行校验和转义
- 密码必须使用 bcrypt 哈希,禁止明文存储
- API 必须包含身份认证和权限校验
class=class="hl-string">"hl-comment">## 错误处理
- 所有异步操作必须有 try-catch
- 所有错误必须记录日志(包含堆栈信息)
- 禁止吞掉异常(empty catch block)
class=class="hl-string">"hl-comment">## 提交规范
- Commit message 使用 Conventional Commits 格式
- 每个 commit 只做一件事---
trigger: model-decision
description: 产品背景信息,帮助 AI 理解业务上下文
---
class=class="hl-string">"hl-comment"># 产品概述
这是一个面向中小企业的 SaaS 项目管理平台。
class=class="hl-string">"hl-comment">## 核心业务域
- **项目管理**:创建、分配、跟踪项目进度
- **团队协作**:成员管理、权限控制、消息通知
- **时间追踪**:工时记录、报表统计
- **文件管理**:项目文档上传、版本控制
class=class="hl-string">"hl-comment">## 关键业务规则
- 一个项目可以有多个成员,一个成员可以属于多个项目
- 只有项目管理员可以删除项目
- 工时记录一旦提交不可修改(只能追加备注)
- 所有操作必须记录审计日志
class=class="hl-string">"hl-comment">## 目标用户
- 中小企业主(10-200 人规模)
- 项目经理 / 团队负责人
- 开发者和设计师---
trigger: model-decision
description: 项目目录结构和分层约定
---
class=class="hl-string">"hl-comment"># 项目结构约定
class=class="hl-string">"hl-comment">## 后端分层(Java Spring Boot)
| 层级 | 包名 | 职责 |
|------|------|------|
| Controller | com.example.controller | HTTP 接口层 |
| Service | com.example.service | 业务逻辑层 |
| Repository | com.example.repository | 数据访问层 |
| Model/DTO | com.example.model | 数据模型 |
| Config | com.example.config | 配置类 |
| Common | com.example.common | 工具类和公共组件 |
class=class="hl-string">"hl-comment">## 前端分层(Vue 3)
| 目录 | 职责 |
|------|------|
| src/views/ | 页面组件 |
| src/components/ | 可复用组件 |
| src/stores/ | Pinia 状态管理 |
| src/api/ | API 请求封装 |
| src/utils/ | 工具函数 |
| src/types/ | TypeScript 类型定义 |
class=class="hl-string">"hl-comment">## 命名规范
- API 路径:/api/v{版本号}/{资源名}
- 数据库表:snake_case,复数形式
- 前端组件:PascalCase
- CSS 类名:BEM 规范---
trigger: file-specific
files: [class="hl-string">"srcclass="hl-commentclass="hl-string">">/**/*.tsx", class="hl-string">"srcclass="hl-commentclass="hl-string">">/**/*.vue"]
description: 前端代码生成规则
---
class=class="hl-string">"hl-comment"># 前端编码规则
class=class="hl-string">"hl-comment">## React / Vue 通用
- 必须使用 TypeScript 严格模式
- Props 必须定义明确的 interface/type
- 禁止使用 any,必须使用 unknown + 类型守卫
- 所有异步操作必须有错误边界处理
class=class="hl-string">"hl-comment">## Vue 3 专项
- 优先使用 Composition API(