VS Code + Claude Code + DeepSeek + Docker
适用于 Windows 11 + WSL2 Debian 13 (Bookworm)
一、整体架构概览
┌─────────────────────────────────────────────────────────────────┐
│ Windows 11 宿主机 │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ VS Code IDE │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ Claude Code 插件 + Claude CLI │ │ │
│ │ │ · 通过环境变量接入 DeepSeek API │ │ │
│ │ │ · 加载 .claude/settings.json 开发准则 │ │ │
│ │ │ · 1M 超长上下文窗口 │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ └─────────────────────────┬───────────────────────────────┘ │
│ │ WSL2 挂载 │
│ ┌─────────────────────────▼───────────────────────────────┐ │
│ │ WSL2 Debian 13 (开发环境) │ │
│ │ · Python 3.12 + 虚拟环境 │ │
│ │ · Docker Engine (容器运行时) │ │
│ │ · 项目源代码 (/home/nerubian/workspace/novel-tool) │ │
│ └─────────────────────────┬───────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────▼───────────────────────────────┐ │
│ │ Docker 镜像构建 (生产就绪) │ │
│ │ · python:3.12-slim 基础镜像 │ │
│ │ · FastAPI + Uvicorn 应用 │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
二、分步构建流程
步骤 1:Windows 11 准备工作
1.1 启用 WSL2
# 以管理员身份运行 PowerShell
wsl --install
wsl --set-default-version 2
1.2 安装 Debian WSL2 发行版
# 在 Microsoft Store 搜索 "Debian" 安装,或通过命令行
wsl --install -d Debian
1.3 在 Windows 宿主机安装 VS Code
# 方式一:官网下载
# 访问 https://code.visualstudio.com/ 下载 Windows 版本安装包
# 方式二:使用 winget 安装
winget install Microsoft.VisualStudioCode
安装 VS Code 的 WSL 扩展:
- 打开 VS Code → 扩展商店 → 搜索 "WSL" → 安装 "WSL" 扩展(Microsoft 官方)
- 后续可通过
code .在 WSL2 Debian 中直接启动 VS Code
# 首先确认您的 Windows 用户名(在 Windows PowerShell 中执行 whoami 或查看 C:\Users\ 下的目录名)
# 假设您的用户名是 nerubian,则执行:
echo 'alias code="/mnt/c/Users/nerubian/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code"' >> ~/.bashrc
source ~/.bashrc
# 然后再次尝试:
code .
步骤 2:WSL2 Debian 开发环境配置
操作位置:在 WSL2 Debian 终端中执行以下命令
2.1 系统更新与基础工具
首先配置国内镜像源(清华镜像):
sudo tee /etc/apt/sources.list << 'EOF'
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware
EOF
然后更新系统并安装基础工具:
sudo apt update && sudo apt upgrade -y
sudo apt install -y \
curl wget git vim htop \
build-essential libssl-dev \
python3 python3-pip python3-venv \
postgresql-client \
ca-certificates gnupg lsb-release
其他设置
echo "alias ll='ls -alF'" >> ~/.bashrc
source ~/.bashrc
ll
2.2 安装和配置 SSH 服务
步骤 1:安装 OpenSSH Server
sudo apt install -y openssh-server
步骤 2:修改 SSH 配置
sudo nano /etc/ssh/sshd_config
找到并修改以下配置项(如果没有就添加):
Port 2222 # 避免与 Windows 已有 SSH 冲突
PermitRootLogin no
PasswordAuthentication yes
PubkeyAuthentication yes
ClientAliveInterval 60
ClientAliveCountMax 3
保存并退出(Ctrl+O,回车,Ctrl+X)。
步骤 3:启动 SSH 服务
sudo service ssh start
sudo service ssh status
步骤 4:设置 SSH 服务开机自启
echo "sudo service ssh start" >> ~/.bashrc
步骤 5:配置防火墙(Windows 宿主机)
在 Windows PowerShell(管理员)中执行:
New-NetFirewallRule -Name "WSL2-SSH" -DisplayName "WSL2 SSH (Port 2222)" -Protocol TCP -LocalPort 2222 -Action Allow
2.3 解决中文乱码问题
sudo apt install -y locales
sudo locale-gen zh_CN.UTF-8
清理并重新配置 locale:
sed -i '/LC_/d' ~/.bashrc
sed -i '/LANG=/d' ~/.bashrc
cat >> ~/.bashrc << 'EOF'
# Locale settings
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
export LC_CTYPE=en_US.UTF-8
EOF
source ~/.bashrc
验证:
locale
echo "中文测试"
2.4 安装 Docker Engine(核心容器运行时)
注意:Debian 13 (Trixie) 官方源中 Docker 尚未完全支持,需使用 Bookworm 源安装。
步骤 1:添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 如果 curl 失败,使用 wget
sudo wget -O /etc/apt/keyrings/docker.gpg https://download.docker.com/linux/debian/gpg
# 确认文件存在
ls -l /etc/apt/keyrings/docker.gpg
步骤 2:添加 Docker 官方源(使用 Bookworm)
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
步骤 3:安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin
步骤 4:安装 Docker Compose 插件
sudo apt install -y docker-compose-plugin
# 或
sudo apt install -y docker-compose
步骤 5:将当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USER
步骤 6:退出并重新进入 WSL(使组权限生效)
exit
wsl -d Debian
步骤 7:验证安装
docker --version
docker compose version
docker run hello-world
步骤 8:配置 Docker 国内镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.tuna.tsinghua.edu.cn",
"https://mirror.ccs.tencentyun.com"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
sudo service docker restart
步骤 9:设置 Docker 开机自启
echo "sudo service docker start" >> ~/.bashrc
source ~/.bashrc
2.5 安装 Node.js(Claude Code 依赖)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node --version # 验证安装
2.6 安装 Claude Code
npm install -g @anthropic-ai/claude-code
claude --version # 验证安装
2.7 创建项目目录
mkdir -p ~/workspace/novel-tool
cd ~/workspace/novel-tool
2.8 配置 Python 虚拟环境
python3 -m venv .venv # 创建虚拟环境
source .venv/bin/activate # 激活虚拟环境(关键步骤)
pip install --upgrade pip
2.9 创建项目依赖文件 requirements-dev.txt
cat > requirements-dev.txt << 'EOF'
# 核心框架
fastapi==0.115.12
uvicorn[standard]==0.34.2
pydantic==2.10.6
pydantic-settings==2.7.0
# 数据库
asyncpg==0.30.0
psycopg2-binary==2.9.10
sqlalchemy==2.0.39
# AI/LLM
langgraph==0.3.31
langgraph-checkpoint-postgres==2.0.21
instructor==1.7.2
openai==1.65.2
# 工具
python-dotenv==1.0.1
httpx==0.28.1
tenacity==9.0.0
# 开发调试
pytest==8.3.5
pytest-asyncio==0.25.3
pytest-cov==6.0.0
black==25.1.0
ruff==0.9.7
mypy==1.15.0
# 前端管理面板
streamlit==1.42.0
# 文本解析
unstructured==0.16.20
EOF
pip install -r requirements-dev.txt
步骤 3:配置 VS Code + Claude Code + DeepSeek
3.1 在 WSL2 中启动 VS Code
# 在 WSL2 Debian 终端中,进入项目目录后执行
cd ~/workspace/novel-tool
code .
说明:此命令会自动安装 VS Code Server 到 WSL2,并将 VS Code 附加到当前 WSL2 环境。之后所有的终端操作和文件访问都在 WSL2 中进行。
3.2 配置 DeepSeek API(获取密钥)
- 访问 DeepSeek 平台官网注册账号
- 进入 API 管理 → 创建 API Key
- 充值少量金额(建议 10-20 元起步)
- 记录 API Key:
- DeepSeek API 兼容 Anthropic 协议端点:
https://api.deepseek.com/anthropic - 模型名:
deepseek-v4-pro[1m](复杂任务)或deepseek-v4-flash(常规任务)
- DeepSeek API 兼容 Anthropic 协议端点:
注意:DeepSeek V4 支持 1M 超长上下文,通过
[1m]后缀启用,这对 Claude Code 处理大型项目至关重要。
3.3 配置 Claude Code 环境变量
方式一:在 WSL2 终端中设置(临时)
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="你的 DeepSeek API Key"
export ANTHROPIC_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"
方式二:永久配置(推荐)
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="你的 DeepSeek API Key"
export ANTHROPIC_MODEL="deepseek-v4-flash"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"
# 将以下内容添加到 ~/.bashrc
echo 'export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"' >> ~/.bashrc
echo 'export ANTHROPIC_AUTH_TOKEN="你的 DeepSeek API Key"' >> ~/.bashrc
echo 'export ANTHROPIC_MODEL="deepseek-v4-pro[1m]"' >> ~/.bashrc
echo 'export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]"' >> ~/.bashrc
echo 'export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]"' >> ~/.bashrc
echo 'export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"' >> ~/.bashrc
echo 'export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"' >> ~/.bashrc
source ~/.bashrc
3.4 在 VS Code 中安装 Claude Code 插件
- 打开 VS Code(已附加到 WSL2)
- 进入扩展商店(Ctrl+Shift+X)
- 搜索 "Claude Code for VS Code" → 安装官方插件
插件配置:Claude Code 插件会自动读取 WSL2 终端中的环境变量,无需额外配置。
3.5 创建项目开发准则文件 .claude/settings.json
操作:在项目根目录创建 .claude/ 目录和 settings.json 文件。
mkdir -p .claude
// .claude/settings.json
{
"projectName": "novel-tool",
"description": "小说创作工业化平台 - AI驱动开发",
"rules": {
"taskOrder": "strict",
"tddRequired": true,
"failFast": true,
"maxRetries": 3
},
"codeStandards": {
"python": {
"docstringStyle": "google",
"typeAnnotations": "required",
"lineLength": 100,
"formatter": "black",
"linter": "ruff",
"typeChecker": "mypy --strict"
}
},
"context": {
"maxTokens": 1000000,
"includeFiles": [
"src/**/*.py",
"tests/**/*.py",
"scripts/**/*.sh",
"docker-compose.yml",
"Dockerfile"
],
"excludeFiles": [
".venv/**",
"data/**",
"**/*.pyc",
"**/__pycache__/**"
]
},
"modelStrategy": {
"default": "deepseek-v4-flash",
"complex": "deepseek-v4-pro[1m]",
"subagent": "deepseek-v4-flash"
},
"testing": {
"framework": "pytest",
"command": "pytest tests/ -v --tb=short",
"coverageRequired": 80
},
"versionControl": {
"autoCommit": false,
"commitMessageTemplate": "Phase {phase} Task {task}: {description}"
}
}
3.6 创建项目记忆文件 CLAUDE.md
Claude Code 会自动识别项目根目录下的 CLAUDE.md 作为项目记忆文件。
cat > CLAUDE.md << 'EOF'
# CLAUDE.md
本文件是 novel-tool(小说创作工业化平台)项目的开发准则,Claude Code 会自动加载并严格遵循。
## 项目概述
面向专业网文作者、同人创作者与影视改编团队的 AI 辅助写作与分镜输出系统。
## 核心技术栈(严格遵守)
- 语言: Python 3.13(实际 3.13.5)
- Web框架: FastAPI 0.115+
- 智能体编排: LangGraph 0.3+(PostgresSaver 检查点)
- 数据库: PostgreSQL 16 + pgvector(Schema 由 Alembic 唯一管理)
- 图谱实现: WITH RECURSIVE CTE(不使用 Neo4j)
- 任务队列: PostgreSQL FOR UPDATE SKIP LOCKED(不使用 Redis)
- 容器: Docker 29.x(实际 29.7.2)
- 前端管理: Streamlit 1.42+
## 模型与接入
- 常规任务用 Flash 模型(deepseek-v4-flash),复杂任务用 Pro 模型(deepseek-v4-pro)
- 1M 超长上下文可用 deepseek-v4-pro[1m]([1m] 后缀以官方文档为准)
## 开发流程强制规则
1. 按 Phase 0 ~ 7 顺序执行,严禁跳跃;每个 Task 完成后运行验收测试,全部 PASS 才推进
2. 测试驱动;同一 Task 失败 3 次停止
3. 每次完成任务后更新 PROGRESS.md
## 代码硬性约束
- docstring(Google 风格)+ 完整类型注解(mypy --strict)
- 行长度 ≤ 100(ruff)
- 所有数据库查询带 user_id 过滤
- 所有外部调用超时熔断;进入 LLM 的外部文本经 PromptGuard 防注入
- 软删除用 deleted_at + 部分唯一索引;Schema 只走 Alembic
> 完整准则见仓库根目录 CLAUDE.md(含目录结构、20 张表清单、常用命令)。
EOF
3.7 创建进度跟踪文件 PROGRESS.md
cat > PROGRESS.md << 'EOF'
# 开发进度跟踪
## 当前状态
- 当前阶段: Phase 0(未开始)
- 当前任务: 无
- 整体进度: 0%
## Phase 0:基础设施与测试脚手架(6 个 Task)
- [ ] Task 0.1 创建项目目录结构
- [ ] Task 0.2 编写 docker-compose.yml
- [ ] Task 0.3 初始化 Alembic
- [ ] Task 0.4 编写 init-db.sql + 首个迁移(20 张表)
- [ ] Task 0.5 编写 tests/conftest.py
- [ ] Task 0.6 环境连通性测试
## Phase 1:核心领域模型与数据访问层(8 个 Task)
- [ ] Task 1.1 领域实体类
- [ ] Task 1.2 用户认证(JWT + API Key 生命周期)
- [ ] Task 1.3 PGRepository
- [ ] Task 1.4 GraphRepository(递归 CTE + SQL path 环检测)
- [ ] Task 1.5 TaskQueue(SKIP LOCKED + 延迟重试)
- [ ] Task 1.6 ChapterRepository + ContentRepository
- [ ] Task 1.7 资产/文件/向量仓储 + 连接池
- [ ] Task 1.8 Phase 1 验收测试
## Phase 2:逆向抽取引擎(8 个 Task)
- [ ] Task 2.1 DocumentLoader(路径沙箱 + PromptGuard 原文隔离)
- [ ] Task 2.2 抽取结果 Schema
- [ ] Task 2.3 _ner_node
- [ ] Task 2.4 _llm_node(Instructor + partial 降级)
- [ ] Task 2.5 _conflict_node
- [ ] Task 2.6 抽取指纹去重
- [ ] Task 2.7 批量图谱写入(executemany/unnest)
- [ ] Task 2.8 Phase 2 验收测试
## Phase 3:强制遵循编译器(3 个 Task)
- [ ] Task 3.1 ConstraintFetcher(铁律拉取 + 规则继承)
- [ ] Task 3.2 PromptInjector(三级规则注入)
- [ ] Task 3.3 Phase 3 验收测试
## Phase 4:动态语境适配器(4 个 Task)
- [ ] Task 4.1 CultureFilter(Trie + pgvector 语义)
- [ ] Task 4.2 MentalRouter(含逻辑深度阈值)
- [ ] Task 4.3 DynamicAdapter
- [ ] Task 4.4 Phase 4 验收测试
## Phase 5:LangGraph 主流程编排(11 个 Task)
- [ ] Task 5.1 WritingState(仅 draft_id,无全文)
- [ ] Task 5.2 AuditService(LLM 批量语义判定)
- [ ] Task 5.3 _fetch_context_node
- [ ] Task 5.4 _apply_constraints_node
- [ ] Task 5.5 _generate_draft_node(存 chapter_contents)
- [ ] Task 5.6 _audit_draft_node + 路由
- [ ] Task 5.7 _interrupt_node + 检查点(PostgresSaver.setup)
- [ ] Task 5.8 FastAPI 端点(含 upload + 实体 CRUD)
- [ ] Task 5.9 结构化日志
- [ ] Task 5.10 健康检查
- [ ] Task 5.11 Phase 5 验收测试
## Phase 6:Streamlit 管理面板(7 个 Task)
- [ ] Task 6.1 面板框架(含登录鉴权)
- [ ] Task 6.2 工单列表
- [ ] Task 6.3 Accept/Reject/Edit
- [ ] Task 6.4 图谱边同步
- [ ] Task 6.5 孤儿引用 + 归档清理
- [ ] Task 6.6 Phase 6 验收测试
- [ ] Task 6.7 一键回归脚本(37 用例)
## Phase 7:视频桥接层(5 个 Task)
- [ ] Task 7.1 StoryboardCompiler
- [ ] Task 7.2 AssetSyncService
- [ ] Task 7.3 VideoGenerationTaskService(HMAC 验签)
- [ ] Task 7.4 视频桥接 API 端点
- [ ] Task 7.5 Phase 7 验收测试
## 回归测试
- [ ] 37 个回归用例全部通过
## 开发日志
| 日期 | 任务 | 状态 | 备注 |
|:---|:---|:---|:---|
| - | - | - | 待开始 |
EOF
3.8 配置 VS Code 设置(保证开发质量)
在项目根目录创建 .vscode/settings.json:
{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"python.terminal.activateEnvironment": true,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
},
"python.linting.mypyEnabled": true,
"python.linting.mypyArgs": ["--strict"],
"python.linting.ruffEnabled": true,
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
},
"black-formatter.args": ["--line-length", "100"],
"ruff.args": ["--line-length", "100"],
"claude-code.autoStart": true,
"claude-code.model": "deepseek-v4-pro[1m]"
}
步骤 4:Docker 容器化构建
4.1 创建 Dockerfile
# 基于 Debian Slim 镜像(稳定优先)
FROM python:3.13-slim
# 设置工作目录
WORKDIR /app
# 安装系统依赖
RUN apt-get update && apt-get install -y \
gcc \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*
# 复制依赖文件并安装 Python 包
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 复制应用代码
COPY src/ ./src/
COPY app/ ./app/
# 创建非 root 用户
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
USER appuser
# 暴露端口
EXPOSE 8000
# 启动命令(使用 Uvicorn)
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]
4.2 创建 docker-compose.yml
version: '3.8'
services:
postgres:
image: pgvector/pgvector:pg16
container_name: novel-postgres
environment:
POSTGRES_USER: novel
POSTGRES_PASSWORD: novel123
POSTGRES_DB: novel
ports:
- "5432:5432"
volumes:
- pg_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U novel"]
interval: 10s
timeout: 5s
retries: 5
app:
build: .
container_name: novel-app
environment:
DATABASE_URL: postgresql://novel:novel123@postgres:5432/novel
DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY}
DEEPSEEK_BASE_URL: https://api.deepseek.com/v1
ports:
- "8000:8000"
depends_on:
postgres:
condition: service_healthy
volumes:
- ./src:/app/src
command: uvicorn src.main:app --host 0.0.0.0 --port 8000 --reload
streamlit:
build: .
container_name: novel-streamlit
environment:
DATABASE_URL: postgresql://novel:novel123@postgres:5432/novel
ports:
- "8501:8501"
depends_on:
postgres:
condition: service_healthy
command: streamlit run app/management.py --server.port 8501 --server.address 0.0.0.0
volumes:
pg_data:
4.3 创建 .env.example
cat > .env.example << 'EOF'
# DeepSeek API(必填)
DEEPSEEK_API_KEY=your-api-key-here
# 数据库配置
POSTGRES_USER=novel
POSTGRES_PASSWORD=novel123
POSTGRES_DB=novel
DATABASE_URL=postgresql://novel:novel123@postgres:5432/novel
# 应用配置(生产必须替换 SECRET_KEY)
APP_PORT=8000
STREAMLIT_PORT=8501
SECRET_KEY=change_me_generate_random
JWT_EXPIRE_MINUTES=1440
# 模型配置(模型名以 DeepSeek 官方为准)
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
DEEPSEEK_FLASH_MODEL=deepseek-v4-flash
DEEPSEEK_PRO_MODEL=deepseek-v4-pro
# Embedding 向量模型(pgvector 语义检测)
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIM=1536
# LLM 并发限流
LLM_MAX_CONCURRENCY=10
LLM_RATE_LIMIT_PER_MIN=60
# 视频回调验签
WEBHOOK_SECRET=change_me_generate_random
# Claude Code 接入(开发环境)
ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
ANTHROPIC_AUTH_TOKEN=${DEEPSEEK_API_KEY}
EOF
4.4 生产环境构建命令(在 WSL2 Debian 中执行)
# 构建镜像
docker compose build
# 启动所有服务
docker compose up -d
# 查看日志
docker compose logs -f
# 停止服务
docker compose down
步骤 5:AI 协作工作流(Claude Code 特色)
5.1 Claude Code 的 MCP 扩展(可选但推荐)
Claude Code 支持 MCP(Model Context Protocol),可以扩展以下能力:
# 安装 Claude Code 的 MCP 扩展
claude mcp add github # GitHub 集成
claude mcp add filesystem # 文件系统操作
claude mcp add postgres # 数据库查询
推荐 MCP 扩展:
github:让 Claude Code 能读取 Issue、PR 等上下文filesystem:让 Claude Code 能直接读写项目文件(已有)lightrag:如果项目需要 RAG 能力
5.2 API 选择策略(Claude Code 中)
Claude Code 通过环境变量配置模型,模型选择通过环境变量实现:
| 场景 | 推荐模型 | 环境变量 |
|---|---|---|
| 代码生成(常规) | DeepSeek-V4-Flash | ANTHROPIC_DEFAULT_HAIKU_MODEL |
| 代码生成(复杂逻辑) | DeepSeek-V4-Pro[1m] | ANTHROPIC_DEFAULT_OPUS_MODEL |
| 设定蒸馏/抽取 | DeepSeek-V4-Flash | 子任务自动使用 CLAUDE_CODE_SUBAGENT_MODEL |
| 架构决策/设计 | DeepSeek-V4-Pro[1m] | 手动切换 ANTHROPIC_MODEL |
切换模型命令:
# 在 Claude Code 对话中切换
/model deepseek-v4-flash
/model deepseek-v4-pro[1m]
5.3 Claude Code 初始化指令
在 VS Code 中打开 Claude Code 插件,或直接在终端运行 claude,然后输入:
【项目启动】
项目名称:novel-tool(开发代号)
开发语言:Python 3.13
框架:FastAPI 0.115+ + LangGraph 0.3+
数据库:PostgreSQL 16 + pgvector
LLM:DeepSeek-V4-Flash(常规)/ DeepSeek-V4-Pro[1m](复杂)
我已阅读并理解项目的 CLAUDE.md 、 .claude/settings.json 小说创作工业化平台 - 合并开发文档(AI执行版 v6.0).md。
执行规则:
1. 从 Phase 0 Task 0.1 开始,严格按顺序执行
2. 每个 Task 完成后运行验收测试,全部 PASS 才能继续
3. 测试失败时先修复,不跳过
4. 常规任务用 Flash,复杂任务用 Pro[1m]
5. 所有代码必须有 docstring + 完整类型注解
6. 所有数据库查询必须带 user_id 过滤
7. 维护 PROGRESS.md 记录进度
8. 同一 Task 失败 3 次停止,请求人工介入
确认以上规则,开始执行 Phase 0 Task 0.1。
步骤 6:日常开发工作流
6.1 每日开发流程
┌─────────────────────────────────────────────────────────────┐
│ 每日开发循环 │
│ │
│ 1. 启动 WSL2 并进入项目 │
│ wsl │
│ cd ~/workspace/novel-tool │
│ source .venv/bin/activate │
│ │
│ 2. 启动容器 │
│ docker compose up -d │
│ │
│ 3. 在 VS Code 中打开项目 │
│ code . │
│ │
│ 4. 打开 Claude Code 插件 │
│ → 自动加载 CLAUDE.md + settings.json │
│ │
│ 5. 向 Claude Code 发送当前 Task 指令 │
│ "执行 Phase X Task Y" │
│ │
│ 6. AI 生成代码 + 人工 Code Review │
│ │
│ 7. 运行验收测试 │
│ pytest tests/phase_X/ -v │
│ │
│ 8. 测试结果判断 │
│ ├─ PASS → 更新 PROGRESS.md → 进入下一 Task │
│ └─ FAIL → Claude Code 自动修复 → 重新测试 │
│ │
│ 9. 提交代码 │
│ git add . && git commit -m "Phase X Task Y: ..." │
│ │
│ 10. 结束工作 │
│ docker compose down │
└─────────────────────────────────────────────────────────────┘
6.2 Claude Code 常用命令
| 命令 | 作用 |
|---|---|
claude | 启动交互式会话 |
claude "指令" | 单次执行指令 |
/model deepseek-v4-pro[1m] | 切换模型 |
/help | 查看帮助 |
/clear | 清空上下文 |
/status | 查看任务状态 |
claude --continue | 继续上次会话 |
步骤 7:IDE 设置固化
7.1 VS Code 推荐设置
| 设置项 | 推荐值 | 目的 |
|---|---|---|
| 自动保存 | onFocusChange | 防止丢失代码 |
| 缩进 | 4 空格 | Python 标准 |
| 行尾序列 | LF | Linux 兼容 |
| 默认换行符 | \n | 跨平台兼容 |
| 终端集成 | WSL2 Debian | 确保在 WSL2 中运行 |
7.2 推荐的 VS Code 扩展
| 扩展 | 用途 | 必要性 |
|---|---|---|
| Claude Code | AI 编程助手(核心) | 必装 |
| WSL | WSL2 集成 | 必装 |
| Python | Python 语言支持 | 必装 |
| Pylance | Python 类型检查 | 必装 |
| Black Formatter | 代码格式化 | 必装 |
| Ruff | Python Linter | 必装 |
| Mypy | 类型检查器 | 推荐 |
| GitLens | Git 历史查看 | 可选 |
| Docker | Docker 容器管理 | 可选 |
| PostgreSQL | 数据库管理 | 可选 |
7.3 Git 钩子(自动测试拦截)
# .git/hooks/pre-commit
# 提交前自动运行测试
pytest tests/ -v --maxfail=1
if [ $? -ne 0 ]; then
echo "❌ 测试失败,提交被阻止"
exit 1
fi
步骤 8:部署到云服务器
8.1 镜像导出与导入
# 在开发机(WSL2)导出镜像
docker save -o novel-app.tar novel-app:latest
docker save -o novel-streamlit.tar novel-streamlit:latest
docker save -o novel-postgres.tar pgvector/pgvector:pg16
# 在云服务器(Ubuntu 22.04)导入镜像
docker load -i novel-app.tar
docker load -i novel-streamlit.tar
docker load -i novel-postgres.tar
# 使用 docker-compose.yml 启动
docker-compose up -d
8.2 服务器最低配置
- CPU: 2 核
- 内存: 4 GB(推荐 8 GB)
- 硬盘: 40 GB SSD
- 系统: Ubuntu 22.04 LTS
- 月成本: 约 100-200 元
步骤 9:成本估算总览
| 项目 | 费用 | 说明 |
|---|---|---|
| Windows 11 | 已有 | 无需额外购买 |
| VS Code | ¥0 | 完全开源免费 |
| Claude Code | ¥0 | npm 全局安装,无许可费 |
| Docker Engine | ¥0 | 开源免费(个人使用) |
| WSL2 Debian | ¥0 | 系统免费 |
| DeepSeek API | 约 ¥15-30/月 | 按量付费,开发阶段消耗 |
| 云服务器(生产) | 约 ¥100-200/月 | 可选,开发阶段可用本地 |
| 月度总成本(开发) | 约 ¥15-30 | 主要是 API 费用 |
| 月度总成本(生产部署) | 约 ¥115-230 | 含云服务器 |
步骤 10:VS Code + Claude Code vs Trae 对比总结
| 对比维度 | VS Code + Claude Code + DeepSeek | Trae + Cline + DeepSeek |
|---|---|---|
| AI 上下文窗口 | 1M tokens | 视模型而定(通常 128K) |
| 代码理解能力 | 全项目级理解 | 单文件/上下文窗口内 |
| 任务执行能力 | 可自主规划多步骤任务 | 需人工分步引导 |
| MCP 扩展 | 原生支持 | 有限支持 |
| 开发体验 | 图形化 + 终端混合 | 图形化为主 |
| 学习曲线 | 中等(需熟悉终端交互) | 低(IDE 原生体验) |
| 配置复杂度 | 中等(环境变量 + JSON) | 低(图形界面配置) |
| 模型切换 | 命令切换 | 下拉菜单切换 |
| 适用场景 | 复杂项目、长上下文任务 | 常规 AI 辅助编码 |
三、快速启动清单
☐ 1. Windows 11 启用 WSL2
☐ 2. 安装 Debian WSL2
☐ 3. 安装 VS Code + WSL 扩展
☐ 4. 在 WSL2 Debian 中安装 Node.js + Claude Code
☐ 5. 安装 Docker Engine(WSL2 内)
☐ 6. 在 WSL2 中创建项目目录
☐ 7. 创建 Python 虚拟环境并安装依赖
☐ 8. 注册 DeepSeek 平台并获取 API Key
☐ 9. 配置 Claude Code 环境变量(~/.bashrc)
☐ 10. 在项目根目录创建 .claude/settings.json
☐ 11. 创建 CLAUDE.md(项目记忆)
☐ 12. 创建 PROGRESS.md(进度跟踪)
☐ 13. 创建 Dockerfile 和 docker-compose.yml
☐ 14. 在 VS Code 中安装 Claude Code 插件
☐ 15. 在 VS Code 中打开项目(code .)
☐ 16. 打开 Claude Code 插件,输入初始化指令
☐ 17. 开始 Phase 0 Task 0.1
四、常见问题排查
Q1:Claude Code 无法连接 DeepSeek API
# 检查环境变量是否生效
echo $ANTHROPIC_BASE_URL
echo $ANTHROPIC_AUTH_TOKEN
# 测试 API 连通性
curl -X POST $ANTHROPIC_BASE_URL/v1/messages \
-H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"deepseek-v4-flash","max_tokens":10,"messages":[{"role":"user","content":"ping"}]}'
Q2:WSL2 中 Docker 无法启动
# 检查 Docker 服务状态
sudo service docker status
# 启动 Docker
sudo service docker start
# 若 WSL2 内 systemd 未启用,可启用 systemd 或用 sudo dockerd 启动
Q3:VS Code 无法连接到 WSL2
# 在 WSL2 中重新安装 VS Code Server
code --install-extension ms-vscode-remote.remote-wsl
# 或在 VS Code 中执行 "Remote-WSL: Reopen in WSL"