一个"邮件撰写"助手,用户说"太生硬了",它就"更礼貌一点";用户说"还是太生硬",它"再礼貌一点"——第三次输出"尊敬的、敬爱的、万分感谢",反而更难用。因为它把"纠正"理解成"沿着一个方向加密",而用户要的是"换一种写法".
Agent 的"多轮纠正"有三个关卡:听懂"哪不对"、决定"改哪里"、以及避免"越改越偏"。而这三关里,"越改越偏"最常见,因为"纠正"天然被当成"加强".
1. "纠正"的三种类型
| 类型 | 用户说什么 |
|---|---|
| 程度(太多/太少) | "太长了""再简单点" |
| 方向(换一种) | "太生硬""不像我们的语气" |
| 事实(错了) | "金额写错了""日期不对" |
第一项是"可调的":"太长"→ 缩短;"太短"→ 补充第一项的"判据"是"能不能给出一个方向相反的指令":"太长"的相反是"太短","生硬"的相反不是"不客气",而是"另一种语气".
——方向明确,模型容易执行.
第二项的"识别问句"很实用:"您希望我'更客气一点',还是'换一种更自然的说法'"——一次确认,省掉三轮试错.
第二项最容易被误当第一项:"太生硬"不是"减少生硬的程度",而是"换一种表达方式"——而"再礼貌一点"是"程度"的解法,于是越改越偏.
第三项必须"先确认":"金额错了"要"问清正确值",不能"猜一个".
2. "越改越偏"的三种机制
| 机制 | 说明 |
|---|---|
| 把"方向"当"程度" | 加形容词/加修饰 |
| 在"上一版"上叠加 | 差异被累积 |
| 没有"回退" | 越改越远离目标 |
第二项是"结构性"的:"每一轮都在"上一版"上改"第二项的"后果"很具体:"第一版很简洁,改到第三版"又长又绕"——**因为"简洁"这个优点从未被"保护",而"每次改动"都在"叠加".
——于是"第一版的优点"也在被改掉.
"分清类型"可以用一个"两问"的分流,而它比"猜"快:
// 两问分流(每次纠正)
Q1 能说出"反方向的词"吗?(太长↔太短)
能 → 程度类:在上一版上调
Q2 说不出反义词,但能举"类似的例子"吗?
能 → 方向类:回原始请求重写
都不能 → 事实类:先确认"哪个值不对"
// 判据:三个分支"互斥",命中即处理
3. "三种纠正"的应答策略
| 类型 | 策略 |
|---|---|
| 程度 | 沿"上一版"调整(保留结构) |
| 方向 | 回到"原始请求"重写(而不是在上一版上加) |
| 事实 | 先确认正确值,再改 |
第二项的"成本"是"多一次生成":看起来"浪费",而它比"改三轮"便宜——因为"从起点重写"只有一次机会跑偏,"在上一版上改"每轮都在累积偏差.
第二项是关键:"换一种"要"回到起点"**——因为"起点"里有"用户最初的意图",而"上一版"已经被"错误的方向"带偏.
"确认"要"给具体选项",否则它只是"再问一遍":
// 三种"确认"的写法(从差到好)
差:您能说得更具体一点吗?
中:您是指"太正式"还是"太长"?
好:我理解您想要"更像同事之间说话"(示例:……)。是这样吗?
// 判据:确认里"带一个具体例子",用户"只需点头或纠正"
4. "确认"的三种时机
| 时机 | 例子 |
|---|---|
| 事实类纠正 | "您是指金额应为 1,200 吗" |
| 指令模糊 | "更'专业'是指更简短,还是更多术语" |
| 反复纠正(同一处 3 次) | "我们先确认一下您最在意哪一点" |
第三项是"止损":"同一处改三次还没对",说明"我们对目标的理解不一致"第三项的"话术"要"给选择":"我先确认一下:您更在意'短'还是'自然'?"——**于是"用户"从"反复否定"变成"一次定义",而定义之后"一轮就能改对".
——**继续改只会"更远".
"记账"的载体可以很轻,而它让"第三轮"不再犯"第一轮的错":
// 一份"纠正台账"(每次会话,三行)
原始要求:给客户写"催款邮件",语气"不失礼貌但要有效果"
已否定:不要感叹号;不要"尊敬的"
当前版本意图:简短、直接、给"付款链接"
// 判据:生成前"读一遍台账",生成后"更新台账"
5. "纠正"要"记账"的三种内容
| 内容 | 作用 |
|---|---|
| 用户的原始要求 | 重写时的"起点" |
| 已尝试的改动 | 避免"重复同一个错" |
| 已被否定的方向 | 避免"又转回去" |
第三项的"实现"很轻:把"已否定的写法"存成"清单",每次生成前"读一遍"——于是"否定"从"一次性反馈"变成"持续约束".
第三项最容易被漏:"用户说过'别用感叹号'",而第三轮又出现了感叹号**——**因为"提醒"只在当时生效,没有"记住".
"越改越偏"还有一个"可观测"的信号:"差异在累积"。
// 三步"看是否跑偏"
1 把"当前版"与"第一版"并排:差多少处?
2 若"差异越来越大,而用户仍说不对" → 方向问题,回起点
3 若"差异缩小但方向仍错" → 说明"目标没定义清",先确认
// 判据:改"三轮"还没对,就"别改第四轮"
6. 排错:五种"纠正循环问题"
| 现象 | 成因 | 处理方向 |
|---|---|---|
| 越改越啰嗦 | 把方向当程度 | 回原始请求重写 |
| 用户重复同一句 | 没听懂类型 | 先确认"哪一类" |
| 改对了又改回去 | 无"否定清单" | 记录"已否定" |
| 事实错误被猜 | 未确认 | 先问正确值 |
| 用户放弃 | 反复无效 | 三次即止损 |
"改 + 给另一版"是"赶时间用户"的折中,而它要"两版差异明显":
// 三种"给两版"的做法
1 一版"按字面改"(缩短 20%),一版"换风格"(更口语)
2 只给"改后"(用户没时间比较)
3 给"三版"(选择过载,反而更慢)
// 判据:两版"差异要能被一句话说清",否则不如一版
7. 边界:什么情况"直接改"就好
| 场景 | 为什么 | 做法 |
|---|---|---|
| 明确的程度要求("缩短 20%") | 无歧义 | 直接改 |
| 格式要求("改成表格") | 机械 | 直接改 |
| 错别字/标点 | 无争议 | 直接改 |
| 用户"赶时间" | 不想被追问 | 改 + 给出"另一版" |
判断口径一句话:"这次纠正,是"调整程度"还是"换方向""。最后一条与"信任"有关的边界:"纠正"的体验决定"用户还愿不愿意提意见":**"一次说清、一次改对"会让用户"愿意多说";"改三轮还不对"会让用户"自己动手改",而"自己改"之后就"不再用你的工具".
程度(长短、多少),在上一版上调;方向(语气、风格、思路),回到原始请求重写——而"把方向当程度改",就是"越改越偏"的唯一原因.
再补一个"产品"视角:"纠正"是"用户教你的唯一机会"——他说的"不对"里,既有"这次的要求",也有"以后都别这么写"。而"两件事混在一起"时,系统往往只处理了前者,于是"同一句抱怨在下一封邮件里重演"。所以"纠正"要"分两层记录":"这次改什么"(对本轮)与"以后别怎样"(对风格)——而后者正是"越用越顺手"的来源,也是"认真听反馈"与"听完就忘"的分水岭。
而"两层"这个区分,恰好是"一次纠正、长期受益"的最小实现。
8. 自测
- 三种"纠正类型"分别怎么应答?为什么"太生硬"不属于"程度"?
- "越改越偏"的三种机制里,哪一种最"结构性"?它为什么让"第一版的优点"消失?
- 为什么"换方向"要"回到原始请求"?"上一版"里缺了什么?
- "同一处改三次"为什么要"止损"?继续改会怎样?
- "否定清单"为什么必须"跨轮记住"?
- 判断"该在上一版改还是重写"的那个问题是什么?