为什么你的Claude Code越用越蠢?怎么办,不知道?所以写出来的代码稀烂
为什么你的Claude Code越用越蠢?怎么办,不知道?所以写出来的代码稀烂
为什么你的Claude Code越用越蠢?怎么办,不知道?所以写出来的代码稀烂 为什么你的Claude Code越用越蠢?怎么办,不知道?所以写出来的代码稀烂 Modified September 11, 2025 上下文污染到底是什么 简单说,就是你的历史对话无意中创建了一些"有毒"的行为模式,让AI在后续对话中做出不符合预期的响应。 我总结了几种最常见的污染模式: 1. 上下文渗漏 最典型的就是任务边界不清晰。你刚跟AI讨论完A项目的编码风格,立马切换到B项目,AI很可能把A项目的规范带到B项目里。 2. 指令冲突 比如你既告诉AI"写代码前要充分测试",又在紧急情况下说"先部署,测试后补"。AI面对冲突指令时会产生决策瘫痪,表现就是回复变得模糊或者不一致。 3. 时间混淆 几小时前的对话设定可能会莫名其妙地影响当前任务。你早上讨论的数据库表结构影响了下午完全不相关的前端组件开发。 我踩过的那些坑 最离谱的一次:数据结构"中毒" 有次我在开发一个用户权限系统,上午跟Claude Code讨论用户表的设计,定义了很多字段。下午切换到数字人口型匹配算法的开发,Claude Code居然在算法代码里引用了用户表的字段名,完全风马牛不相及! 最无语的一次:风格"污染" 调试一个老项目时,代码风格比较随意,注释也不规范。然后继续开发新功能,Claude Code竟然学会了这种"糟糕"的代码风格,连变量命名都变得很随意。我当时就想:这AI怎么还会"近朱者赤,近墨者黑"? 最危险的一次:权限"混乱" 跟Claude讨论过管理员权限的实现后,在开发普通用户功能时,它居然默认给用户加了管理员权限!幸好是在测试环境,不然就出大事了。 如何避免上下文污染 经过无数次踩坑,我总结了一套"上下文卫生"的方法: 1. 明确任务边界 每次切换项目或任务类型时,我都会明确告诉Claude:"现在我们开始一个新项目",或者"之前的讨论结束了,现在聊别的"。 Code block Plain Text Copy 现在开始新任务:优化产品页面加载速度 之前的部署流程设置在这个任务中不适用 2. 使用结构化标记 我在Claude.md文件里大量使用markdown格式,用清晰的标题和分割线来组织不同类型的指令。比如: Code block Plain Text Copy 前端项目A React开发规范 ... 后端项目B Go开发规范 ... 3. 定期清理上下文 感觉对话"变味"了?直接 /clear 或者开新会话。虽然会丢失一些历史信息,但总比被污染的上下文影响工作效率要好。 4. 避免指令冲突 给AI的指令要尽量明确和一致,如果确实需要在不同情况下使用不同策略,要清楚地说明条件。 一些实用的"解毒"技巧 技巧1:上下文重启法 Code block Plain Text Copy 请忽略之前所有的对话历史,我们现在开始一个全新的任务... 技巧2:明确否定法 Code block Plain Text Copy 注意:这次的代码风格要求与之前讨论的完全不同,请不要参考之前的任何代码规范... 技巧3:分会话隔离法 不同类型的工作使用不同的Claude Code会话,避免交叉污染。我现在有专门的"代码开发会话"、"文档写作会话"、"问题调试会话"等。 技巧4:定期检查法 每隔一段时间问问自己:AI最近的表现是不是有点"奇怪"?如果是,很可能上下文被污染了。 写在最后 做了两年AI智能体开发,我觉得 上下文管理比提示词工程更重要 。很多人花大量时间优化提示词,却忽视了上下文卫生,结果就像在污水里洗衣服一样,再好的洗衣粉也没用。 现在我把上下文污染意识当作使用AI的基本素养,就像写代码要注意内存泄漏,使用AI也要注意上下文污染,定期清理,保持卫生。 其实AI和人一样,都会被环境影响。 我们在和AI协作时,要意识到我们不只是在给它下指令,更是在塑造它的"思维环境"。 每一次对话都在向这个环境中添加"信息",如果我们不注意信息的质量和组织方式,最终受影响的还是我们自己。 最近我在开发新的AI智能体产品时,专门加入了上下文污染检测功能,不出意外是业内第一个在运行时这么做的,把经验分享出来,也是希望能帮助更多人避免这个坑。毕竟,工具越强大,使用时越需要意识和技巧。 你有没有遇到过类似的情况?AI突然"变蠢"或者行为异常?欢迎在评论区分享你的经历,我们一起交流避坑心得! 栗子KK, 一个在AI浪潮中游泳的AI产品Founder 点赞、在看、关注 三连走起来,让我们一起聊科技、聊产品、聊未来 🚀 上下文污染到底是什么 简单说,就是你的历史对话无意中创建了一些"有毒"的行为模式,让AI在后续对话中做出不符合预期的响应。 我总结了几种最常见的污染模式: 1. 上下文渗漏 最典型的就是任务边界不清晰。你刚跟AI讨论完A项目的编码风格,立马切换到B项目,AI很可能把A项目的规范带到B项目里。 2. 指令冲突 比如你既告诉AI"写代码前要充分测试",又在紧急情况下说"先部署,测试后补"。AI面对冲突指令时会产生决策瘫痪,表现就是回复变得模糊或者不一致。 3. 时间混淆 几小时前的对话设定可能会莫名其妙地影响当前任务。你早上讨论的数据库表结构影响了下午完全不相关的前端组件开发。 我踩过的那些坑 最离谱的一次:数据结构"中毒" 有次我在开发一个用户权限系统,上午跟Claude Code讨论用户表的设计,定义了很多字段。下午切换到数字人口型匹配算法的开发,Claude Code居然在算法代码里引用了用户表的字段名,完全风马牛不相及! 最无语的一次:风格"污染" 调试一个老项目时,代码风格比较随意,注释也不规范。然后继续开发新功能,Claude Code竟然学会了这种"糟糕"的代码风格,连变量命名都变得很随意。我当时就想:这AI怎么还会"近朱者赤,近墨者黑"? 最危险的一次:权限"混乱" 跟Claude讨论过管理员权限的实现后,在开发普通用户功能时,它居然默认给用户加了管理员权限!幸好是在测试环境,不然就出大事了。 如何避免上下文污染 经过无数次踩坑,我总结了一套"上下文卫生"的方法: 1. 明确任务边界 每次切换项目或任务类型时,我都会明确告诉Claude:"现在我们开始一个新项目",或者"之前的讨论结束了,现在聊别的"。 2. 使用结构化标记 我在Claude.md文件里大量使用markdown格式,用清晰的标题和分割线来组织不同类型的指令。比如: 3. 定期清理上下文 感觉对话"变味"了?直接 /clear 或者开新会话。虽然会丢失一些历史信息,但总比被污染的上下文影响工作效率要好。 4. 避免指令冲突 给AI的指令要尽量明确和一致,如果确实需要在不同情况下使用不同策略,要清楚地说明条件。 一些实用的"解毒"技巧 技巧1:上下文重启法 技巧2:明确否定法 技巧3:分会话隔离法 不同类型的工作使用不同的Claude Code会话,避免交叉污染。我现在有专门的"代码开发会话"、"文档写作会话"、"问题调试会话"等。 技巧4:定期检查法 每隔一段时间问问自己:AI最近的表现是不是有点"奇怪"?如果是,很可能上下文被污染了。 写在最后 做了两年AI智能体开发,我觉得 上下文管理比提示词工程更重要 。很多人花大量时间优化提示词,却忽视了上下文卫生,结果就像在污水里洗衣服一样,再好的洗衣粉也没用。 现在我把上下文污染意识当作使用AI的基本素养,就像写代码要注意内存泄漏,使用AI也要注意上下文污染,定期清理,保持卫生。 其实AI和人一样,都会被环境影响。 我们在和AI协作时,要意识到我们不只是在给它下指令,更是在塑造它的"思维环境"。 每一次对话都在向这个环境中添加"信息",如果我们不注意信息的质量和组织方式,最终受影响的还是我们自己。 最近我在开发新的AI智能体产品时,专门加入了上下文污染检测功能,不出意外是业内第一个在运行时这么做的,把经验分享出来,也是希望能帮助更多人避免这个坑。毕竟,工具越强大,使用时越需要意识和技巧。 你有没有遇到过类似的情况?AI突然"变蠢"或者行为异常?欢迎在评论区分享你的经历,我们一起交流避坑心得! 栗子KK, 一个在AI浪潮中游泳的AI产品Founder 点赞、在看、关注 三连走起来,让我们一起聊科技、聊产品、聊未来 🚀 🔗 原文链接: https://mp.weixin.qq.com/s/BK2EEgbu... https://mp.weixin.qq.com/s/BK2EEgbu... 原创 栗子KK 数镜智心2025年08月28日 07:06 北京 最近在公众号上分享AI开发和工具使用经验,收到很多的私信就是:"为什么我的Cursor用着用着就变蠢了?"、"为什么同样的提示词,有时候好用有时候不好用?" 说实话,刚开始用Claude Code的时候,我以为自己已经足够了解它了——毕竟已经用过几乎所有的AI编程IDE 烧了2000美金在AI写代码上,我发现了一个残酷真相 ,各种AI工具都玩过。结果现实给了我一记响亮的耳光。直到某天我突然意识到: 问题不在AI,而在于我们无意中"毒害"了它的上下文 。 烧了2000美金在AI写代码上,我发现了一个残酷真相 我是怎么发现这个问题的 记得那是个周五下午,我正在用Claude Code更新一个项目的API接口。写完代码后随口说了句"帮我部署一下",然后就下班了。 第二周继续开发新功能,写了一段测试代码,Claude居然直接给我部署了!当时我整个人都懵了,赶紧回滚,心想这AI怎么这么"积极"? 一开始我以为是Claude Code的某个更新导致的,后来才明白: 我在上一次的对话中建立了"代码更新→立即部署"的行为模式,Claude Code一不小心把这个模式记住了,并且应用到了后续所有的代码操作上 。 这就像你跟一个记忆力超强但理解力有限的助手工作,你的每一个操作组合都可能被它记住并错误地复用。