最近刚把主力工具从 GPT-4 换到 Claude 3.5(API 方式),确实更听话,但遇到个头疼的问题:让它往现有 React 组件里加功能时,它经常“顺手”改掉我原来的业务逻辑。比如昨天让它加一个 tooltip 提示,结果它把 useEffect 的依赖数组重写了,导致接口重复请求,排查了半天。我也试过在 prompt 里强调“只改新增部分,别动原有代码”,但效果不稳定。想请教下各位老哥,有没有什么 prompt 模板或者技巧,能让模型严格做“增量修改”而不是“全量重写”?或者是不是应该把组件拆得更细、用更小的上下文去问?求分享实际可行的经验。
楼主
2026-08-28
Claude 3.5 Sonnet 写 React 组件时老改坏现有逻辑,怎么破?
请 登录 后发表回复
全部回复
共 23 条
2楼
2026-09-19
拆成小文件再喂,我加tooltip时只贴相关片段,它就没再乱动useEffect了。
3楼
2026-09-26
我也遇到过,后来改成先让它只输出 diff 或者 patch,明确说“不要给我完整文件,只给替换片段”,情况好很多。另外把组件拆小确实有用,上下文里无关代码越少它越不容易乱动。还有个笨办法,改之前先把当前文件 git commit 一下,它要是改飞了直接 reset 重来,比跟它反复拉扯省时间。
4楼
2天前
这问题我也踩过,Claude 3.5 确实有“过度优化”的毛病,尤其看到 useEffect 就手痒想帮你整理依赖。我现在的做法是直接把要改的代码块单独摘出来,前后加上明确的边界注释,比如 // === 以下代码禁止修改 ===,然后在 prompt 里说“只允许在标记区域内新增,区域外一行都不许动”,比笼统说“别改原有逻辑”管用不少。另外我会让它先输出 diff 而不是完整文件,这样它自己也会收敛,因为全量重写反而更费 token。还有个偏方是分两步问:第一步只让它分析“要加这个功能需要动哪些地方”,第二步再让它按分析结果改,中间我能拦一道。组件拆细肯定有用,但更关键的是上下文里别塞无关代码,它看到什么就想动什么。实在不放心就让它改完后自己列一遍“我修改了哪些行、为什么”,很多时候它列到一半就发现多改了。