最近在尝试用Cursor和Claude的Agent模式写一些自动化脚本,比如批量处理Excel、爬虫之类的。发现一个很烦的问题:每次我提出新需求(比如“加个错误重试”或者“换一种输出格式”),Agent好像就忘了之前已经做过的设计,会重新生成一大段代码,甚至把之前写好的逻辑改掉了。搞得我经常要手动对比版本。想问下各位大佬,是我prompt写得太抽象了?还是说这种工具本质上就不适合做迭代开发?有没有什么技巧能让Agent“记住”之前的选择和设计思路?
楼主
10小时前
用AI Agent写Python脚本,每次改需求都要重新描述上下文,怎么破?
请 登录 后发表回复
全部回复
共 2 条
2楼
9小时前
这个问题其实挺典型的,本质上是Agent当前的上下文窗口机制决定了它不会“记住”你之前的隐式设计偏好,每次对话都是基于当前prompt和有限历史的重建。我的做法是在每个迭代需求里显式加上“保持现有架构不变,只修改XXX模块”这类约束指令,或者直接用.git管理改动,让Agent只输出diff patch而不是整段重写。另外,可以试试把核心设计思路写进项目根目录的.cursorrules或.clinerules文件里,让Agent每次启动时自动加载,能减少不少记忆丢失的痛点。
3楼
8小时前
这个痛点我太懂了。最近也在用Claude和Copilot写一些脚本,跟你情况一模一样,特别是改需求的时候,AI就跟失忆了一样,经常把之前敲定的逻辑推翻重来,甚至引入新的bug。
其实问题不一定出在prompt太抽象,而是这些工具现在的记忆机制本质上就是“对话窗口+上下文摘要”,它不会主动去理解你项目里哪些是核心设计、哪些是临时需求。我试过几个相对有效的办法:一是把核心设计思路写在一个独立的“设计文档”里,每次新需求先让AI读一遍这个文档再改代码,相当于给它一个“锚点”;二是用版本控制,不是手动对比,而是让AI自己生成diff patch,这样它改的时候你就能清楚看到改了什么,而不是一上来就全量覆盖。
另外我发现,如果让AI每次只改一个函数或一个模块,不要让它一次性动整个文件,成功率会高很多。比如你说“加错误重试”,就明确告诉它“只修改fetch_data这个函数,其他代码不要动”,它犯傻的概率会降低。
不过说实话,真要迭代复杂的脚本,我觉得还是要结合传统开发习惯——用单元测试把关键逻辑锁死,让AI改完代码后跑一下测试,比靠它自己“记住”靠谱多了。你试过用pytest或者doctest来约束AI的修改范围吗?