返回博客

DeepSeek Code Agent:从 Prompt 到通过测试的代码改动

了解 DeepSeek Code Agent 如何收集代码库上下文、安全编辑、运行测试、保存本地会话并交付可审查的改动。

2026年8月13日DSCode 团队DSCode 团队

DeepSeek Code”可以用来概括由 DeepSeek 模型驱动的软件工程工作流。真正重要的区别在于:工作流是停在生成文本,还是继续执行,直到产出经过测试、可以审查的代码库改动。

DeepSeek Code Agent 不应该只是补全一个函数。它还应该理解改动应该放在哪里、遵守代码库规则、通过工具收集证据,并让开发者清楚看到整个过程。

代码生成与代码库工作是两个问题

单次编程 Prompt 往往假设开发者已经选好了文件,并提供了所有相关类型、依赖和约束。代码库任务开始得更早,也结束得更晚。

例如“为图片上传增加重试”。在写代码之前,Agent 可能需要找到上传入口、识别存储 Provider 抽象、阅读现有错误处理、定位测试,并判断一次请求是否可以安全重试。编辑之后,它还需要运行正确的检查并查看 diff。

生成代码只是这条链路中的一步。

第一步:从代码库构建上下文

一个实用的 DeepSeek Code Agent 会先进行探索:

  • 阅读项目指令和当前 Git 状态。
  • 搜索与任务相关的符号、路由、测试和配置。
  • 只打开下一步决策真正需要的文件。
  • 随着任务推进,保留关键发现。

这种方式比把整个仓库塞进一个巨大 Prompt 更可靠,也让上下文和 Token 使用更容易理解。

项目指令非常重要,因为“正确代码”取决于具体项目。模型可能理解 React 或 TypeScript,却无法凭空知道某个代码库要求 TanStack Query、另一个禁止直接使用 fetch、第三个要求改 schema 后立刻同步数据库;这些都需要 Harness 主动读取。

第二步:规划最小但完整的改动

最好的计划不一定最长。它应该指出需要修改哪些文件、哪些行为必须保持不变,以及用什么检查来证明任务已经完成。

对于小任务,计划可能只是下一次工具调用;对于更大的任务,明确写出步骤能帮助模型和开发者及时发现范围漂移。

当证据变化时,Agent 也应该更新计划。一次失败测试不仅是错误,也是关于代码库的新信息。

第三步:用可审查的补丁进行编辑

小补丁更容易检查和恢复。它能避免无关格式化进入 diff,也能让每一处修改对应到明确需求。

好的 DeepSeek Code 工作流应该:

  1. 保留用户已经存在的改动。
  2. 不重写无需修改的文件。
  3. 避免手工编辑生成文件或第三方文件。
  4. 在宣布完成之前展示最终 diff。

这正是执行 Harness 发挥作用的地方:模型提出下一步动作,Harness 通过受约束的工具执行,再把真实结果返回给模型。

第四步:把测试变成模型反馈

测试可以闭合循环。Agent 不必让 DeepSeek 想象代码是否可用,而是运行一个有针对性的命令,再把真实输出放进下一轮推理。

有效验证通常从小到大:

  • 针对改动单元的语法或类型检查。
  • 覆盖受影响行为的测试。
  • 项目的生产构建。
  • 当改动对用户可见时,再做浏览器或集成检查。

最终结果应该报告实际运行了什么。“理论上可用”和“检查已经通过”并不是同一件事。

第五步:让控制权保持在本地并清晰可见

编程智能体会接触重要状态:源代码、凭据、本地文件,有时甚至是生产权限。DeepSeek Code Agent 应该明确展示自己拥有哪些权限。

这意味着在可能时使用沙箱、在不需要联网时默认断网、为权限升级请求确认,并把会话保存在开发者控制的位置。

它也要区分读取和写入。探索代码库风险较低;删除数据或发布版本,并不会因为用户要求解释一个 Bug 就自动获得授权。

第六步:展示上下文与 Token 成本

Agent 循环消耗的上下文可能远高于单次 Prompt。开发者需要在任务运行时看到上下文容量、缓存行为、输入输出 Token、推理和预估成本。

成本可见性会改变使用方式。它能暴露 Agent 是否反复读取相同文件、任务是否需要新会话,以及并行委派在节省时间的同时增加了多少 Token。

DeepSeek Harness 在哪里发挥作用

模型负责推理与代码生成;DeepSeek Harness 负责代码库上下文、工具、执行边界、会话记忆、测试与可观测性。

两者组合后,才成为真正面向代码库的 Agent:

需求 → 检查 → 规划 → 编辑 → 测试 → 审查
            ↑                  |
            └──── 反馈 ────────┘

反馈箭头是关键。它让下一步决策建立在真实执行结果之上。

使用 DSCode 运行 DeepSeek Code

DSCode 把这套工作流封装成面向 DeepSeek 的开源、本地优先编程智能体。

npm i -g @thinkany/dscode
dscode login
dscode -C ./your-repository

之后给 DSCode 一个具体任务,并审查它生成的计划、工具调用、补丁、测试和 Token 报告。CLI 现在已经可以使用;桌面界面仍是开发预览,目前没有可下载的安装包。

如果你也在设计 Agent 执行循环,可以继续阅读《如何构建面向真实代码库的 DeepSeek Coding Harness》