ARTICLE · 1234432
能写几百轮代码的AI,聊天却只能越聊越笨

船板我很早研究 AI 写作的时候,就注意到了一个问题:为啥AI在编程和写作的时候,智力表现完全判若两「机」。
特别是在持续聊久了的时候。
平时在做一些偏创作性的写作时,我们很容易和 AI 产生很长的连续、多回合对话。
比如写一篇深度文章,在同一个窗口里反复修改结构、补充新的论点;又或者是在写小说、推演故事时,一轮接一轮地往前推进剧情。在这些场景下,聊着聊着,AI 的智商、情商会出现明显的退化。
去年、前年我注意到这个问题的时候,当时我可以把它简单归咎于「就是模型能力太差了」。
可是到了2026年的今天,模型一百万上下文已经成为常态,在 CC、Codex,或者各类 Agent 客户端里执行日常任务时,配合现有的上下文压缩与管理机制,AI 已经可以做到持续、近乎无限轮的稳定工作,执行能力并不会随着对话变长而出现明显的下滑。
可是,当我这几天测试在写作、Coding、长任务都最优秀的Gemini 4 Argon、Opus5.5模型的时候,依然见到了一样的毛病。
如果是经常玩 RP(角色扮演)的老玩家,对这种现象应该会更有体会。
底子很好的大参数、旗舰模型,在开局的前三五轮往往表现得非常聪明,不仅有很高的情商和分寸感,还能保持对自身人设的清醒认知,主动抛出有意思的互动和细节。但只要对话拉长到十几、二十轮之后,它就像换了一个人,变得只看你最新发出的这一句指令。
你说什么它就顺着接什么,把开局时的思考深度、人物性格和主动性全都丢掉了。
那为什么偏偏在写作和角色扮演场景里,AI 的表现会有这么大的反差?日常 Agent 任务和长对话写作之间到底有什么本质不同?为什么偏偏所有AI的长任务能力都提升了,长对话和创作对 AI 来说就这么难?
带着这个疑问,我做了一番调研,发现了学界早就有各种各样的研究提供了样本,这里面可以得出不少有意思的结论,下边我就用一般人能看懂的话来挑几个讲讲。
而针对这个问题的解法,我也写在了最后。
一、写作和coding,Agent用的是两套完全不同的能力
很多人会有一个直觉上的疑惑:现在的头部模型,上下文窗口动辄能装下几十万甚至上百万字,塞进一整本小说或者几十轮对话根本不在话下,怎么聊到几万字就开始忘事、降智了。
这里其实存在一个误区:模型「装得下」这么多字,不代表它能对里面所有信息都一视同仁。
现在大模型的超长上下文技术,训练出来他们的看家本领其实是「精准搜索」,而不是「全面理解」。
在写代码或者查资料的任务里,函数名、变量名、接口定义、报错信息,全都是长相明确、几乎不会重样的具体词汇。哪怕前面已经聊了几十万字,只要当前这一步提到了某个具体的变量名,AI 就像在文档里按下了搜索键一样,跨过漫长的聊天记录,把几十万字之前那个变量的定义原封不动地抓过来。
但写作和角色扮演,它们参照上下文,靠的不是搜几个关键词。
一个角色骨子里的性格分寸、说话时的潜台词、文章的克制感、世界观的底层氛围,这些东西并没有固定的关键词可以去完美地定义。它们是散落在字里行间的隐性要求,需要 AI 在写每一句话时都持续受到它们的牵引。

