相信不少人都踩过这个坑:用Gemini做多轮对话时,它突然把“上个月销量”理解成“上个自然月”,而实际想说的是财务周期的4月1日到4月30日;或者它把“客户A的合同”默认为最新签署的那份,却完全忽略了前两轮刚提过的2025年旧版——这真不是模型记性差,而是提示词没给它划清语义边界。

要解决这个问题,可以从四个关键维度入手。
用角色+时间锚点锁定指代对象
第一步,在首轮提问开头插入明确的身份与时间框架。举个例子:“你是一名财务系统实施顾问,当前服务客户使用财年制(每年4月1日至次年3月31日)。” 这样一来,从一开始就给定了话语背景。
第二步,后续每轮提到时间或实体时,必须绑定这个框架。比如:“请对比【2025财年Q4】与【2026财年Q1】的回款率”,而不是含糊地写“上季度”“本季度”。
第三步,当用户省略时间标识时,Gemini必须主动追问——比如,“您提到的‘上个月’是指财务周期中的哪一段?请明确起止日期。”如果它没触发追问,说明角色锚点没生效,这时候需要回头检查:身份描述是否放在首行且独立成段。
分隔符强制结构识别
用分隔符把每轮完整发言包起来,并显式标注角色,效果立竿见影。具体这样操作:
用户:导出2025年所有退货单
AI:已生成退货单汇总表(共172单),是否需要按品类拆分?
---
用户:只保留家电类,剔除物流异常单
同时,在系统指令中声明解析规则:“请严格按‘---’分隔的块识别对话轮次,仅响应最后一块中的用户提问,不得复述前面任何AI回复内容。”
实际操作起来很简单:把历史对话复制粘贴进新窗口,手动加上---和角色前缀就行。但漏掉任一符号,Gemini就会把追问当成新任务重新执行——所以符号一定不能少。
关键指代必须重申
当对话中间出现“这个”“刚才”“上述”等代词时,Gemini没法可靠地跨轮次绑定所指对象。必须在下一轮输入中显式还原:不能写“这个参数”,必须写“batch_size=32这个参数”。
举个例子,前一轮提到“将learning_rate从0.001调至0.01”,下一轮就应该写“请验证learning_rate=0.01时的收敛速度”,而不是“请验证这个学习率”。这一步很容易被忽略,因为人脑会自动补全上下文,但AI没有隐含记忆机制——它只认字面上的语义。
动态上下文截断策略
① 每次发送前统计token数,Gemini 2.5 Pro输入上限是32K,超出就会触发随机截断。
② 优先保留最近3轮对话 + 首次角色定义 + 所有带等号的参数赋值句(比如“model=gemma-3”“output_format=JSON”)。
③ 删除中间轮次的解释性语句,只留动作指令与确认结果。例如把“我理解您希望对比两个版本,所以先提取了v2.1和v2.2的API变更点”压缩为“已提取v2.1/v2.2 API变更点”。
删掉解释性语句不只是为了省token——更是防止模型把“我理解”误判为用户意图信号,从而改变后续响应逻辑。这一点值得特别留意。
