Skip to content

【Release Notes】v0.4.0 #343

Description

@qorzj

Deep Code v0.4.0 发布说明

本次更新把默认模型升级为 DeepSeek-V4.1-Flash,带来了全新内置技能 video-generator 视频生成、LLM 流式预览、LLM 自动重试,并扩展了权限范围(系统临时目录读写独立成档)。此外,Edit 工具的片段匹配更宽容、内置工具的中断与取消更加彻底,图片处理链路完成重构,Plan Mode 新增"清除上下文并实现",AI 提问框也补齐了标准文本编辑键。

下面是本次更新的详细说明。

全新功能

1. DeepSeek-V4.1-Flash:新的默认模型

DeepSeek 推出了 DeepSeek-V4.1-Flash(模型名 deepseek-flash)。从 v0.4.0 起,未显式配置模型时,Deep Code 默认使用 deepseek-flash,此前的默认模型是 deepseek-v4-flash

官方规格要点:

  • 原生多模态:支持直接在聊天中传入图片,模型"亲眼看图",而不是再借助外置识图工具。
  • 思考模式:支持 low / high / max 三档推理强度,默认启用思考模式,默认强度为 max
  • 大上下文:默认上下文窗口为 1M(1,048,576 tokens)。

/model 下拉同步更新,deepseek-flash 置于首位:

deepseek-flash                 ← 新增,默认,原生多模态
deepseek-v4-pro
deepseek-v4-flash
deepseek-v4-flash-vision-exp

图片能力自动判定deepseek-flash 模型会被识别为支持多模态,走 ReadImage(模型直接看图);其他模型(如 deepseek-v4-prodeepseek-v4-flash)继续走 UnderstandImage 外置识图。自动判定与实际模型能力不符时,可用 multimodal: "on" | "off" 手动覆盖。

升级影响

  • 新用户安装后开箱即用 deepseek-flash,无需任何配置。
  • 如果之前在 settings.json 中显式设置了 modelenv.MODEL,配置不受影响,仍以显式配置为准。

2. 内置技能:video-generator 视频生成

新增内置技能 video-generator,让 Deep Code 能够直接生成带对白与环境音的视频。该技能由 MiniMax H3 驱动,一次生成画面、对白与环境音,适用于文生视频、图生视频、首尾帧过渡和多模态参考视频生成。

三种输入方式

输入方式 说明
纯文本 用提示词描述主体、动作、镜头、风格、时间变化、对白和环境音
首尾帧 提供首帧(可附加尾帧)实现图生视频或平滑过渡;首尾帧仅支持 JPG / JPEG / PNG / WEBP,单张不超过 10MB,宽高均至少 300 像素
参考素材 最多 4 张图片 + 1 个视频 + 2 个音频,每个文件不超过 50 MiB

首尾帧与参考素材互斥。如果两者同时出现,技能会询问用户确认用途,不会静默丢弃素材。

可选参数

  • 时长:5–20 整数秒,未指定时默认 5 秒。
  • 模式:turbo(快速,缩短渲染时间)或 base(质量优先);默认 turbo
  • 分辨率:720p / 1080p
  • 比例:21:916:94:31:13:49:16,以及 auto(由模型决定)。

例如:

  • 帮我生成一段 5 秒的赛博朋克夜景延时视频,带环境音
  • 把 first.png 到 last.png 做成一段平滑过渡的动画
  • 以 a.jpg、b.jpg 为参考素材,生成一段专业的产品展示视频

3. LLM 流式预览:CLI 状态栏与 VSCode 思考气泡

过去模型在长时间思考或输出长回答时,界面只有"Thinking..."这样的提示。v0.4.0 新增「流式预览」,让用户在等待过程中看到模型的实时推理内容。

image

这样一来,模型"卡住"还是在"思考中"一目了然,等待过程不再焦虑。

4. LLM 自动重试:网络抖动不再中断任务

网络抖动、瞬时限流和服务端 5xx 以前会直接让会话中断。v0.4.0 新增LLM 自动重试机制:

  • 最多重试 5 次(即最多 6 次尝试)。
  • 指数退避 + 抖动:从约 800ms 起,每次翻倍,并叠加 ±10% 的随机抖动,避免同一时间大量重试造成拥堵。
  • 尊重服务端指示:优先采用响应头中的 Retry-After / retry-after-ms
  • 可重试的错误
    • HTTP 408409429 与所有 5xx
    • 常见网络错误码,如 ECONNRESETECONNREFUSEDEHOSTUNREACHENETUNREACHEPIPEETIMEDOUT 等;
    • 连接中断、超时类错误。
  • 流空闲超时:模型流超过 60 秒没有任何数据会被判定为挂起并触发重试;流提前断开也会触发重试。

