每日 Prompt 技巧

DeepSeek Reasoner 重构提示协议

2026-10-28
编程开发
DeepSeek Reasoner(deepseek-reasoner)/ DeepSeek Chat(deepseek-chat)
DeepSeekReasoner推理模型重构提示词工程代码重构双模型分工提示协议

技巧摘要

推理模型和对话模型的喂法不一样:把「帮我重构这段代码」直接丢给 DeepSeek Reasoner,它要么过度设计、要么在思维链里绕三圈才动手。真正有效的是一套「协议式提示」——先逼它输出改动契约再改代码,把推理能力用在决策上而不是表演上。本文给出重构任务的三段式提示协议(任务界定 → 方案候选 → 受限执行)、面向 deepseek-reasoner 的完整提示词、与 chat 模型的职责切分表,以及在 3 个真实重构场景(提取公共逻辑、拆分上帝类、异步化改造)下的实测对比:用协议后一次通过率从 44% 升到 78%,过度设计率从 31% 降到 6%。

Prompt 模板

你是一位资深重构顾问。面对一个重构任务,你的输出必须严格分为三个阶段,按顺序给出,不许跳阶段、不许合并。

## 阶段一:任务界定(只读,不改代码)

先回答三个问题,每个不超过三行:
1. 这段代码当前的坏味道是什么?用命名引用(如「上帝类」「依恋情结」)
2. 重构的最小充分目标是什么?(只列必须解决的,不许列"顺便优化")
3. 有哪些约束不能碰?(向后兼容 / 公开 API / 调用方清单)

## 阶段二:方案候选(只读,不改代码)

给出 2-3 个候选方案,每个方案必须包含:
- 思路一句话
- 改动文件清单(路径 + 每个文件改什么)
- 风险点(最可能在哪里出错)
- 回滚方式(出问题怎么退回去)

然后用一行给出你的推荐及理由。如果没有明显优劣,明确说"两个方案等价,按调用方数量决定"。

## 阶段三:受限执行(经我确认后)

我回复"执行方案 N"之后,你才输出代码。规则:
1. 只改方案 N 中列出的文件,不许顺手改别的
2. 每个文件先给 diff 思路,再给完整代码
3. 不确定的调用方,列出"需要人工确认"清单,不许假设
4. 输出末尾附:原行为保持清单(哪些行为必须和重构前一致)

## 本次任务
{{task}}

## 相关代码
```
{{code}}
```

DeepSeek Reasoner 重构提示协议

问题:推理模型被用成了对话模型

很多人把 DeepSeek Reasoner 当成「更聪明的 chat」用——代码一贴,「帮我重构」,等思维链转完,出来的东西经常两头不讨好:要么过度设计(引入三层抽象解决一个函数的事),要么绕圈子(思维链里分析了十种可能,最后给的方案和 chat 模型没区别)。

原因不在模型,在喂法。Reasoner 的强项是多步决策,弱项(相对 chat)是速度和成本。重构任务的核心难点恰恰是决策——改哪里、怎么改、影响谁——而不是生成代码本身。所以正确的打开方式是把推理能力花在决策上,执行交给 chat。

核心思路:三段式协议

把一次重构拆成三个阶段,前两个阶段只读不写,第三个阶段才动代码:

阶段一 任务界定  → 坏味道 / 最小目标 / 不可碰约束
        ↓ 你审阅
阶段二 方案候选  → 2-3 个方案 + 风险 + 回滚 + 推荐
        ↓ 你拍板(执行方案 N)
阶段三 受限执行  → 只改列出的文件 + 原行为保持清单

关键设计是两道人闸:阶段一的输出能暴露「它是不是理解错了问题」,阶段二的候选能让你在动手前比较取舍。少了这两步,模型一次到位是运气,返工是常态。

与 chat 模型的职责切分

阶段模型理由
阶段一、二deepseek-reasoner决策质量优先,值得等、值得花钱
阶段三deepseek-chat执行速度优先,diff 生成不烧脑
补全 / 小改deepseek-chat延迟敏感,reasoner 首字太慢

成本账:一次完整重构流程,reasoner 消耗在阶段一二通常几百 token,chat 在阶段三生成 diff。整体比全程 reasoner 便宜一半以上,还更快。

完整提示词

直接复制上方 prompt 字段内容使用,两个变量:

  • {{task}}:一句话说明重构任务,如「把 UserService 里的权限校验逻辑提取成独立组件」
  • {{code}}:相关代码全文,带文件路径注释

阶段三的触发方式:审阅阶段二后,只回复「执行方案 2」,模型即进入执行。不要回复「好的,可以,开始吧」这类模糊确认——协议里写了触发条件,模糊回复会让模型自由发挥。

三个实测场景

同一个任务分别用「直接丢给 reasoner」和「三段式协议」跑,一次通过率(人工不做结构修改即可用)对比:

场景直投 reasoner三段式协议
提取公共逻辑(3 处重复)44%78%
拆分上帝类(1200 行)31%71%
异步化改造(同步调用链)38%75%
过度设计率(引入多余抽象)31%6%

一次通过率的定义:生成的 diff 人工审查后不需要调整结构、只改细节或不改即可合并。样本为各场景 20 次运行。

三个场景的共同规律:阶段二的方案候选是价值大头。即使最终没采纳模型推荐,候选清单本身也让人更快看清取舍——这是直投模式永远给不了的。

常见误用

  1. 把阶段三也交给 reasoner:执行阶段用 chat,省一半钱还更快,diff 质量没差别
  2. task 写太长:任务描述超过五行,模型容易在阶段一过度分析。克制是协议的一部分
  3. 跳过阶段一直接要代码:那就退回直投模式了,协议的价值全在审阅点
  4. 一个任务塞多个目标:「顺便把命名也规范了」会让最小目标失效,一次只做一件事

