关键在于控制表达节奏和语言颗粒度,禁用“建议”“可以”“推荐”等泛动词,改用动作+结果结构,以分号分隔问题、影响与解法,并注入真实项目上下文。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要让通义千问在代码评审中输出更自然、少重复的提示词,关键不是堆砌模板句式,而是控制它的表达节奏和语言颗粒度——它容易把“建议修改”“可以优化”“推荐替换”这类短语机械轮换,导致语义雷同但字面不同。
用角色指令锚定表达风格
在系统提示(system prompt)开头明确指定语言身份,例如:“你是一位有十年后端经验的资深工程师,只用技术同事间日常对话的语气写评审意见,不出现‘建议’‘可以’‘推荐’等泛动词。”
这一步直接封掉千问最惯用的三类动词模板,强制它转向“我上次遇到类似问题时……”“这个分支条件漏了空指针检查,上线后会500”这类带上下文和后果的具体表达。
禁用抽象动词,改用动作+结果结构
方法一:把“建议添加日志”改成“加一行 debug 日志,打印 request_id 和 status_code,否则出问题时无法定位是网关还是服务层失败”。
方法二:把“可以考虑使用缓存”改成“这里查 DB 三次,每次耗时 80ms,换成 Redis.get(key) → fallback 到 DB,P99 延迟能从 240ms 降到 35ms”。
【必须删掉所有含‘建议/可以/应该/推荐’的句子,每条评审意见里至少出现一个具体技术名词(如 Redis.get、P99、request_id)和一个可验证结果(如‘降到 35ms’‘无法定位’)】
用分号分隔多维度信息,避免句式复读
第一步:写完一条评审意见后,立刻补上分号;
第二步:分号后接一个真实约束条件,例如“;该接口 QPS 超过 1200,当前同步校验会阻塞主线程”;
第三步:再加分号,接一个轻量级替代方案,“;改用 CompletableFuture.supplyAsync(() -> validate()) 处理校验”。
分号在这里不是语法装饰,而是物理隔断——它强迫模型把“问题→影响→解法”压进单句,不再拆成三个“建议……可以……推荐……”的平行短句。
注入真实项目上下文关键词
在提示词末尾追加一行:“本次评审的项目代号是 Orion-v3,核心链路不允许新增外部依赖,所有修复必须在现有 Spring Boot 2.7.x + MyBatis 框架内完成。”
这行字会让千问自动过滤掉“建议引入 Resilience4j”“可以试试 GraphQL”这类脱离实际的方案,转而产出“用 @Retryable(maxAttempts = 3, backoff = @Backoff(delay = 200)) 替代手动重试逻辑”这种带框架版本和注解名的精准表达。


















