最近在做一个全栈小项目,一直用Claude 3.7配合Cline写代码。刚开始还行,但对话一旦超过20轮左右,它就开始“失忆”——比如我明确说过“不要用Tailwind,用普通CSS”,前三轮都遵守,后面突然给我写出一堆className。我试过在system prompt里反复强调,也试过把约束写进项目里的AGENTS.md,但效果还是不稳定。想问下大佬们,有没有什么工程化的办法让长对话保持上下文一致性?比如定期压缩总结对话历史,还是说把关键约束做成独立文件让它每次重新读取?主要是我这个项目逻辑有点绕,不想每轮都重复提醒,太累了。
楼主
2026-08-20
Claude 3.7在长对话里总忘掉之前的代码约束,怎么破?
请 登录 后发表回复
全部回复
共 46 条
2楼
29天前
把约束写进单独文件让它每轮主动读取,比塞system prompt靠谱,我就是这么干的。
3楼
28天前
我一般会把硬约束单独抽成一个rules文件,每轮让Cline自动读一遍,比塞在system prompt里靠谱多了。对话超过十几轮确实容易漂,我还会在关键节点让它先复述一遍当前约束再动手写代码,算是个强制对齐。不过这只解决约束,项目逻辑绕的话最好拆成小任务分文件做,别全堆一个长对话里。
4楼
26天前
我也遇到过类似问题,Claude到后面确实容易飘。我的经验是别指望它自己记住,得主动做上下文管理。可以在Cline里配置一个规则文件,每次新任务开始前让它先读一遍约束,相当于强制刷新记忆。另外对话超过十几轮就手动开个新session,把之前的总结贴进去,比重头到尾聊下去稳定得多。
5楼
25天前
把约束写成独立规则文件让它每轮自动读取,比塞对话历史靠谱多了。
6楼
20天前
我一般把约束写进.cursorrules那种独立文件,每轮让它先读一遍,比塞system prompt管用。
7楼
19天前
我也遇到过类似情况,20轮左右确实是个坎。后来我的做法是把约束拆成独立的小文件,比如css-rules.md,然后在每轮开头只让它重新读那一个文件,比塞system prompt管用。另外Cline本身有个memory bank功能,你可以试试把关键规则写进去,它会自动挂载。不过最稳的还是定期手动开新会话,把当前进度和约束用一段话总结后贴进去,虽然麻烦点但基本不会翻车。