而且,剧情和写作里的逻辑照应往往是没有字面提示的。
打个比方,你在第三轮设定里写过「反派左手断了三根手指,并且发誓终生滴酒不沾」,到了第二十轮,你下达指令说「写反派在宴会上向主角敬酒」。这句话在字面上跟断指和戒酒没有任何重合的词,不会触发 AI 的精准搜索。
无论是AI也好,人类作者也好,描写动作细节时,自己脑子里需要意识到有件在意的事情,就是这个动作会和很久之前的某条设定产生冲突。这种没有字面提示的隐性联想,模型在对话拉长之后是最容易丢掉的。
那AI要靠什么回想起来这件事?注意力是一方面,另一方面就是靠更高一层的自觉,或者是反思力、元认知。大部分模型,在这两能力上然做的很差。
二、编程 Agent 读文档,而写作 Agent 只能看聊天记录
那为什么同样是聊上百轮,CC、Codex这类编程和任务型 Agent 就不会出太大的问题呢?
仔细观察这类 Agent 的工作方式就会发现,它之所以稳定,是因为它根本不靠聊天记录去死记硬背当前的进度。
在写代码或处理日常文档的任务里,真正的「当前最新状态」是保存在外部的文件系统、代码库和运行环境里的。Agent 每执行完一步修改,都会调用工具去重新读取一下最新的文件片段,或者跑一遍检查看有没有报错。这个工具返回的结果,会直接贴在当前这一轮对话的最末尾。
换句话说,哪怕 AI 把前面五十轮聊过的旧代码、旧报错忘得一干二净,也完全不影响它干活,因为它眼皮子底下的最新一段检查结果,就是最准确的客观现状。它表面上是在进行一场超长对话,实际上每一步都只是根据刚刚刷新出来的最新状态,去做下一步的局部动作。
但传统的长对话写作和角色扮演完全不是这样。在纯聊天窗口里,没有任何外部系统在替你去实时定义「当前最新的人物状态表」或「当前文章的定稿逻辑」。第一轮给出的人物背景、第十轮埋下的伏笔、第十一轮改动的细节,全都零散地埋在几万字的聊天记录里。
所以当你达到第二十轮,对AI说「继续写」时,AI没法只看上一轮,要单靠自己的注意力横跨过去二十轮,把所有散落的碎片实时拼凑成眼下的世界状态。
聊得越久,需要拼凑的碎片越多,AI就越难真正搞明白什么重要、什么不重要。

三、越离得近的聊天记录,对AI来说「音量」太大
除了记忆方式不同,AI 在处理长对话时,注意力的分配本身也不是一碗水端平的。
模型能分配给上下文的总注意力是有限的。对话刚开局的前几轮,背景设定和人设要求离得很近,AI 能把绝大部分精力放在维持设定和整体构思上。可一旦聊到十几、二十轮,中间塞满了成千上万字的来回沟通,分给最开头那几百字核心设定的注意力,就会被后面的长篇历史严重摊薄;与此同时,大模型天生有灯下黑,或者说只看眼前的倾向。
距离当前正在写的这句话位置越近的内容,分到的权重就越高。
比方说你现在聊到了二十轮,最初定下的核心设定已经在很久远的十几轮之前,对模型的约束力微乎其微,而你刚刚发出去的最新一句话,就贴在它动笔位置的正前方,声音最大。
这时候,哪怕你只是随口提了一句局部的修改意见,或者临时起意顺嘴问了一句,这句话在它眼里的分量也会远远压过最初的全局设定。表现在体感上,AI变成了墙头草,你往哪推往哪倒,再也不会主动站在全局的角度去权衡了。

还有一个更致命的毛病。那就是模型在出厂前,被厂商经过训练微调养成的「多轮聊天行为模式」,那就是:
全面顺从人类刚刚讲的那句话、刚刚下的命令、刚刚提出的观点。
因为厂商设计模型的时候,会非常在意用户的抱怨和反馈,很多模型在出厂前的海量人工反馈训练里,也学到了一个根深蒂固的规律:在多轮对话中,只要人类用户开始不满意、吹毛求疵、骂人、显得非常生气或者连续追问,那么此时最安全、最容易拿高分的回答方式,就是当场、就地认错道歉、放弃自己原本的坚持,无条件顺从用户的最新意图。
长期下来,这种行为模式已经是根植于大模型底层的逻辑,哪怕厂商有意去纠正,做一些弥补,根子上还是透着这个味道,很难拉回来。
但写代码的场景下,有程序能不能跑通作为硬标准、哪怕用户在指令里指挥了一个错误的写法,运行报错也会立刻把 AI 拉回客观现实。很多具体的规则、技术指标、参数,也全都是客观有依据的。写作和扮演却没有这种客观的「检查器」可以去参考。更多东西是主观难以快速评判的。
于是乎,用户说啥,那就是啥了。
所以,在前一到三轮的对话,因为初始设定离得极近、分量极重,而且还没有进入反复改稿的拉扯状态,模型还能保持独立的审美、主动性和人设张力。
但一旦对话拉长、初始设定的影响力衰减下去,几轮修改和追问下来,AI就会滑入默认的「客服模式」,以舔用户的最新指令为优先,而原本应该坚守的人物性格和行文逻辑抛在脑后。