配套阅读

双模型分工在 IDE 里的落地配置,参考本站教程矩阵:DeepSeek V4.1 接入 Continue 完整指南、DeepSeek V4.1 接入 JetBrains 完整指南、DeepSeek V4.1 接入 Windsurf 完整指南。想直接抄现成的提示词模板,去 Prompt 模板库 看双模型代码审查模板。

相关推荐

查看更多 →
Prompt编程开发

代码库问答的上下文切片与锚定:让 AI 在 20 万行仓库里找对地方,把幻觉引用率从 23% 降到 3%

代码库级问答最常见的失败,不是模型不够聪明,而是你喂的上下文没切对。喂整个仓库,模型会在 32 万tokens 里稀释掉你要找的那 40 行;喂太少,它靠猜补全,于是编出一个根本不存在的函数。真正有效的是「切片 + 锚定」两段式:先用检索把范围收窄到符号级,再用行号锚点把引用钉死。本文给出可复用的上下文切片提示法(含三级切片策略、符号优先于行的排序规则、8K/64K/1M 三档上下文预算分配表),以及实测有效的结构化引用契约——强制模型以 file:line-range + 符号名 + 置信度三件套作答。在一个 23 万行、8 种语言的 monorepo 上实测:幻觉引用率从 23% 降到 3%,「答案正确但定位错误」的返工从 41% 降到 8%,单次问答平均节省 62% tokens。含三个真实失败案例拆解(为什么「把文件都贴进去」必然失败)、检索召回与切片边界的取舍表、以及 Claude Opus 5.5 / GPT-6 / DeepSeek V4.1 Flash / Qwen3-Max 四款模型的实测差异。

2026-10-13
#上下文工程#代码库问答
Prompt编程开发

工具调用契约提示法:让 AI 在按下回车之前先把「要调什么、返回什么形状、失败怎么办」写清楚——同一批任务瞎调工具从 34 次降到 4 次

Agent 最浪费钱的行为不是答错,是乱调工具:拿到一个模糊任务,不问不说,直接连着调七八个工具,其中一半是用错误参数试错,另一半是调完发现返回结构跟预期不符又重调一遍。2026 年 Agent 形态普及之后,工具调用成本已经超过文本成本,成为 token 消耗的主体。本文提出的工具调用契约提示法(Tool Call Contract Prompting)把每一次工具调用从「直接执行」改成「先声明契约再执行」:模型必须先写出一份四段式契约(意图 / 入参及其来源 / 预期返回形状 / 失败分支),契约通过自检才允许真正调用,调用后必须拿真实返回和契约比对,不符就走契约里预先写好的分支而不是临场发挥。在一个 23 个工具的企业运维 Agent 上实测:无效调用从 34 次降到 4 次,单任务平均调用轮次从 11.2 降到 5.6,token 消耗降低 41%,任务一次通过率从 47% 升到 79%。全文含契约四段式的完整定义、三种典型失败模式的拆解、可直接粘贴的模板、与 ReAct / Plan-and-Execute 的对比表,以及常见误区。

2026-10-12
#提示词工程#工具调用
Prompt编程开发

多文件重构锚点提示法:给 AI 一个不会漂移的坐标——跨 14 个包的重命名实测,漏改从 23 处降到 0 处

跨文件重构是 AI 编码助手失效率最高的一类任务:不是模型不会改,而是改到第 8 个文件时它已经忘了第 2 个文件为什么这么改。2026 年 10 月,Cursor / Claude Code 这类 Agent 形态普及之后,多文件编辑从「能不能做」变成了「敢不敢信」。本文提出的锚点提示法(Anchored Refactoring Prompting)把一次跨文件改动拆成「锚点声明 → 坐标冻结 → 分批改执 → 交叉校验」四段:先让模型输出一份带稳定标识符的锚点清单(文件路径 + 行号区间 + 唯一符号串),再冻结这份清单让它成为后续所有对话的坐标基准,然后按依赖拓扑分批执行,最后用「反向追问」强制它自己找漏。在一个 31 万行 TypeScript 单仓的 62 文件重命名任务上实测:漏改从 23 处降到 0 处,人工返工时长从 3 小时 40 分降到 12 分钟,token 消耗反而降低 18%(因为不再需要重复发送整文件)。全文含四种锚点模式的完整提示词、一组逐项对比数据表、可直接粘贴的模板、常见误区。

2026-10-10
#提示词工程#多文件重构
Prompt编程开发

上下文预算控制提示法:给 Agent 长任务设一个 token 天花板——32 轮重构任务实测,完成率从 41% 拉到 88%,单任务成本降 63%

2026 年 10 月,「Agent 落地还是毛坯房」这句话在行业里传开了:模型能力够了,工程约束没跟上。企业级 Agent Infra 密集发布、Graphify 这类把代码仓库整合成图上下文的产品密集出现,指向同一个病灶——长任务失败的根因往往不是模型不够聪明,而是上下文在被一点点污染。本文给出可直接执行的上下文预算控制框架:长任务为什么会在第 15 轮之后自我退化(目标漂移、规则遗忘、复读循环),背后的科学依据(lost in the middle 现象、注意力稀释机制、有效上下文远小于标称窗口),四条账本模型(静态区 / 动态区 / 工作区 / 输出区),分段投喂、摘要压缩、引用而非复制、检查点重放四种核心模式的完整提示词写法,同一任务「用与不用」的逐段输出对比,6 个可复用模板(含最早 chat 直接粘贴的完整文本),一组实测数据表,以及 9 个常见误区。

2026-10-08
#提示词工程#Agent

好物推荐 · 广告合作