DeepSeek可以写代码吗?可以用,而且有三条互不相同的路。第一层是网页端与手机 App 直接对话——不用 API Key、不用装环境;第二层是自己调 API,官方为此专门保留了一套 FIM 补全接口;第三层是把现成编程工具接上,官方文档的接入页里编码类一共 13 款,另有 4 款通用 Agent。三层的门槛、计费与能力上限完全不同,混着看最容易得出“能用”或“不能用”这种过于笼统的结论。本文逐层给大家说一说。 DeepSeek写代码分哪三层用法
先给这张对照表,后面每一节都围着它展开。三层不是替代关系:第一层解决“给我一段代码”,第三层解决“帮我把这个项目改完”,第二层解决“我要把它嵌进自己的系统”。
| | | | |
|---|
| 网页端 chat.deepseek.com、手机 App | | | |
| 自己写程序调 API(OpenAI 兼容 / Anthropic 兼容 / Responses) | | | 能嵌进你自己的流程;代码补全另有专门的 FIM 接口 |
| 把现成编程工具或 Agent 接上 DeepSeek | | | |
官方把编码能力放在什么位置
有三处官方表述可以把这件事钉住。
- 第一处,C 端站点自我描述。chat.deepseek.com 的页面描述英文原文是 “Chat with DeepSeek AI – your intelligent assistant for coding, content creation, file reading, and more.”,中文版原文是“深度求索(DeepSeek)助力编程代码开发、创意写作、文件处理等任务,支持文件上传及长文本对话”。也就是说,“编程代码开发”被排在中文描述的第一项能力。该页关键词里同时出现 “coding assistant” 与“代码开发”“AI 开发助手”。
- 第二处,官方自己开源的编程 Agent。DeepSeek 在 GitHub 上开源了一个 agent harness,名字是 DeepSeek Harness,命令名 dsh,仓库描述为 “DeepSeek Harness: Everything is a Plugin.”,MIT 协议,2026 年 8 月 13 日建仓。截至今日该仓库有 224,660 star、26,714 fork。官方首页给出的公式原话是 “Agent = Model + Harness”,并把标准模式直接描述为“功能完整的编码 Agent”。
- 第三处,API 侧专设的补全接口。官方文档《FIM 补全(Beta)》开篇写“FIM 常用于内容续写、代码补全等场景”。这是现行 API 里唯一一个专门为代码场景设立的接口。
需要区分的一件事:官方从未说过“DeepSeek 有一个专门的代码模型”。历史上确实有过 DeepSeek-Coder 与 DeepSeek-Coder-V2 两条线——前者 2023 年 10 月建仓,提供 1B 到 33B 四个尺寸,2T 训练 token 中 87% 是代码,支持项目级补全与填中间任务;后者 2024 年 6 月建仓。但两个仓库最后一次推送都是 2025 年 11 月 11 日,且当前官方价目表里没有任何 Coder 系列模型。今天写代码用的是通用模型 deepseek-flash 与 deepseek-v4-pro。
网页端和手机App能直接用吗
能,而且这是三层里唯一不需要 API Key、也不需要付费的一层。官方 C 端站点把 “coding” 与“代码开发”写进了页面描述,说明写代码属于官方列明的产品能力,不需要额外开通什么。
但官方在这一层上的披露颗粒度很粗,两点需要知道:
- 没有说明网页端和 App 背后是哪个模型。App Store 官方条目(版本 2.5.1,2026 年 9 月 12 日)的更新说明全文只有三句:“新模型上线,快速、专家、识图模式合并升级”“支持思考过程自动折叠”“修复部分已知问题”——其中没有写具体模型名。
- 商店页对产品的整体定位也没单列代码。原文是“DeepSeek 官方推出的 AI 助手,免费体验与全球领先 AI 模型的互动交流”“搭载 DeepSeek 最新旗舰模型,用更快的速度、更加全面强大的功能为你答疑解惑”。
不要用 API 侧的信息去反推 C 端。API 价目表上线了 FIM 补全、strict 模式这类面向代码的能力,并不等于网页端和 App 也同步具备;两者是各自独立发布的产品线,官方也没有给过“C 端与 API 同步”的承诺。
API侧有哪些面向代码的能力
先说模型名,这是接入时最容易出错的地方。据官方文档《模型 & 价格》页(截止 2026 年 9 月 15 日),页面上当前只有两个模型:
| | |
|---|
| | |
| | |
| https://api.deepseek.com/anthropic | |
| | |
| | |
| | |
| | |
官方《获取模型列表》页的响应样例也只返回 deepseek-flash 与 deepseek-v4-pro 两个 id。价目表另有一条脚注值得记住:旧模型名 deepseek-v4-flash 与 deepseek-v4-flash-vision-exp 仍可调用,但对应模型已下线,请求会由 DeepSeek-V4.1-Flash 模型提供服务,并按 Flash 价格计费。另有一条与写代码直接相关的公告:官方决定在 2026 年 9 月 14 日之后继续提供 DeepSeek V4 Pro 的 API 调用服务,计费方式保持不变。
面向代码的能力一共七项,其中两项处于 Beta 阶段:
| | |
|---|
| 给出前缀与可选后缀,由模型补全中间内容;官方注明常用于“内容续写、代码补全”;最大补全长度 4K;需把 base_url 换成 https://api.deepseek.com/beta | |
| | |
| 模型调用外部函数,函数本体由调用方实现;strict 模式(Beta)下输出严格遵循 JSON Schema | |
| | |
| | |
| 新增 Anthropic 格式支持,base_url 为 https://api.deepseek.com/anthropic,可直接进 Claude Code 生态 | |
| 输出思维链以提升最终答案准确性;默认打开、effort 默认 high | |
其中 Anthropic 兼容这一条对写代码最实用。官方《使用 Anthropic API》页写明 base_url 为 https://api.deepseek.com/anthropic,并带一套模型名映射规则:claude-opus 开头的模型名会映射到 deepseek-v4-pro,并按 V4 Pro 价格计费;claude-haiku 与 claude-sonnet 开头的映射到 deepseek-flash;传入不支持的模型名时,后端会自动把它映射到 deepseek-flash。这套映射的本意是让人能绕过某些客户端对模型名的限制,只改 base_url 和 api_key 就能接入。 代码补全为什么不能开思考
这是三层里最容易被忽略的一条硬限制。官方《FIM 补全(Beta)》页的“注意事项”写了两条:模型最大补全长度为 4K;用户需要设置 base_url="https://api.deepseek.com/beta" 来开启 Beta 功能。而《模型 & 价格》页的 FIM 补全一行写得更直接:仅非思考模式支持——而且这一条对 deepseek-flash 与 deepseek-v4-pro 都成立。
问题在于思考模式默认是打开的。官方《思考模式》页开篇就写“思考模式默认打开,且 effort 默认为 high”。也就是说,不显式把思考关掉,FIM 这条路走不通。三种调用格式各有关闭写法:
- OpenAI 格式:传 {"thinking": {"type": "disabled"}} 即可关闭(用 OpenAI SDK 时该参数需放进 extra_body)。
- Anthropic 格式:传 {"reasoning": {"effort": "none"}},其中 none 表示关闭思考模式。
- Responses API 格式:传 {"output_config": {"effort": "none"}}。
顺带三条容易踩到的联动规则:思考模式下 temperature、presence_penalty、frequency_penalty 三个参数不生效——传了不报错,但会被忽略;top_p 在思考模式下生效但下限为 0.95,小于 0.95 的值会被抬升到 0.95,非思考模式下恒为 1.0、传入值被忽略;如果请求带了 tools 参数,历史轮次的 reasoning_content 必须原样回传给 API 并会被拼进上下文,不带 tools 则无需回传、传了也会被忽略。
另外还有一组官方给的 effort 映射关系值得记:请求传 minimal 实际按 low 跑,medium 实际按 high 跑,xhigh 实际按 high 跑,ultra 实际按 max 跑。mid 档在 DeepSeek 侧并不独立存在,传不同的值可能落到同一档上。
官方文档收录了哪些编程工具
官方文档的接入页里,编码类一共 13 款。这个数字的来源是文档站点地图列出的 17 个接入页,扣掉 4 款通用 Agent(AstrBot、Hermes、nanobot、OpenClaw)之后的结果。先看编码类的 13 款:
| | |
|---|
| | |
| OpenAI 的编程助手,CLI、ChatGPT 桌面端、VS Code 插件共用一份配置 | |
| | Anthropic 格式的 BYOK 自带密钥模式 |
| VS Code 扩展,把 DeepSeek 加进 Copilot 的模型选择器 | |
| Charm 出品的开源终端 AI 编程 Agent,支持 LSP 与 MCP | |
| | OpenAI 兼容,写 settings.json |
| | 在 CLI 里输入 /connect 选 DeepSeek |
| AI 编程助手,支持 CLI 与 Zed ACP Agent | |
| | |
| | 在 CLI 里输入 /connect 选 DeepSeek |
| | |
| | |
| | OpenAI 兼容,写本地 models.json |
再看另外 4 款通用 Agent——它们不算编程工具,但同样出现在同一分类下,容易被误计入:
| |
|---|
| 开源一站式 Agent 助手,可接 QQ、微信、飞书、Telegram |
| Nous Research 打造的开源 AI Agent |
| |
| 开源个人 AI 助手,可接飞书、微信,通过 Skill 扩展能力 |
值得一提的是,13 款编码工具里接入格式分了三种:Anthropic 格式(Claude Code、GitHub Copilot CLI)、Responses API 格式(Codex、GitHub Copilot 插件)、OpenAI 兼容(Crush、Deep Code、Pi、WorkBuddy/CodeBuddy、Kilo Code、OpenCode 等)。挑工具之前先确认它支持哪一种格式,比对比功能表更有用。
接入方式可以归成哪三类
把 13 款工具的配置方式抽象一下,只有三类:
| | | |
|---|
| https://api.deepseek.com/anthropic | Claude Code、GitHub Copilot CLI | 设环境变量。Copilot CLI 必须把 provider type 写成 anthropic,写成 openai 会报 400 |
| | Crush、Deep Code、Pi、WorkBuddy / CodeBuddy、Kilo Code、OpenCode | 写各工具自己的模型配置文件,部分工具只需在界面里填 Key |
| | Codex(CLI / 桌面端 / VS Code 插件)、GitHub Copilot 插件 | 官方一键脚本,或手写 config.toml 与 models.json |
Claude Code 这条路官方给的环境变量最全,值得单独抄一份:ANTHROPIC_BASE_URL 填 https://api.deepseek.com/anthropic,ANTHROPIC_AUTH_TOKEN 填 DeepSeek API Key,ANTHROPIC_MODEL 填 deepseek-flash[1m],CLAUDE_CODE_SUBAGENT_MODEL 填 deepseek-flash,CLAUDE_CODE_EFFORT_LEVEL 填 max,另有一项 CLAUDE_CODE_AUTO_COMPACT_WINDOW 填 786432。装法上官方写明需要 Node.js 18 以上,Windows 用户还要装 Git for Windows。
Codex 这条路官方给了一键配置脚本,脚本按官方描述会做四件事:把现有 ~/.codex/config.toml 备份到 ~/.codex/backup-deepseek/;写入 ~/.codex/models.json 向 Codex 声明 DeepSeek 模型的元数据(上下文窗口长度、支持的推理强度档位、工具调用格式等);只改写必要的 config.toml 字段并保留原有 MCP 服务器与项目信任配置,遇到冲突字段会删除并逐条打印原因;写入前做语法校验,校验失败就中止、不改任何文件。
两个容易踩的配置细节。一是 WorkBuddy / CodeBuddy 的 models.json 必须存成 UTF-8 无 BOM,官方写明部分桌面版本读取带 BOM 的 JSON 会失败;且模型 id 必须严格写成 deepseek-flash,否则报“未找到模型”。二是 Oh My Pi 有三项兼容字段属于必配:supportsToolChoice 设为 false(DeepSeek V4 思考模式不接受 tool_choice 参数)、requiresReasoningContentForToolCalls 与 requiresAssistantContentForToolCalls 设为 true,官方说明不配会导致思考模式下带工具调用时返回 400。同一页还给了三条配置要点:baseUrl 不要加 /v1;DeepSeek API 不接受 developer 角色,系统提示词要用 system 角色发;输出限制字段是 max_tokens,不是 OpenAI 的 max_completion_tokens。
官方自己的编程Agent是什么
就是前面提到的 DeepSeek Harness(命令名 dsh)。它不是一个模型,而是一个开源的 agent 框架——官方首页给的公式是 “Agent = Model + Harness”:模型是 Agent 的灵魂,Harness 负责让 Agent 理解环境、使用工具、在真实场景中持续工作。架构上它基于 Cordis 插件系统,模型、工具、技能、会话、沙箱、存储、循环、调度、UI 全部由插件提供,开发者不需要改源码就能在配置层替换任一能力。
跑起来只需要一行:
该命令默认在 http://127.0.0.1:3080 启动 Web UI 并自动打开浏览器;通过 SSH 启动时只打印宿主机 URL。传 --no-open 可以只跑服务不开浏览器。它也支持从源码装:克隆仓库后依次执行 pnpm install、pnpm run build、pnpm dsh web。
它有四种运行模式,官方对每一种的描述如下:
- 标准模式:功能完整的编码 Agent,支持文件编辑、Shell、文件与网页检索、Skills、计划、目标、子代理和工作流。
- PTC 模式:具备标准模式的全部能力,并通过 Code Mode SDK 呈现工具,让模型用一个 TypeScript 程序组合多步操作。
- 极简模式:仅提供持久 bash 与 str_replace_editor 的双工具编码 Agent,用于最小化环境下的模型基准测试。
- 创造模式:用于创建自定义 Agent preset,具备标准模式的全部能力,并提供运行时检查、插件实验和 preset 创作指导。
另有一条设计值得单独说:模型看到的一切都会写进仅追加设计的会话日志,包括系统提示词、思维链、工具调用与结果、子 Agent 调度,以及每一次上下文注入;在 Trajectory 视图里可以按来源查看这些信息,恢复、分叉、检索与回放共享同一份事件流。
它处于开发者预览阶段。官方 README 的原话是“正在快速迭代,未来将出现破坏兼容性的变更”,官网也写明“核心插件和基础 API 将持续迭代”。要把长期任务押在它上面,得先把升级成本算进去。
用DeepSeek写代码要花多少钱
第一层的网页端与 App 不花钱。第二、第三层按 token 计费,账单完全取决于两个变量:用哪个模型,以及请求落在高峰还是空闲时段。官方《模型 & 价格》页(截止 2026 年 9 月 15 日)的三档单价如下,单位为元/百万 tokens:
两条脚注决定了这张表怎么用:空闲时段价格是高峰时段的一半;高峰时段为北京时间周一至周五 9:00-12:00 与 14:00-18:00,其余为空闲时段。扣费上,充值余额与赠送余额同时存在时优先扣减赠送余额。
写代码这个场景里,最该关注的其实不是输出单价,而是缓存命中价与未命中价的倍数差:deepseek-flash 是 0.02 元对 1 元,差 50 倍;deepseek-v4-pro 是 0.15 元对 4.5 元,差 30 倍。原因是编程工具每一轮都要把整个代码库或一段很长的上下文重新送进模型,这部分前缀能不能命中缓存,直接决定了账单的量级。官方《上下文硬盘缓存》页说明了命中规则:
- 缓存对所有用户默认开启,无需修改代码;受 Sliding Window Attention 机制影响,后续请求必须完整匹配一个缓存前缀单元才能命中。
- 缓存前缀在三个时机落盘:每次请求的用户输入结束位置与模型输出结束位置各产生一个缓存前缀单元;系统检测到多次请求存在公共前缀时,把公共前缀单独落盘;长输入或长输出时按固定 token 间隔截取落盘。
- 接口返回的 usage 里带 prompt_cache_hit_tokens 与 prompt_cache_miss_tokens 两个字段,可以直接看到这一轮命中多少、未命中多少。
- 缓存是“尽力而为”,不保证 100% 命中;缓存构建耗时为秒级,不再使用后会自动清空,时间一般为几个小时到几天。缓存只匹配用户输入的前缀部分,输出仍由推理产生,效果与不使用缓存相同。
举一个可以自己复算的例子。假设某一轮送进 10 万 tokens 上下文、输出 2,000 tokens,用 deepseek-flash:
- 空闲时段且全部命中缓存:0.1 × 0.02 + 0.002 × 4 = 0.01 元。
- 高峰时段且全部未命中:0.1 × 2 + 0.002 × 8 = 0.216 元。
同样的 token 量,账单相差 21.6 倍。把批量任务挪到空闲时段、并且尽量让多轮请求共享一段稳定的前缀,是省钱的两个主要抓手。顺带说一句,各家编程工具的配置文件里往往自带一份价目表,数字与官方价目表不一定一致(详见下一节的第五处出入),现实账单请以官方价目表为准。
五处官方口径出入分别是什么
发现五处官方文档之间对不上的地方,全部如实列出,不作推断。
| | | |
|---|
| | 文档左侧栏只列出 7 个(Claude Code、Codex、Hermes、OpenClaw、OpenCode、Reasonix、WorkBuddy/CodeBuddy) | 以站点地图为准。侧边栏漏列 10 个,其中包括 GitHub Copilot 与 Deep Code 这两个可正常访问的页面 |
| 官方集成清单里,Cursor 一页让填 deepseek-coder,Continue 一页让填 deepseek-chat;Kilo Code 一页的模型选择器列出 DeepSeek Chat、DeepSeek Reasoner、DeepSeek V4 Flash、DeepSeek V4 Pro 四个条目 | 官方价目表与《获取模型列表》只列 deepseek-flash 与 deepseek-v4-pro | 以价目表为准。官方没有给出旧名与新名的映射关系,本文不作推断 |
| 《FIM 补全(Beta)》写“仅非思考模式支持” | 《思考模式》写“思考模式默认打开,且 effort 默认为 high” | 两页都要看:用 FIM 必须显式关掉思考,否则这条路走不通 |
| GitHub Copilot 插件页写“DeepSeek V4 为纯文本模型,但插件会自动处理图片” | 价目表写明 deepseek-flash 的图像理解为“支持” | 以价目表为准。该插件确实加了图片代理环节,但把 V4 整体说成纯文本并不准确 |
| Pi 一页的 models.json 里,deepseek-v4-pro 标成输入 1.74、输出 3.48、缓存读取 0.145 | 官方价目表标的是 4.5、13.5、0.15(均为空闲时段) | 以官方价目表为准。官方未说明工具页这套数字的口径,本文不作推断 |
五处里有三处指向同一个原因:DeepSeek 的接入文档是分散维护的,不同页面更新节奏不一致。凡是涉及模型名与单价,直接查价目表这一页最稳;凡是涉及能不能用某个功能,要把功能页与限制页对读。
DeepSeek可以用代码吗常见问题
Q:完全不花钱、不用 API Key,能用 DeepSeek 写代码吗? A:可以。网页端 chat.deepseek.com 与手机 App 都不需要 API Key,官方 C 端页面描述里“编程代码开发”就是列出的第一项能力。代价是它只把代码给你,不会去读你本机的项目,也不会替你改文件。
Q:DeepSeek 有专门的代码模型吗? A:当前价目表里没有。官方现行模型只有 deepseek-flash 与 deepseek-v4-pro 两个,写代码用的是这两个通用模型。历史上开过 DeepSeek-Coder 与 DeepSeek-Coder-V2 两条线,但两个仓库最后一次推送都是 2025 年 11 月 11 日,也不在现行价目表内。
Q:代码补全报错说不能用思考模式,怎么改? A:把思考显式关掉。官方《模型 & 价格》页写明 FIM 补全“仅非思考模式支持”,而《思考模式》页写思考默认打开。OpenAI 格式传 {"thinking": {"type": "disabled"}},Anthropic 格式把 reasoning.effort 设为 none,Responses API 设 output_config.effort。另外 FIM 的 base_url 要换成 https://api.deepseek.com/beta,最大补全长度 4K。
Q:接 Claude Code 时模型名后面的标记是什么意思? A:官方示例里 Claude Code 的模型名统一写成 deepseek-flash[1m],带一个 1m 标记;同一个模型在 OpenCode、Kilo Code 等页面上写的是 DeepSeek-V4-Flash 或 deepseek-flash。官方文档没有解释这个标记的语义,照官方示例填即可,本文不对其含义作推断。
Q:写代码该选 flash 还是 v4-pro? A:按官方价目表,deepseek-flash 更便宜、并发上限更高(2500 对 500),并且支持图像理解;deepseek-v4-pro 的输入单价是 flash 的 4.5 倍、输出单价约 3.4 倍。官方接入文档里有两处给了默认选择:Reasonix 一页写明“默认使用 DeepSeek-V4-Flash 跑日常迭代以控制成本”,在 TUI 里输入 /pro 可切到 DeepSeek-V4-Pro;Codex 的一键脚本里第 1 项用 deepseek-flash、第 2 项用 deepseek-v4-pro。
Q:用 GitHub Copilot 插件时,为什么拖进图片要交给别的模型? A:官方插件页写明了原因和做法:把截图拖进对话后,插件会通过其他已安装的 Copilot 模型(如 Claude、GPT-4o)描述图片内容,再发送给 DeepSeek,也可以执行 DeepSeek: Set Vision Proxy Model 来选择用于图片描述的模型。对照价目表看,deepseek-flash 的图像理解是“支持”、deepseek-v4-pro 是“不支持”。
Q:什么时候跑最便宜? A:空闲时段。官方写明空闲时段价格是高峰时段的一半,高峰时段为北京时间周一至周五 9:00-12:00 与 14:00-18:00,其余为空闲。同时尽量让请求共享稳定前缀以提高缓存命中率——deepseek-flash 的缓存命中价与未命中价相差 50 倍。
Q:网上教程让填 deepseek-chat 或 deepseek-coder,现在还能用吗? A:官方价目表与《获取模型列表》只列 deepseek-flash 与 deepseek-v4-pro;价目表脚注只说明 deepseek-v4-flash 与 deepseek-v4-flash-vision-exp 这两个旧名仍可调用、但对应模型已下线。deepseek-chat 与 deepseek-coder 没有出现在现行官方文档里,官方也没给出它们与现行模型名的映射关系,因此本文不作推断——照现行两个模型名填即可。
Q:这些接入方式和价格去哪里看最新? A:接入方式在官方文档的《接入 Agent 工具》分类下,价格与功能在《模型 & 价格》页,缓存命中规则在《上下文硬盘缓存》页,代码补全的限制在《FIM 补全(Beta)》页。这几页的更新节奏并不一致,涉及模型名与单价一律以《模型 & 价格》页为准。