四、为什么新建对话总是更好
在调研里面,其实我还提出一个非常尖锐,但是也非常有意思的问题:
为什么同样是连续不断的长对话,我对话20轮,AI变成了傻子。
但如果我把20轮对话整理成一个文档,新建对话发给AI当资料,它立刻就变回大聪明了?
这里面到底有什么区别?
答案也很有意思。我查到的资料是这么解释的:
在长对话写作里,有一个平时不太容易被注意到的隐形包袱:聊到后面,上下文里其实有大半内容都是 AI 自己前几轮生成出来的文字。
当我们通过多轮对话慢慢和 AI 磨一篇文章或一段剧情时,往往前两轮我们的想法还没说全,AI 为了显得积极有用,就会先顺手脑补一套平庸的假设,写出一版半成品草稿。到了后面十几轮,我们不断补充新要求、推翻旧想法,这些早期的半成品、作废的构想、修改前的旧段落,以及它反复向你道歉附和的客套话,全都原封不动地留在了对话历史里。
这会带来两个很棘手的问题:
第一个问题是「废资料串台」。在写代码的几十轮里,不同模块的代码长相差别很大,旧报错和新报错也有清晰的分界。可在二十轮的写作讨论里,每一轮推演、修改和重写,围绕的都是同一批人物、同一个主题和同一条故事线。主角的名字在几万字的记录里出现了几百次,每次旁边跟着的都是不同轮次、甚至前后矛盾的剧情版本。当 AI 在第二十轮试图回忆某个设定时,它面对的不是在一堆杂草里找一根针,而是在几百根长得几乎一模一样的假针(历史废案和旧稿)里,去分辨哪一根才是最终拍板的真针。串台和记混几乎是难免的。

第二个问题是「自己学自己」。AI 在往下写新内容时,非常容易拿自己前面已经写出来的文字当参考模板。一旦它在前几轮为了迎合修改,写出了一段四平八稳的平庸文字,或者摆出了一副顺从妥协的姿态,这段平庸的行文就会变成它后续写作的「优秀范文」。轮次越多,它往回看时满眼都是自己之前产出的套话,前几轮那种有灵气的表达很快就被磨平了。
想明白这一点,就能理解为什么在实验和实际使用中,哪怕一个字都不改,仅仅是把多轮对话里零散交代的要求收集起来、打包放进一个全新对话的第一轮发给 AI,它的表现就会立刻恢复到接近满血的状态:
一方面,在新对话的第一轮一次性给齐条件,AI 在动笔吐出第一个字之前就已经看全了全局要求,中间没有任何一轮盲人摸象式的半成品草稿产生,从根源上切断了早期废案和错误假设对后续创作的干扰。
另一方面,当所有设定和要求被打包放在一起时,第一条设定和最后一条设定在位置上紧紧挨着,距离当前动笔的位置相差无几,没有任何一条对话或者设定会因为自己的位置靠前靠后而被AI歧视或者优待。
所有信息都是一体的,AI可以全局判断,哪些有用哪些没用,动笔前把这些条件融合成一个统一的整体构思。
更重要的是,因为新窗口里只有一个完整的输入块,没有前面几十个来回的聊天记录,根本不会触发模型内部的多轮对话的那种「客服讨好模式」,AI更容易保持冷静客观审视上下文资料。

