VS Code + Claude Code + DeepSeek:从零搭建可替换的 AI 编程工作流

VS Code + Claude Code + DeepSeek:从零搭建可替换的 AI 编程工作流 1. 为什么把 VS Code、Claude Code、DeepSeek 拼在一起我接触 AI 编程工具比较早一个很深的感受是大多数人不是被写代码难住的而是被工具选择难住的。VS Code、Claude Code、DeepSeek 这三样刚好是当下一条低成本、高可用、不绑定单一平台的 AI 编程工作流VS Code 负责承载日常开发Claude Code 负责在终端里充当能读整个项目的编程代理DeepSeek 则作为大模型 API 服务提供对话、生成和推理能力。三个角色各管一段互不冲突又能拼成一条完整的需求 → 代码 → 验证链路。这篇文章不预设你已经很熟这套东西从零开始拆适合两类人刚装上 VS Code 想给日常开发加个 AI 助手的小白以及已经用过一些 AI 工具、想理清组合方案的老手。1.1 三件套各自解决什么问题先说角色分工。VS Code 是编辑器解决代码写在哪、怎么看 diff、怎么跑终端、插件生态往哪挂的问题。它本身不含任何 AI 能力但胜在生态够大几乎所有 AI 辅助工具都能在它里面找到位置。Claude Code 是 Anthropic 官方的终端编程代理。它跟网页版对话最大的区别在于它可以直接读取当前目录下的文件、调用 grep 搜索、执行终端命令甚至可以帮你改完代码后跑一遍测试。换句话说它不只是回答问题而是在项目里干活。DeepSeek 是模型服务。它通过 OpenAI 兼容的 API 暴露能力模型分为 deepseek-chat对话/日常生成和 deepseek-reasoner推理/复杂问题两条线。这里的关键词是OpenAI 兼容意味着几乎所有支持自定义接口的 AI 编程插件都能直接把模型源指向 DeepSeek这事非常加分。把三件套放一起你会发现它们没有重叠VS Code 不提供模型Claude Code 不绑定编辑器DeepSeek 不关心前端界面。这正是我喜欢这套组合的原因——每一层都能独立替换不会被一家厂商锁死。1.2 不是三件套一步到位一个很实在的建议别一上来就想把三样全配齐否则很容易在环境配置里消耗掉热情。我实际用过后的顺序是先装 VS Code把常用扩展搞定然后接 DeepSeek API在插件里能对话、能补全就已经能感受到效率提升等你真正遇到让 AI 改一个跨文件重构这类复杂需求时再上 Claude Code。它的学习成本比 VS Code 插件高一点但换来的是更强的项目级理解能力。所以这套组合的核心思路不是三选一而是各取所长日常琐事交给轻量插件重活累活交给代理型工具。下面依次讲清楚每一步怎么做。2. VS Code 环境准备装对、配顺、少踩坑2.1 安装时最容易被忽略的 PATH 选项VS Code 的安装本身不复杂官网下载对应平台的安装包就行但我见过太多人栽在一个细节上Windows 安装时默认不会把 code 命令加进 PATH。如果你打算在终端里用code .打开当前项目后面接 Claude Code 和 AI 插件时这个动作非常高频安装向导里添加到 PATH、通过 code 打开操作菜单文件这两项务必勾上。安装完之后打开任意终端执行code --version能正常输出版本号说明 PATH 没问题。要是提示 command not found两个办法重装一次勾上 PATH或者手动把 VS Code 的bin目录加进系统环境变量。这里我建议直接重装勾选项比手改环境变量省事且不容易出错。在 Windows 上如果你喜欢用命令管理软件也可以走 wingetwinget install Microsoft.VisualStudioCode这样后续升级随时一条命令搞定。2.2 开局插件清单装完编辑器先别急着装一堆花里胡哨的主题我把真正高频使用的插件按梯队列一下你照着装就不会乱中文界面Chinese (Simplified) (简体中文) Language Pack装完重启就有中文菜单。远程开发三件套Remote - SSH、Remote - WSL、Dev Containers。如果你有云服务器或者 Windows 下用 WSL这三个会让本地编辑远端代码的体验和本地几乎一致。AI 插件位先装一个支持自定义 API 地址的 AI 助手就行我常用的是 Cline 和 Continue两者都支持填 Base URL 和 API Key。后面第 3 章会专门讲怎么把 DeepSeek 填进去。语言相关Python / Pylance、Java Extension Pack、C/C、ESLint、Prettier按你的技术栈装不要全装扩展包太多会让编辑器启动变慢。对应热搜里常被问的 wokwi for VS Code这是嵌入式/Arduino 仿真的扩展按需安装即可不属于通用配置。2.3 顺带把 C/C 和 Java 工程环境配明白很多人在热搜里搜VS Code 配置 C 环境、VS Code Qt 5.9 如何配置、VS Code 启动 SpringBoot Java 项目说明到这一步已经不只是写脚本了而是要正经用它做工程。C/C 环境的核心是三件事装编译器、配 tasks.json、配 launch.json。Windows 上先装 MinGW-w64 或者 MSYS2把 gcc 的 bin 目录加进 PATH然后在 VS Code 里建一个.vscode/tasks.json把编译命令写进去{ version: 2.0.0, tasks: [ { label: C/C: gcc build active file, type: cppbuild, command: gcc, args: [-g, ${file}, -o, ${fileDirname}/${fileBasenameNoExtension}.exe], group: build } ] }调试文件 launch.json 再指定 miDebuggerPath 指向 gdbF5 就能断点调试。这套模式对所有语言都成立编译器在外、编辑器在内通过任务和调试配置把工具链连起来。Java/Spring Boot 相对简单装 Java Extension Pack 和 Spring Boot Extension PackVS Code 会自动识别 Maven 工程配合 JDK 17 以上启动、调试、热更新都能在编辑器里完成。Qt 的话装上 Qt Tools 扩展在设置里指定 Qt 安装目录和 Kit 路径CMake 工程基本能直接解析。这章是地基地基歪了后面 AI 工具再强也用不顺。我的建议是先把新建项目 → 写代码 → 跑起来 → 断点调试这条路走通再进入下一步。3. 先把 DeepSeek 接进来API 调用就是这么回事3.1 申请 API Key 与模型选择DeepSeek 的接入方式非常直白去开放平台注册账号创建 API Key然后把 Key 存在环境变量里。创建 API Key 时平台只会明文显示一次一定当场复制保存。我不建议直接把 Key 写死在代码或插件配置里至少放到.env文件再通过环境变量读取避免误传到仓库。模型选择上记住两个名字就够了模型名定位适合场景deepseek-chat通用对话模型V3 系列日常问答、代码生成、补全、解释代码deepseek-reasoner推理模型R1 系列复杂算法、数学题、多步推理、排查疑难 Bug实际使用中90% 的场景 deepseek-chat 就够用速度快、成本低。只有在需要长链条推理时才切到 reasoner比如让 AI 从一堆日志里定位根因。顺带回应一个热搜词很多人搜deepseek harness、deepseek hermes其实这些大多不是 DeepSeek 官方产品而是社区对 API 做的一层封装命名。官方文档里给的就是标准 OpenAI 兼容接口直接用官方 API 反而是最稳的路径。3.2 用 Python 和 curl 跑通第一个请求写代码之前我强烈建议先拿 curl 或 Python 各跑通一次确认 Key 有效、网络链路正常再进编辑器配置。不然到时候分不清是插件问题还是 Key 问题。curl 请求curl https://api.deepseek.com/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer $DEEPSEEK_API_KEY \ -d { model: deepseek-chat, messages: [ {role: user, content: 用三句话解释什么是函数式编程} ] }Python 的话重点是把 base_url 设置对import os from openai import OpenAI client OpenAI( api_keyos.environ.get(DEEPSEEK_API_KEY), base_urlhttps://api.deepseek.com ) resp client.chat.completions.create( modeldeepseek-chat, messages[ {role: system, content: 你是一个资深软件开发工程师。}, {role: user, content: 请实现一个 Python 快速排序并注释说明时间复杂度和稳定性。} ], temperature0.3, max_tokens1024 ) print(resp.choices[0].message.content)如果你用的是旧版的 deepseek-api 之类第三方 SDK建议直接换成 openai 官方 SDK 指定 base_url少一层封装就少一个坑。凡是报错 Base URL ... path not found 或 404往往就是 base_url 少了/v1后缀换成https://api.deepseek.com/v1再试试。3.3 在 VS Code 插件里配置 DeepSeek编辑器插件层面能自定义接口的 AI 工具基本都长一个样Provider 列表里选 OpenAI Compatible然后填三样东西Base URL、API Key、Model Name。以 Cline 为例在设置里选择自定义 OpenAI 兼容提供商Base URL 填https://api.deepseek.com或带/v1的版本API Key 填刚才申请的值模型名填deepseek-chat保存后选中一段代码就能直接在侧边栏里面试了。一个我踩过的坑有些插件在 Base URL 后面会自动拼接/chat/completions有些会自动拼接/v1/chat/completions。如果你填了完整路径反而报 404那就只填域名根如果填https://api.deepseek.com提示找不到路径就加上/v1。这个试错成本很低但第一次总会卡几分钟。配置好之后你其实已经获得了第一层 AI 能力选中代码让 AI 解释、让 AI 写单测、让 AI 优化小函数。这些任务在编辑器的对话面板里完成最顺手不需要切窗口。4. Claude Code 安装与上手终端里的编程代理4.1 先理解它和普通对话的本质区别Claude Code 之所以值得单独装是因为它解决的是对话式 AI 一直以来的一个痛点上下文太浅。你在网页端让 AI 改代码往往得手动把整个文件贴进去改完还要自己复制回来。Claude Code 直接跑在项目目录里它能自己读文件、搜索符号、执行命令甚至在你允许的情况下直接改代码并运行测试。理解这一点很重要因为它决定了使用方式你不该像聊天一样让它给我写个轮播图组件而是给它一个项目范围内的任务比如搜索 src/utils 下所有被重复使用的日期格式化逻辑把公共部分提取成独立模块。后者才是它能发挥价值的地方。另外说明一句Claude Code 的授权默认走 Anthropic 的账号体系这也是官方支持的标准用法社区里也有通过兼容网关把它接到其他模型服务的做法但这属于第三方定制方案是否选用要结合具体条款和数据安全要求来判断我这里不做展开。4.2 安装与首次运行安装前提是 Node.js 18 或更高版本然后全局装 npm 包node -v npm install -g anthropic-ai/claude-code claude --version装好之后进入项目根目录直接运行claude会进入交互式会话也可以加-p走非交互模式适合脚本调用claude -p 请阅读 src/ 下的代码用中文总结项目结构和入口首次运行会触发授权按官方提示完成即可。进入会话后它每做一步操作都会在终端里展示读入哪些文件、执行了哪些命令、修改了哪些内容。这个过程要养成看的习惯尤其是它要执行可能有副作用的命令删除、重装依赖、批量替换时系统会弹出确认提示让你选择允许单次、允许本次会话还是拒绝。我的习惯是默认让它跑只读类操作涉及写文件或执行破坏性命令时先卡一下人脑过一遍再放行。4.3 Skills 与常用工作流Claude Code 支持 Skills 机制本质是把一套固定的提示词、脚本或步骤模板放到指定目录里让代理在遇到对应任务时自动调用。你不用做什么特殊安装在项目根目录建.claude/skills/里面放 Markdown 或脚本即可。比如我常用一个 review Skill内容是要求它按安全性、性能、可读性三个维度检查改动并输出每个问题的严重等级和修改建议。这样每次代码审查的口径都是一致的比临时写需求稳定得多。日常我高频使用它的三个工作流生成并运行测试让它给某个模块补测试跑完告诉我哪些用例失败然后自动定位修复。解释报错日志把一段 error trace 贴进去让它结合项目代码找可能出问题的文件再给出补丁级建议。执行跨文件重构这是它最大的优势我后面第 5 章会用一个具体例子展开。进阶方向是二开Claude Code 本身可以通过 SDK 方式嵌进自己的构建流程也可以配合工具调用协议扩展能力。这一块水比较深建议先把基础会话和 Skills 用熟再碰。5. 三件套组合实战从需求到代码的完整链路5.1 场景一代码库级重构说个我在真实项目里跑过的任务。一个历史项目里同样的日期格式化逻辑在十几个文件里各写了一遍参数还不完全一致小修小补时经常改漏。这个需求用网页版 AI 很难处理因为涉及跨文件扫描而 Claude Code 就非常合适。操作步骤在 VS Code 打开项目按 Ctrl打开集成终端运行claude然后下需求但有个小技巧——不要让 AI 直接开始改而是先让它给出重构方案。我会说先扫描项目里所有重复的日期格式化代码列出重复位置和差异给出收敛方案后我再确认。不要直接修改文件。 等它输出方案我确认无误后再追加一句按方案执行改完跑一遍现有测试。这个过程里Claude Code 会调用 grep 逐个文件比对、生成新工具函数、替换调用点、运行测试并在终端里展示每一步。我做的事情就是最后打开 diff 视图 review 一遍。这套流程里最容易出问题的不是 AI 写错代码而是它改写的范围超出预期所以先方案后执行这个开关一定要用上。5.2 场景二日常问答与补全交给 DeepSeek并不是所有需求都值得开一个 Claude Code 会话。日常遇到这个正则什么意思帮我给这段函数写个类型注解这类小问题直接在 VS Code 侧边栏用接好 DeepSeek API 的插件解决效率明显更高——不用等代理启动、不用切换终端选代码、提问、应用建议一气呵成。这里我更推荐把 DeepSeek 模型设成 deepseek-chat响应速度快对小任务的完成度足够。如果你经常写算法题、做架构论证再单独建一个 reasoner 的配置按需切换。5.3 场景三测试生成与代码审查代码审查是这三件套容易被低估的使用场景。一种做法是把 PR 的 diff 内容复制给 DeepSeek 插件让它从有没有边界条件遗漏、有没有过度设计、命名是否清晰三个角度给意见另一种是在 Claude Code 里配置 review Skill把仓库里的改动列表丢给它通过claude -p在流水线里批量跑。前者轻、后者重看团队节奏选一个即可。还可以让 Claude Code 生成 commit message把 git diff 的输出作为输入让它归纳成符合 Conventional Commits 规范的提交信息。这样提交历史会整齐很多省去每次写提交信息时的纠结。6. 绕不开的坑失败排查与成本控制6.1 VS Code Remote 下载服务器失败failed to fetch这个报错几乎每个用 Remote-SSH / Remote-WSL 的人都会碰到远程连接时提示未能下载 VS Code 服务器 (failed to fetch)或类似描述。原因本质是 VS Code 需要往目标机器放一个和本地版本完全对应的 Server 包下载环节出问题就卡住了。优先按下面顺序排查第一看你本地磁盘和远端磁盘空间是否充足Server 包看着不小磁盘满了最容易出现这种明明在下载却一直失败的情况。第二删除远端可能损坏的缓存目录Linux 下通常在~/.vscode-server/bin/下按 commit id 存放把对应目录删掉重新连接让它重新下载。第三如果反复失败但日志没有明确错误在本地设置里关掉自动更新手动根据报错日志里给出的 commit id 去下载匹配的 Server 包放到远端对应目录并解压然后重启 VS Code。这条链路我在团队里帮人排过很多次绝大多数问题都是缓存损坏或磁盘空间不是配置错误。修改完远端目录权限记得确认一下属主对不对否则会出现下载成功但无法启动的后续问题。6.2 DeepSeek API 调用超时与上下文过长把整个项目几千行代码一次性塞给 API模型不会直接拒绝但会因上下文占用过高导致首字延迟明显、回答变慢甚至直接报请求体超长错误。处理办法是控制每次请求的信息量插件侧把最大 token 调低一些对话时只贴当前函数和必要的类型定义不要让历史消息无限膨胀。如果遇到API 调用超时先看是不是同一次请求包含了太多 messages 或 max_tokens 开得过大。实践中我会把 temperature 控制在 0.3 左右减少自由发挥reasoner 模型偶尔会出现长思维链调用时把 timeout 从默认 10 秒拉到 60 秒级别否则请求还没返回就被客户端掐断了。还有一个成本控制经验在平台后台设置单日或单月消费上限这是防止出现插件在后台自动重试导致费用远超预期的最后一道闸门。6.3 Claude Code 会话丢失与环境变量的坑Claude Code 交互模式用久了会有人在重开终端后找不到上周的会话。原因是它的会话上下文和当前项目路径绑定换个目录就是另一个会话。恢复方式是在项目根目录运行claude --continue它会尝试接着上一轮继续聊。如果你需要长期维护某个重构上下文不要把会话拖得太长——超过一定长度后不仅费用高模型对早期内容的保持也会变弱最好的做法是及时把阶段性结论写进项目里的 NOTES.md让 AI翻笔记而不是硬回忆。环境变量的坑也很典型。如果你在.zshrc或 PowerShell profile 里没有导出 DeepSeek / Claude 相关的 Key新开终端时它是空的。我的做法是把 Key 统一写进项目根目录的.env文件并在启动命令前显式加载set -a source .env set a claude这样每次进入项目能拿到一致配置不会出现昨天能跑今天报鉴权失败这种诡异问题。6.4 成本与节奏控制一段真实的用量感受日常对话几百 token几乎可以忽略成本但如果让 Claude Code 拉着整个项目分析一整轮可能就会消耗比较可观的 token。控制成本靠两个习惯把任务拆分不要一次塞一个超大请求而是让 AI 分步执行、每步给结论。大模型做深度推理时切 reasoner日常杂活全部走 chat别把所有请求都默认指向贵的模型。我在模板项目里见过最夸张的一次成本失控是插件任务循环里没设置最大轮数AI 反复自我纠错调用了上百次接口。所以凡是能设置最大请求次数的插件/工具务必打开这个限制。AI 编程省下的时间不应该以不可控的费用为代价。7. 从这套组合里最该带走的东西7.1 最小可用配置清单如果你看完想动手试试这是我的推荐顺序装 VS Code勾选 PATH装中文包和你要用的语言扩展。注册 DeepSeek 开放平台创建 Key用 curl 跑通一次请求。在 VS Code 装 Cline 或 ContinueBase URL 填https://api.deepseek.com模型填deepseek-chat。跑一个小任务比如选一段代码让 AI 加注释感受一下链路是否通畅。需要项目级代理能力时再装 Claude Code用claude -p跑一次项目结构总结。这套配置的好处是每一步都能独立验证出问题很快能定位到层。如果你只是对 AI 编程好奇其实把第 2 步和第 3 步做完就已经能解决大部分让 AI 帮我写点东西的需求了不一定非得上 Claude Code。真正的项目级任务比如跨文件重构、跑测试、修复杂 Bug再把它加进来这样学习曲线最平滑。我个人的习惯是每接入一个新工具都会先用一个小到不能再小的例子验证链路哪怕是让 AI 输出hello确认没问题后再往上叠真实任务。这比一上来就丢一个庞大需求然后对着报错干瞪眼要省时得多。7.2 最后一点个人体会AI 编程工具这几年迭代飞快但有一点没变工具是放大器不是替代品。你需求写得越清楚、边界划得越明白AI 产出的质量就越好。与其焦虑哪个模型最强、哪个工具最火不如先把一条链路跑通然后在一两个真实项目里持续用起来。我个人最推荐的用法是把 AI 当成一个可以无限试错、随叫随到的结对工程师但最终把关的还得是人。你在 review 它的改动时花的时间往往才是真正提高项目质量的地方。比如我在用 Claude Code 重构之前会先要求它列出所有改动点逐条确认风险用 DeepSeek 写代码时也会坚持看 diff 而不是无脑 accept。工具负责把从 0 到 80 分的体力活干完剩下那 20 分的判断力属于你自己。先跑通再调优最后形成自己顺手的工作流这才是这套组合真正的价值。