DeepSeek Code Agent:从 Prompt 到通过测试的代码改动
了解 DeepSeek Code Agent 如何收集代码库上下文、安全编辑、运行测试、保存本地会话并交付可审查的改动。
“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 工作流应该:
- 保留用户已经存在的改动。
- 不重写无需修改的文件。
- 避免手工编辑生成文件或第三方文件。
- 在宣布完成之前展示最终 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》。