请不要多轮对话

先来做个小调研:

你是否有所发现: 和AI 对话越长,它的表现似乎会越差?

甚至,除了回答质量直线下降,回复速度还会越来越慢——

这不是错觉,而是 长对话的必然结果 !

今天就来简单聊聊这个问题:

长,就好吗?

请不要多轮对话-2

据我观察,不少人喜欢在同一个对话窗口里与AI多轮长聊

不断追问

这样确实 简单省事 ,还能 复用 之前的上下文

不用新开个对话重新开场

(尤其 i 人,最怕的就是开场了吧

但事实上, 这种方式会影响 AI 的表现。

先放结论:

长,未必就好!

再说原因——

这是因为和LLM 进行长对话,会有着如下问题:

1. 速度变慢

巨大的上下文窗口对应更多的token

这将消耗更多计算资源,响应速度自然会变慢。

2. 效果大打折扣

长对话会或多或少夹杂混杂、矛盾的信息

这会让模型困惑

请不要多轮对话-3

在体育话题中突然聊烧烤,再突然插入一个AI 话题,然后又再聊会姚明……

虽然可能没多少人会这像我这样对话

请不要多轮对话-4

但本质上可能差不多,我只是夸大了些而已

这就像让一个人同时做十件事

请不要多轮对话-5

结果,可想而知

3. 信噪比降低

过多的token 会一起争夺有限的注意力

这会造成 “ 注意力分散 ”

从而 降低模型性能。

请不要多轮对话-6

就好比在男朋友正和老板电话时问他“ 你爱我哪一点? ”

很难会得到想要的答案

4. 智能「分辨率」下降

现在模型的上下文窗口正变得越来越长

从GPT2 的1K 到4K、8K、16K、32K、128K、200K,甚至500K、1M

但并不代表什么都往里塞就好

模型的理解能力会随着长度而下降

也会随着内容的纯度而下降

5. 训练数据不匹配

原因很好理解

大多数模型的训练数据以 短对话 为主,甚至是单轮问答

即(一个问题 -> 答案)

多轮超长对话对AI 来说就像让你读一本用陌生语言写的书,生疏且困难。

一个巨大的超多轮对话将迫使LLM进入一个新的数据分布

而它在训练期间根本就没怎么见到过长这样的东东

很难不懵

你可能会想,那多标点这样的数据不就好了吗?

事实上,你不是第一个想到的

但没有大规模这么做,这在很大程度上是因为——

6. 数据标注困难

目前LLMs 仍主要且非常基本地依赖于人工监督。

而打标的人(即标注员,或工程师)可以较好理解简短的对话,并写出最佳响应或对其进行排序

或者检查LLM裁判是否做对了

但很难有人能为几十万字的对话写出「 最佳回答 」,而且还是风牛马不相及的大锅炖

请不要多轮对话-7

最近有篇名为《 NOLIMA: Long-Context Evaluation Beyond Literal Matching 》的论文

也是直接给当前LLMs 的超长对话判了死刑:

请不要多轮对话-8

论文地址: arxiv.org/pdf/2502.05167

该研究指出:

性能随上下文长度增加而下降 。即使像GPT-4o这样的顶级模型,在短对话中表现近乎完美,但文本扩展后也会遭遇滑铁卢。 在32K令牌时,大多数模型性能降至短上下文时的50%以下!

表面级关键词匹配 成为模型的依赖,当这些线索被移除时,性能直线下降。

多步推理能力 在长对话中严重受损。

注意力分散 导致模型被肤浅的信息误导,而非进行真正的推理。

此外还有个一因素:

长对话带来的大量计算还造成了不必要的 环境成本 ,增加了碳排放——

7. 极不环保啊♻️

不过,虽然长未必就好

但只要你觉得好用

尤其是简单任务

请不要多轮对话-9

偶尔乱一下,长一下也没关系

影响不会太大

方便就好

而面对用户们天然会越聊越长的习惯

太长,该怎么办?

各家模型厂商/应用公司也各有不同的处理:

Claude 会直接提醒你超出了上下文窗口限制:

请不要多轮对话-10

而 Claude Code 推出的 auto-compact 功能是我见过的第一个能 显式提供对话压缩的工具

请不要多轮对话-11

它能自动压缩对话历史,在保留重要信息的同时减少token 使用。

ChatGPT 最近也调整了策略

当对话达到一定限制,它会停止对话并提示创建新对话。

这似乎是后加的调整——

之前似乎能无限长进行对话,且从结果上能明显感受到它使用了RAG 和滚动窗口相关的、机制

或许仍还此机制(未进行 精准token 上限测试),只是同时加上了最大上下文的限制

(能rag,但过长时效果会差的没法忍?)

Grok 则(显得)采用了更长的上下文体验

似乎也是利用RAG 和summarize 相关策略来支持超长对话窗口

虽然有时的正确用法是开新对话,但大部分人未必会如此使用

Grok 通过一些优化更好地迎合了人们的使用习惯,也收获了颇多网友好评。

再来说说AI 编程工具 Cursor

相比之下,它显得更不擅长在聊天之间保持上下文

我用下来的感受是: 混乱、丢失很常见

原因很好理解——Cursor 节省成本带来的副作用

Cursor 团队在播客中有提到他们有 本地模型/云端自研模型来评估每次请求需要的内容

来达到速度、成本、效果的最佳平衡

虽然钱省了

但自然也会导致——

不够准

而我的经验是,

若在Cursor 中新开聊天,需要提供更多的上下文信息和参考的文件、要修改的文件、修改思路

才能得到较好的效果

否则可能还不如在原窗口追问,效果反而还更好一些

而 Devin 也有这方面的考量

在我和Devin 进行较长的多轮对话后,Devin 也会贴心建议新开会话

以得到更快的速度和更少的ACU 消耗(省钱)

和更好的效果(更准确的意图理解和执行结果)

你可能要问了:

长对话有这么多问题, 那有什么正确使用姿势吗?

每次都新开个会话吗?

或者什么时候继续对话, 什么时候使用新会话呢?

以及先前对话都不能复用了, 那不是一切要从头开始聊了吗?

也挺麻烦的不是?

那我们应该 如何与LLM对话 才能获得最佳效果呢?

这里给出我的

12 个小小心得分享

1. 避免过长

在和AI 对话时(写prompt 时),要用词精炼

能用10个字的不要用50字,能用词的不要用句

减少重复,精准紧凑,少说废话。

当然,要是就问一两轮的简单任务

那你随意

2. 总结后再开始

与AI 对话有点像与人交谈

当我们聊着聊着,很容易会因跑题而不够聚焦

有时需要重新回归主题,有时则需要针对某个衍生的新话题重新开聊

这就需要定时将主题明确和聚焦,与对方对齐:「 嗯,我们在说什么来着? 」

而对应到与AI 的对话中,则是——

当对话较长时,可以让AI 写一份详细摘要、重要事实和待办事项,然后开始新对话。

这里分享个提示词供参考:

「总结整个对话,对所有涵盖的主题给予同等的权重,无论何时讨论,都保持其完整的上下文。保留您在这次聊天中的回复格式、语气和对话风格,这样如果我要在新的会话中重新开始,感觉就像我在继续这次对话中的相同版本。」

3. Cursor 未必是最好的Coding 工具

虽然Cursor 已经成了我每天必用的工具

(其实不限于coding

但 由于Cursor不想(为了省钱)在聊天中保持较长的上下文

在涉及某些中大型项目或某些复杂的编程任务时

我还是会使用Claude

请不要多轮对话-12

可以使用Claude Code 来完成

而如果开了Claude 会员且想省点钱避免API 开支

请不要多轮对话-13

也可以将项目的GitHub 在Claude 工作台中绑定后对话

有时会比直接用Cursor 好很多

4. 任务分流

每当有新想法或新任务时,打开新对话

而需要用到上下文时,找到之前的对话追问。

5. 一次性问题

一次性问题,我通常会在新对话中问

且通常会在完成后存档删除

请不要多轮对话-14

如果用的是ChatGPT,还可以使用 临时聊天 功能来省掉删除的成本。

6. 使用改进版的prompt

如果初版prompt有问题,一种方案是追问修正,另一种是修改为v2版本从头开始

我会使用后者

比如问MCP 是什么,如果一开始打错成了MPC,可以追问来调整

请不要多轮对话-15

也可以修改原prompt 来调整

请不要多轮对话-16

若是只问这一次,倒是无关紧要

但你若是想深入系统了解MCP 相关知识并不断追问

那开头和过程中一直出错或跑题,注意力就会越来越不聚焦了

7. 重命名对话

对话完成后,ChatGPT 和Claude 会自动为对话起名

DeepSeek 和Grok 也会有

请不要多轮对话-17

可以便于后续寻找时的搜索

但有时取的名字很不好找——并不是很次都取得很好

而且Claude 取的都是英文名

就会导致对英语不熟悉的小伙伴,可能用中文对的话,想搜英文时得找好半天

因此可以对重要的对话,rename 一下

能便于你后续的记忆和查找

8. 书签功能

请不要多轮对话-18

也可以使用书签功能,同样方便对常用对话的快速查找和重复使用

9. 使用projects 功能

请不要多轮对话-19

请不要多轮对话-20

ChatGPT 和Claude 都提供了 项目 功能

可以试试把一些有共性/共同目标的对话放到同一个project 中

虽然不是必需,但会更方便管理

10. 分叉使用

如果你不知道什么叫分叉(我临时起的名字)

那请看下图(其实上面就展示过了):

请不要多轮对话-21

也就是对多轮对话中的某一轮进行修改后重新提问

(当然,你也可以不改,而是让AI 重新回答

此时你与AI 的多轮对话就劈叉了

请不要多轮对话-22

这有点像是平行宇宙——

在任何一个节点均可分叉独立进行演变且各自再无交集

数据结构上来说,则是个树状结果

各家工具都提供分叉功能

ChatGPT/Claude/Grok/DeepSeek…

比如看我与Claude 某个对话的劈叉:

请不要多轮对话-23

这样看可能不够直观

我把数据导了出来做了个简单的可视化,长这样:

请不要多轮对话-24

只是据我观察,似乎很多人更喜欢追问而非分叉使用

有人可能要问:

分叉有什么用?

我只能说——

如果你是认真读到这里,那就知道分叉相比追问好在哪里了

此外,分叉还有个用

11. 平替版GPTs

如果你有用过ChatGPT 的GPTs,那你应该好理解下面的公式:

请不要多轮对话-25

比如我用4o 来生成公众号封面的对话:

请不要多轮对话-26

使用时则编辑树中第二层用户指令,再发送成新的劈叉即可:

请不要多轮对话-27

12. 分叉展示插件

而随着腿劈多了,不对,叉劈多了,自然就偶尔会想要找某一任前任再叙旧情

此时就会发现,找起来还挺麻烦

请不要多轮对话-28

像上面这样的一棵大树

如果此时你在52 节点上,想要回到19 节点续旧

可想可知

这个任务不是脑子好就行

记忆也得好,还不能有幻觉!

为此,我还为自己量身制作了个插件(当然是用AI)来展示对话分叉

(目前仅支持Claude 和ChatGPT

插件会在 Claude 和ChatGPT 网页的右下角添加一个按钮,长这样:

请不要多轮对话-29

只需要点击一下,插件就会自动获取当前对话的整个树

并在新的tab 中展示(我的一个真实例子):

请不要多轮对话-30

欢迎安装使用,插件地址见:

https://chromewebstore.google.com/detail/chatmind-visualizer/ikgckfehbaiphhbjoomnppcfdigamgca

(插件已过审上架,可放心食用)

目前只支持了我最常劈叉的两个平台

如果你有想要的平台,可以告诉我

我还有些其他的功能性小想法

就抽空一起加了

以上就是我12 个小小的心得分享

最后

也希望ChatGPT / Claude 们能多优化一下用户体验

包括但不限于下述一些

改进建议

1. 更好用的搜索

在搜索历史对话时,不要只能搜索标题

再加个关键词搜索和语义结合的搜索,并不难啊

还有对话内容的搜索

随时有点很浪费服务端资源(倒排索引),但真的刚需

希望早点能用上

能节省我不少时间(虽然我现在会及时+书签有所改善

2. 精准的上下文管理

聚焦在最相关、最紧凑的内容上

版权声明:
作者:shadowrocket
链接:https://www.shadowrocket9.top/195.html
来源:Shadowrocket官网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>