5. 权限范围扩展:系统临时目录读写独立成档

权限范围新增两个专门针对系统临时目录的范围:

权限范围 说明
read-in-tmp 读取 /tmp/private/tmp 内的文件(新增)
write-in-tmp /tmp/private/tmp 内创建或覆写文件(新增)

设计要点:

  • 默认的 allowAll 模式会自动放行 read-in-tmp / write-in-tmp,并在权限提示中以低风险(绿色)展示;如确有需要,仍可显式加入 askdeny
  • 新增 addWorkingDirs 配置项,可把工作区之外的额外目录当作工作区对待。

6. Edit 工具优化

重叠片段匹配:当模型使用 read 返回的 snippet_id 限定编辑范围时,过去只在该片段内部搜索 old_string。即使 old_string 与片段边界存在重叠,也会匹配失败。

现在 Edit 工具会在整个文件范围内搜索,只保留与片段范围有交集的匹配结果。因此跨越片段边界的编辑也能正确命中,显著减少因片段切分不当导致的编辑失败。

更彻底的取消

  • AbortSignal 现在贯穿工具执行器与所有内置工具的上下文和钩子;
  • 在读取文件、写入文件前后、以及 Edit 工具内部的 LLM 辅助调用(转义修正、失败原因诊断)等关键步骤都会检查是否已取消;
  • bash 等工具启动的子进程在取消时会终止整个进程树(含后台进程),并且监听器会保留到进程真正退出,而不是工具一返回就解除。

这意味着按 Esc 中断更快、更干净,不会出现"界面已停下但文件还在写、进程还在跑"的情况。

7. 图片处理升级:统一加载、按能力发送、GIF 与去重上传

本次对图片处理链路做了整体重构,更省流量也更稳定。

  • 统一图片加载逻辑ReadImage 工具与会话中的粘贴/引用图片现在共用同一套 loadImageFile 流程(格式校验、空文件与大小限制、EXIF 方向、sRGB 转换、大图缩放等),避免两处行为不一致。
  • 会话图片维护:粘贴或引用的图片不再以 inline data URL 塞进每条消息,而是写入会话图片目录并以 file: 引用。会话体积更小,/fork/resume 迁移图片时也更可靠。
  • 按模型能力发送:多模态模型收到规范化后的真实图片内容,直接"看图";非多模态模型收到一段 <message_meta> 图片路径元数据,配合 UnderstandImage 识图工具使用。
  • 支持 GIF:粘贴图片现在支持 GIF 格式(PNG / JPEG / WebP / GIF)。
  • Files API 去重上传:同一张图片(按内容 hash 判断)在一次请求中只上传一次,重复引用复用同一个 file_id,聚合体积上限也按去重后的图片计算。
  • Files API 仅在官方地址生效:只有在 BASE_URL 为官方 https://api.deepseek.com 时才会启用上传;使用第三方兼容地址时不会误触发上传。

改进与优化

Plan Mode 新增"清除上下文并实现"

Plan Mode 输出方案后的选择菜单由 3 项扩展为 4 项:

选项 作用
1. implement this plan 退出 Plan Mode,携带当前完整对话继续实现
2. clear context and implement 保留当前会话,新建一个仅携带已确认方案的会话,并在 Default mode 下开始实现(新增)
3. stay in Plan mode 保持 Plan Mode,继续修改或完善方案
4. switch to Default mode 退出 Plan Mode,回到默认模式(不自动开始实现)

"清除上下文并实现"适合方案已经定型、但探索过程冗长的场景:新会话只带着最终方案开始写代码,避免把大量无关的历史消息一并发送给模型,从而降低 token 消耗、提升实现阶段的专注度。原 Plan 会话不会被删除,仍可通过 /resume 恢复。

AI 提问框支持标准文本编辑键

修复了 AskUserQuestion "Other" 自由文本回答的输入体验(#324)。

AskUserQuestion 答案结构化标记与渲染

用户回答的格式改为更清晰的结构化文本:

Questions 2/2 answered
  - 使用哪个数据库?
    answer: PostgreSQL
  - 是否需要迁移脚本?
    answer: 需要

升级方式

# 全局更新到最新版
npm install -g @vegamo/deepcode-cli@latest

# 查看当前版本
deepcode --version

相关配置说明见 docs/configuration.mddocs/permission.mddocs/plan-mode.md

感谢使用 Deep Code!如有问题或建议,欢迎在 GitHub 仓库 提交 issue。

New Contributors

Full Changelog: v0.3.1...v0.4.0

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions