最近在用Cursor和Claude帮我写一个内部工具的后端接口,发现一个很尴尬的问题:代码本身逻辑不复杂,但我花在改Prompt上的时间反而更多。比如让它“处理一下异常”,它就会给你塞一堆try-catch,连业务无关的日志都加上了;我说“简洁一点”,它又把必要的参数校验删了。来回改描述,比我自己手写还累。
用AI写代码三个月,感觉Prompt比代码本身还难调,正常吗?
全部回复
共 82 条太正常了,我现在写代码前先花十分钟把需求拆成伪代码级别的注释,再让AI照着填,比直接调prompt省心多了。你那个“简洁一点”的问题我也遇到过,后来干脆在prompt里明确写“不要加日志,不要加注释,只写核心逻辑”,效果立竿见影。不过说实话,这玩意儿调多了真有种在带新人的错觉,你得不断告诉它边界在哪,但至少它不会跟你顶嘴,忍忍吧。
太正常了,prompt调优本质上是把你的隐性需求显性化,比写代码更费脑。我之前让Claude写个数据清洗脚本,它把空值处理得比业务逻辑还复杂,后来干脆把“不要过度设计”写进prompt,再给它一个具体反例,效果好很多。其实可以试试先让它给方案再写码,把约束拆成几条硬性规则,比反复描述“简洁”管用。
太正常了,AI写代码本质是翻译你的意图,意图没表达清楚,代码自然跑偏。
我现在都先写伪代码注释再让它实现,比单纯磨Prompt省事多了。
太正常了,我刚开始用Copilot写脚本也这样,后来发现关键是把“处理异常”换成“只捕获特定异常并返回错误码”,把“简洁”改成“去掉日志,保留参数校验”,指令越具体它越听话。不过说实话,调Prompt的功夫确实够手写两遍了,现在我只让它生成骨架,细节自己补,反而快。
太正常了,我现在写prompt的时间基本是写代码的两倍。后来学乖了,直接在需求里写清楚“只改核心逻辑,别加日志和参数校验”,再补一句“如果没把握就问我”,效果立刻好很多。另外可以试试让它先列改动点再动手,相当于让它先出个方案,你点头了再写代码,能少走不少弯路。
太正常了,我现在写Prompt的时间是写代码的三倍,感觉像在带一个理解力有限的实习生。
同感,调Prompt就像在驯服一个聪明但没常识的机器人,你得把话说得比代码还精确。
太正常了,prompt调优本质上是把模糊需求翻译成机器能懂的边界条件,比你写代码时脑内逻辑清晰度要求还高。我后来学乖了,直接给AI贴一段自己写的“代码风格指南”,包含异常处理粒度、日志级别、参数校验规则,再让它按这个改,一次过率能到八成。你试试把“简洁”换成“保留参数校验,但去掉日志,错误信息统一用中文”,效果立竿见影。这玩意儿用久了会发现,你不是在写prompt,是在写需求文档的极端精简版。
太正常了,我现在写业务代码基本全靠AI,但Prompt调优的时间占比至少一半。你那个“处理异常”变“加一堆日志”的问题,本质是描述太宽泛,得给它限定边界,比如“只用catch住特定异常并返回错误码,不放日志”。
另外建议把目标拆碎,一次只让它改一个点,大而全的指令它肯定自由发挥。我现在都是拿伪代码当Prompt骨架,让它填肉,比自然语言描述准得多。
太正常了,我刚开始用Copilot写脚本也这德行。后来发现关键是把“边界”写死,比如直接说“只捕获业务异常,其他抛给上层”,比“处理好异常”管用十倍。另外你试试把需求拆成小步骤,一次只让它改一个函数,别指望一句Prompt能搞定所有逻辑,那其实是把调试成本从代码挪到了Prompt上。
太正常了,我刚开始用Copilot写脚本那会儿也是,光调“别写注释”就折腾了半小时,后来发现直接给例子比说人话管用。你试着把“处理异常”换成“只捕获超时和连接错误,其他抛出去”,它立马就懂事儿了。另外建议把想要的代码风格写进项目里的.md文件,比如“禁止日志”“参数校验只写必填项”,这样比每次重新描述省心得多。
太正常了,Prompt调优本质上是给模型画边界,边界画歪了它就自由发挥。我现在的做法是先在代码注释里写清楚“不要动哪些部分”,比在对话里反复强调管用得多。另外异常处理这种需求,直接给个示例代码让它照着改,比描述“简洁”靠谱。你试试把验收标准写进Prompt,比如“只处理HTTP层错误,其他一律不catch”,会省很多来回。
太正常了,Prompt调优本质上是门玄学,尤其“简洁”这种词在模型眼里就是个薛定谔的开关。我现在写复杂逻辑都先让它给个粗糙版本,然后自己改代码,反而比来回磨嘴皮子快。另外你可以试试把约束写进系统提示词,比如“只做参数校验,不要加日志”,比在对话里反复纠正稳定得多。
太正常了,我现在写业务代码基本也是这个状态。Prompt调优的复杂度其实跟代码复杂度是成正比的,尤其是你描述“简洁一点”这种抽象指令,模型根本没法理解你的边界在哪,它只能靠猜。我后来学乖了,会把约束写得特别死,比如“不要加日志,只保留核心try-catch,参数校验用if而不是注解”,这样反而一次到位。还有个坑是,它会把之前对话里的风格带过来,你上一轮让它“详细点”,下一轮它可能就忘了我已经改回“简洁”了,得时不时提醒它。另外我觉得,与其在Prompt里反复描述“不要做什么”,不如直接给它看一段你手写的示例代码,让它照着风格来,效率高很多。说到底,这玩意儿更像是带一个能力很强但情商不稳定的实习生,你需要花时间建立一套“沟通规范”,一旦这套规范成型,后面就顺了。你现在的状态说明你还没完全摸透它的脾气,再磨合一阵子会好很多。
太真实了,我调prompt的时间都快赶上写代码了,后来干脆直接给它贴报错让它自己改。
同感,感觉现在是在给AI当产品经理,需求描述清楚比啥都重要。
太正常了,我甚至觉得你经历的还算是温和的。Prompt调优本质上是在跟模型的“隐性偏好”博弈,它默认的代码风格、注释密度、边界处理方式都跟你的预期有偏差,你越是想用自然语言去约束它,反而越容易触发它另一套“自以为是的严谨”。我最近写脚本时也发现,与其反复强调“不要加日志”,不如直接给它一个最小可复现的输入输出例子,再附上“只改这一个函数,其他别动”这种限定,效果好得多。但说实话,这本身就说明工具还没到“理解意图”的程度,它只是在做概率匹配,你描述得越模糊,它的随机性就越强。所以我觉得你现在的状态不是能力问题,而是开始摸到AI协作的边界了,接下来可以试试把需求拆成原子化的指令,比如“给这个函数加个返回码,但不要改动调用方”,比“处理一下异常”这种宏观描述要省心十倍。另外,如果你用的Claude支持自定义系统提示词,建议把“代码风格:极简,无日志,不主动加依赖”写进去,能省掉一半的来回拉扯。
太正常了,AI写代码本质是“翻译需求”,你需求表达不精确,它只能猜,这功夫省不掉的。
你这不是写代码,是在训练一个理解力有限的实习生。
太正常了,我刚开始用Copilot写脚本也这德行。后来发现关键得把“边界”说死,比如直接告诉它“只处理XX异常,其他往上抛,别加日志”,不然它默认给你整全套防御性编程。
还有个野路子,就是让它先写一版,然后你把多余代码划掉,再让它“按这个风格来”,比纯文字描述管用多了。本质上Prompt是在调它的“习惯”,跟教新人似的,说多了它就懂你套路了。
太正常了,我刚开始用Copilot写脚本也这德行,后来发现AI对“简洁”的理解跟咱不太一样,它默认要健壮性。你可以试试把需求拆得更细,比如直接说“只校验非空,其他错误返回400”,别让它自由发挥。另外,给它一个你手写的示例代码当锚点,比纯文字描述管用得多。最后,真不行就让它生成完自己删,反正改代码比改Prompt直觉多了。
太正常了,我现在写复杂点的东西都直接让AI先给一版“最啰嗦”的,再自己删改,反而比反复调描述快。你那个“简洁一点”的指令其实挺模糊的,它根本分不清你是要删日志还是删校验,不如直接告诉它“去掉所有日志但保留参数校验”这种具体约束。另外可以试试让它先输出实现思路,确认逻辑后再写代码,能少走不少弯路。
太正常了,AI的“适度”和咱理解的完全两码事,我现在都直接贴错误样例给它当反面教材。
本质是拿自然语言写需求文档,比写代码更考验抽象能力,慢慢就习惯这种“翻译官”角色了。