同一任务交给 Cue 两次,步骤和结论对不上时,先别急着改提示词,也别立刻清空对话。更常见的解释是两次运行的输入其实并不相同:措辞被顺手改过,或者第二次多带了几轮历史上下文。建议按“固定原文复跑 → 分离变量 → 再决定动哪里”的顺序排查,每一步都留下可回看的证据。
先判断输入是否真的一致:两次任务原文逐字相同、所在会话也相同,差异多半落在表述层面,属于正常波动,不必处理。若第二次的会话里多了追加限制或更长的历史,结论就可能真被上下文带偏,这时才需要改提示写法或新开会话。把原文抄下来、比对上下文、一次只改一个变量复跑,是分清两种原因的最低成本做法。边界:只有结论差异(步骤数量、顺序、出现被禁止动作)才值得干预。
把两次的原始输入并排抄下来
排查第一步是确认两次输入是否真的一样。人很容易以为“我发的是同一句话”,但第二次往往顺手补了几个字。把两次任务原文复制进同一个文本文件,逐字并排,任何一处差异都标出来,包括标点、空格、换行和补充说明。
# run1.txt
把这批日志按错误码归类,输出一个表格。
# run2.txt
把这批日志按错误码归类,输出一个表格,顺便标出出现次数最多的三条。上面两行只差半句补充说明,但任务定义已经变了:run2 多了一个输出项。这类差异最常见,也最容易被忽略。记录时建议连同发送时间、所在会话、模型与参数设置写在旁边,方便后面回看。
判据很简单:只要两次任务原文不是逐字相同,先不要怀疑“结果不稳定”,直接按两个不同任务对待,重新对齐输入后再判断。
在会话记录里比对上下文与追加内容
第二次运行多带进去的信息,通常不在任务原文里,而在会话记录里。把两次运行的会话信息按下面几项抄成对照,填得越具体,后面越好定位。
| 比对项 | 第一次运行 | 第二次运行 | 是否变化 |
|---|---|---|---|
| 所在会话 | 会话 A | 会话 A / 新会话 | |
| 任务前一轮内容 | 无 | 上一轮结论 / 新的材料 | |
| 任务后追加的限制条件 | 无 | 条数与内容 | |
| 上下文大致长度 | 可用字符数粗估 | 可用字符数粗估 | |
| 材料是否重新粘贴 | 是 / 否 | 是 / 否 | |
| 模型或参数设置 | 记录原值 | 记录原值 |
上下文长度不需要精确统计,看会话面板里的轮次数、或者把历史消息贴进文本编辑器数一下字符量,就够做对比。重点是找出第二次额外带进去的是什么:是新的背景材料,是一条“不要输出解释”的限制,还是上一轮已经生成的中间结论。这些都会改变 Cue 的取舍。
一次只改一个变量复跑
提示写法和上下文长度是两个变量,必须分开验证。建议按固定顺序跑三遍,每遍只动一个条件,其余全部保持原样。
跑 A:同一会话里,把 run1.txt 原文原样重发
跑 B:新开会话里,把 run1.txt 原文原样重发
跑 C:新开会话里,只改措辞(例如把“归类”改成“分组”),其余不变每跑一次只记录两件事:结果差异属于表达不同还是结论不同;差异出现在哪一步(理解任务、拆步骤、给结论)。跑 A 与跑 B 对比,看的是上下文长度的影响;跑 B 与跑 C 对比,看的是措辞的影响。这样三轮下来,责任基本能落到某一个变量上。
区分表达差异和结论差异
把正常的措辞变化误判成“结果不稳定”,是这条排查里最常见的浪费。可以用一组明确的判定标准来分开。
- 属于结论差异:步骤数量变了、步骤顺序变了、出现了明确被禁止的动作、输出结构或字段与要求不符、缺少必须包含的内容、给出的判断方向相反。
- 属于表达差异:用词、句式、段落切分、小标题命名不同,但动作序列和输出项一致,信息量没有增减。
按这个标准看:同一输入在同一会话里原样重发,只出现表达差异,通常不需要改提示词,也不必新开会话;新会话里原样重发仍然出现结论差异,才说明提示写法本身有歧义,需要补约束,比如明确输出字段、明确禁止动作、明确不确定时的处理方式。
决定什么时候该新开会话
出现下面三种信号,建议直接新开会话,而不是继续在同一会话里重发。
- 追加的限制条件已经积累到若干条(比如三四条以上),且它们之间的优先级没有写明。
- 出现前后要求冲突,例如前面要求“只输出结论”,后面又说“把中间推理也列出来”。
- 同一任务已反复跑三次仍不一致,继续重发只会把更多历史带进上下文,差异更难归因。
新开会话后,把要求一次性前置,而不是分几轮慢慢补:
任务:……
输出格式:……
必须包含:……
禁止出现:……
遇到不确定时:先说明缺什么,不要自行补全这几行放在第一条消息里,之后不再中途追加。这样两次运行的输入才是可比的,也能把前面的对照表重新填一遍,确认问题出在提示写法还是上下文,再决定是否长期调整提示词。