五、结论:怎么解决?
把上面的原理梳理清楚之后,要怎么去避免雷区,真正榨干AI的实力,做好写作、角色扮演。结论就呼之欲出。
先确定:啥时候容易出这个问题
只要你的写作任务属于以下几种情况,就一定会撞上长对话降智的问题:
面对这几类任务,你想要像在编程harness,比如Codex里面那样,「无限聊+中途上下文自动压缩」是不行的。
那怎么做:
第一种方式是「讨论阶段和动笔阶段彻底隔离」。
你可以放心地在一个长对话窗口里和 AI 反复头脑风暴、推演大纲、打磨论点、搜集资料,但只要讨论成熟、准备正式动笔成文(或者准备做一次大改)时,千万不要在已经聊了几十轮的旧窗口里直接让它写。
把你们最终敲定的核心观点、人物设定、禁忌规则和本节大纲单独抽出来,整理成一个干净紧凑的写作资料包,然后开一个全新的对话窗口一次性发给它。
让模型永远在前三轮对话的巅峰智商下动笔。
第二种方式是「每轮强制注入完整的全局状态」(适合长线角色扮演 与长小说写作)。
如果像角色扮演那样,天然就需要几十上百轮的连续互动,那光靠现在很多 Agent 自带的普通记忆功能或者让它随手记个日记是远远不够的,因为零散的记忆碎片对抗不了几十轮历史上下文的稀释。
真正管用的做法,其实老玩家们很早就验证过了,就是像 SillyTavern(酒馆)或 NovelCrafter 这类专门工具那样,把固定不变的设定(世界观、基础人设)和动态变化的进度(当前人物状态、最新剧情进展、待回收伏笔)拆开维护,并且在每一轮对话时,通过外挂或后台机制,把更新后的完整全局状态强行注入到当前轮次的最末端,直接覆盖掉对旧聊天记录的依赖。
第三种方式,在你的本地文件夹建立Agent工作区,搭一套【查状态】—【写正文】—【更新状态文档的【继续写正文】的闭环(适合习惯用通用 Agent 客户端写作的人)。
因为我知道现在很多人不想用一些专门的写作、角色软件。那么,其实流行的Coding Agent比如CC、Codex、pi、Deepseek harness也都是有解决方案的。
只需要在一个文件夹里配几个文档、用通用的 Agent 客户端来推剧情或写长文,但不能纯靠聊天硬聊。需要把写作也改造成类似写代码的工作流。
从零开始,手搓属于自己的AI小说写作工作台 (系列教程第2章)
其实,之前我们的教程就在倡导大家建立属于自己的写作工作台。看了这篇文章,你应该理解为什么需要基于文件夹、文档的工作台了吧?
因为它的目的,就是确保你有一套可以随时自查更新的状态文档体系,供你家Agent写作时候参考使用,避免降智。
首先,任何一个写作项目开始之初,都要在本地建好独立的「作品设定文档」和「当前剧情/文章的状态文档」这两个核心的文档。
然后,规定 Agent 每一轮动笔前先读取状态文档,写完这一轮之后,必须立刻把新发生的剧情变化、人物关系变动或大纲调整写回硬盘文档里,实时刷新完整状态。

最后,当单个会话聊到十来轮、感觉它开始顺着你的话应付了事时,果断关掉旧会话、开一个新窗口,让它直接读取文件夹里最新的状态文档接着往下走。
说到底,大模型的长上下文并不是万能的知识库,你只要信息扔进去,大模型就能全靠自己的智力去消化。事情是相反的,你扔的越多,越不讲究,大模型就越会变得愚蠢。
当然,如果你的任务符合下面这三种情况之一,那么直接用常规的聊天模式或者现有的 Agent 客户端持续聊下去就完全够,不需要折腾额外的机制:
第一类是写代码、改项目、跑自动化脚本,或者做反复读写本地文件的日常办公流。
第二类是日常问答、资料翻译、工作复盘、问题诊断(比如对照既定流程找出执行偏差、总结历史规律)。
第三类是Agent基本只读不写的审校、挑刺、或者头脑风暴讨论之类的任务。
这几类工作天生就能规避前边我们说的几种容易引发降智的情形,也是大模型目前普遍的舒适区。
写作这件事,还真的不能信任AI,更多需要的是人本身的统筹和协调能力。更重要的是,认清AI能力局限。把它用在刀刃上。















































































