精准定位重复句式的隐藏源头
打开你的 config.json 或 prompts.yaml,直接使用 Ctrl+F 搜索这些高频词汇:“请”“务必”“你需要”“请确保”“请记住”。【据统计,90% 的重复句式集中在 system_prompt、default_template、fewshot_examples 这三个核心字段里】。很多人只修改了 system_prompt,但模型在 fewshot_examples 中依然频繁输出“请先……再……最后……”这类模板化表达,导致优化效果归零。
将搜索出来的句子逐行检查,把带有这些关键词的语句单独复制到新文档,并标注来源字段名称,例如[system_prompt] 请严格遵循以下规则。跳过这一步,后续所有提示词精简优化都将失去根基。
替换模板化的动词表达结构
方法一:删除“请”,直接使用动词原形链式表达
“请执行以下步骤:1. 解析输入;2. 提取关键词;3. 生成摘要” 优化为 “解析输入 → 提取关键词 → 生成摘要”。箭头并非装饰,它强制模型按序执行,同时消除三处“请”字,使指令更简洁。
方法二:去掉主语,改为无主句
“你需要忽略标点符号,只关注名词短语” → “忽略标点符号,聚焦名词短语”。【删除‘你需要’后,模型更倾向于按指令字面执行,而非模拟用户身份】。这一技巧对 CLI 脚本类提示词尤为奏效,一删即见效果。
方法三:将“建议您……”整段替换为事实陈述
“建议您检查参数合法性” → “非法参数将触发返回码 2”。错误提示必须绑定真实行为边界,不留任何解释空间,避免模型产生歧义。
压缩嵌套条件句,简化逻辑分支
第一步:找出包含“如果……那么……否则……”三层嵌套的提示词行。第二步:将可预判的分支拆分为独立 prompt slot。例如“如果输入含日期→格式化为 YYYY-MM-DD;如果含人名→首字母大写;否则→返回原始字符串”,实际业务中 80% 的请求仅包含一种类型,前端完全可以路由分发,无需全部塞入一个 prompt 中造成内耗。
第三步:对于必须保留的条件句,使用「|」替代连接词。“日期→YYYY-MM-DD|人名→首字母大写|其他→原样返回”。这种方式能降低 tokenizer 对“如果/否则”等词注意力权重的偏移,使模型更愿意按字面输出,而非自动补全“综上所述”等冗余内容。
利用占位符收束重复的背景描述

检查你的 fewshot_examples,是否每条示例都附带同一段角色声明:“你是一个金融合规助手,需严格遵循《证券期货业数据安全管理规范》”?【将这段固定声明提取到 system_prompt 顶层字段,fewshot 中只保留 input/output 对】。使用 {{role}} 占位符承接上下文角色信息。完成后,“你是一个……”类句子将从 7 处减少到 1 处,大幅降低重复率。
这一操作极为简单:直接剪切粘贴即可。不必担心“模型找不到上下文”——实测证明,只要 system_prompt 中定义清晰,fewshot 中不重复反而能提升输出的一致性。
