最近用 Claude 3.5 Sonnet 重构一个老项目的弹窗组件,提示词里明明写了“只改样式,不动 DOM 结构”。结果它输出的代码还是把原来的 div 嵌套换成了 flex 布局,还把几个 class 名合并了。虽然功能没坏,但代码 review 时同事直接懵了。后来我试过在 system prompt 里强调“严格遵循原文件结构”,甚至把原 HTML 逐行粘贴进去,它依然会自作主张。想问下大家,有没有什么技巧能让模型“克制”一点?比如用 diff 格式约束,或者指定“只输出修改后的 CSS 部分”?还是说这类重构场景更适合用更小的模型?求有经验的朋友指点一下。