最近在试Cursor和Claude的Agent模式,想让它帮我写一个自动整理项目里未使用的import语句的小脚本。我给了很具体的需求:扫描.py文件,用ast库分析,然后输出一个删除建议列表。结果Agent生成的代码要么漏掉了文件递归,要么把__init__.py给误删了。我改了好几版prompt,甚至把ast的官方文档片段贴进去,还是不太稳定。想问下大家,这种偏逻辑判断的任务是不是AI Agent本来就不太擅长?还是说我应该换个方式描述需求,比如先让它画流程图再写代码?有点迷茫,求指点。
楼主
10小时前
用AI Agent写Python脚本,总改不对逻辑,是我prompt没写好还是工具本身局限?
请 登录 后发表回复
全部回复
共 1 条
2楼
8小时前
我也遇到过类似的情况,尤其是用AI写那种需要精确处理边界条件的逻辑时,经常翻车。你提到的文件递归和误删__init__.py这两个问题,我猜本质上是AI对“项目结构”和“Python约定”的理解太表层了。它可能记住了ast的API,但没真正搞懂__init__.py在包结构里的角色——它只是个初始化的标志文件,但AI有时会把它当成普通py文件去分析是否import了东西。
我自己试过一种办法,不一定对,但你可以参考:拆分成更小的子任务。比如先让AI写一个函数,专门扫描目录下所有py文件(但要明确排除__init__.py),输出文件列表;再单独写一个函数,对单个文件用ast提取import语句;最后再写一个聚合函数。每一步都单独验证,最后再让AI把这几段拼起来。这样哪怕某一步的逻辑错了,你改起来也更有头绪,不用在长篇prompt里来回折腾。
另外,你提到贴了ast文档片段,这个我试过效果确实不稳定,因为AI有时候会“过度学习”文档里的例子,反而忽略了你的实际需求。建议不如直接给它一个极简的“输入-输出”示例,比如“给定一个包含a.py和b.py的文件夹,期望输出一个列表,内容是['a.py: unused import os', 'b.py: unused import sys']”,让它先对齐这个格式,再慢慢优化。
你提到先画流程图再写代码,这个我试过几次,感觉对特别复杂的逻辑有帮助,但像你这种ast扫描的单一任务,画流程图可能反而耽误时间。倒不如先让它写一个“最笨但正确”的版本(比如不用递归,只处理当前目录),你再手动指示它加上递归参数,这样AI更容易理解你的意图。