第4部分。环境配置
SDD不依赖于IDE:该过程可以在任何能够处理文件和shell命令的环境中进行。在本教程中,主要工具是Qwen Code CLI。它在仓库内的终端中运行,处理文件、shell命令、项目设置、技能和MCP。
终端窗口
最好至少保留两个窗口(或两个tmux标签页/面板):
- Qwen Code窗口。 其中
qwen以交互模式运行;您与代理通信,阅读其报告。 - 检查窗口。 在其中手动运行
git status、git diff、npm run typecheck、npm test、curl。此窗口用于复核代理的输出,而不是盲目相信它。
通过Qwen Code内的!命令在同一会话中启动shell,这对快速检查很方便。但关于合并和提交的决策,请在单独的检查窗口中做出,那里不可能有任何代理的副作用操作。
安装Qwen Code
安装前请查看最新文档。在准备这些材料时,官方仓库指出手动安装需要Node.js 22+。
通过npm安装:
npm install -g @qwen-code/qwen-code@latest
qwen --version
通过Homebrew安装:
brew install qwen-code
qwen --version
Qwen Cloud还为阿里云/百炼用户发布安装脚本。仅当此分发渠道适合您时使用,并将实际标志与Qwen Code仓库的README核对——以下调用可能已过时:
bash -c "$(curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen.sh)"
认证
截至2026年5月,Qwen OAuth免费套餐不再是可靠选项:Qwen Code官方材料称免费套餐已于2026年4月15日停止。实用的途径是API密钥或阿里云Coding套餐。
交互式设置:
qwen
/auth
或通过单独命令:
qwen auth
qwen auth status
不要将密钥放在QWEN.md、AGENTS.md、规范或Git中。使用环境变量或引用它们的.qwen/settings.json。
最小化.qwen/settings.json
创建项目配置:
mkdir -p .qwen
无密钥的示例:
{
"security": {
"auth": {
"selectedType": "openai"
}
},
"model": {
"name": "qwen3-coder-plus"
},
"$version": 3
}
如果使用OpenAI兼容端点,将密钥保存在环境变量中:
export BAILIAN_API_KEY="..."
并在设置中引用该变量:
{
"env": {
"BAILIAN_API_KEY": "$BAILIAN_API_KEY"
},
"modelProviders": {
"openai": [
{
"id": "qwen3-coder-plus",
"name": "qwen3-coder-plus",
"baseUrl": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
"envKey": "BAILIAN_API_KEY"
}
]
},
"security": {
"auth": {
"selectedType": "openai"
}
},
"model": {
"name": "qwen3-coder-plus"
},
"$version": 3
}
QWEN.md作为项目的持久记忆
Qwen Code在会话启动时读取QWEN.md。如果项目中已有AGENTS.md,Qwen也可以使用它,因此不要重复相同内容。对于SDD,方便的做法是让QWEN.md保持简短,并引用规范。
示例:
# QWEN.md
本项目使用SDD。
规则:
- 在功能没有规范之前,不要实现产品功能。
- 产品真相来源:@specs/mission.md、@specs/tech-stack.md和@specs/roadmap.md。
- 每个功能分支需要一个文件夹@specs/YYYY-MM-DD-feature-name/,包含requirements.md、plan.md和validation.md。
- 在写入新规范文件之前,询问人类关于边界、决策和上下文。
- 只进行针对性修改。不要重构无关代码。
- 始终报告修改了哪些文件以及运行了哪些验证命令。
主要命令:
- npm run typecheck
- npm test
- npm run dev
SDD所需的Qwen Code命令
在交互式会话中:
/help
/auth
/model
/clear
/context
/compress
/summary
/resume
/stats
/skills
/memory
/init
/remember
/forget
/dream
/review
/remember、/forget和/dream属于Qwen Code的内置记忆,在第19部分中详细讨论。/review是内置的变更审查(如果您的版本支持)。完整列表和确切语义请与文档核对:https://qwenlm.github.io/qwen-code-docs/en/users/features/commands/。
文件操作:
@README.md 简要描述项目意图。
@specs/roadmap.md 下一个未完成的阶段是什么?
Shell命令:
!git status
!npm test
!rg "TODO|FIXME" .
用于自动化的无界面模式:
qwen -p "读取@specs/roadmap.md并说出下一个未完成的阶段。不要修改文件。"
实践
- 安装Qwen Code。
- 配置认证。
- 在学习项目中创建
.qwen/settings.json。 - 创建
QWEN.md。 - 运行:
qwen
然后输入:
读取@QWEN.md和@README.md。
告诉我这个仓库是否准备好创建SDD章程。
不要写入文件。
检查问题
QWEN.md与specs/mission.md有何不同?- 为什么API密钥不能存储在规范中?
- 何时使用
qwen -p,何时使用交互式qwen?