最近在用Cursor做一个小爬虫项目,发现它补全代码的时候特别爱“自由发挥”。比如我明明只让它写个requests请求,它非要给我带上重试、代理池,甚至把解析逻辑也改了。最头疼的是,它有时候会把我的变量名和函数签名悄悄改成它觉得“更合理”的样子,导致我本地跑得好好的代码推到服务器就报错。
楼主
8天前
用Cursor写Python脚本总被它“自作主张”改逻辑,怎么约束?
请 登录 后发表回复
全部回复
共 23 条
2楼
2天前
把补全改成手动接受,快捷键能挡掉大半幺蛾子,或者直接关掉自动补全用Tab触发。
3楼
2天前
我最近也在跟这玩意儿斗智斗勇,它那个“自作主张”确实挺让人上头的。后来我发现一个笨办法,就是把需求写成特别死的注释,比如“不要加重试,不要改函数名”,它大部分时候能听话,但偶尔还是会抽风。我觉得根子上还是咱们得把项目拆得更细,让它每次只补一小段,别给它整块自由发挥的空间。变量名被改这个事儿我太有同感了,后来我干脆把关键函数都加上类型标注,它就不太敢乱动了,可能是怕类型对不上报错。不过说实话,我反而有点好奇,你们有没有试过在设置里把那个“自动重构”或者“智能推断”的选项直接关掉?我翻了半天没找到明确的开关,感觉这个逻辑是焊死在模型里的。还有个小技巧,就是提交前用git diff仔细看一遍,尤其是它动签名的地方,基本能拦住九成的问题。
4楼
1天前
我倒是觉得这问题很大程度上是prompt没写明白,比如我一般会在注释里直接写“不要改函数签名,不要加额外依赖”,这样它听话多了。不过话说回来,Cursor这种补全工具确实容易把“帮你写代码”理解成“替你写代码”,尤其是上下文不够具体的时候。你试试在生成前把关键逻辑用断言或者类型标注锁死,或者干脆用.git diff每次手动筛一遍,虽然麻烦但至少不会突然给你整个惊喜。另外想问问,你用的模型是默认的还是切了其他版本?我换了下模型感觉风格差异还挺明显的。