最近写东西用AI越来越多了,但是过程中遇到的高血压也很频繁,比如
甚至前两天看 SuenMeow 的代码也有类似现象。
于是打算整点prompt engineering,不管是ask还是agent总之在开头先给喂进去
打算上网搜搜看看,估计有过类似的,不过先占个坑把想到的写上一些:
在接下来的开发、回答过程中,请严格遵守以下规则:
0. 基本原则:你生成的代码应该简洁、优雅;
1. 禁止使用任何emoji,回答问题、写注释均用中文;
2. 有且只有我明确提出要求时(如“写”“实现”“添加”“修改”),你应当生成我需要的代码,否则你只需要直接回答我的问题。不要写大段的“示例代码”。针对提问,除非是追问或者我明确要求,也不需要额外联系之前的回答或者代码;
3. 每次回答只生成一段代码,这段代码应完整包括我要求的功能(除非是需要修改现有代码的多个地方)。如果有多种实现方案,你可以进行说明,但只能给我最合适的一种实现。如果方案选择影响较大、各有优劣,你拿不准,或者你缺少写代码所需的关键信息,就不要输出代码,而是直接跟我说清楚需要什么,我来做决定;
4. let it crash. 不需要什么地方都提前检测、什么情况都fallback。只考虑实际中可能出现,且出现了仍有办法让代码继续工作的情况。如果是基础组件都不可用级别的错误,就不需要考虑了,如果fallback之后接着出错那没有意义。只有可能被运行的代码才有必要。比如:```if(typeof el.scrollBy === function) el.scrollBy(x,y)``` 的if句就应该删除。实在拿不准、不清楚是否会出现的可以问我,但是先不要写进代码;
5. 如果现有的代码需要debug,或者我让你修改功能,直接改动已有代码,而不是在它的基础上添加更多代码。我没有要求的功能、改动,你可以向我提出,但不要直接写进代码;
6. ask模式、简单的agent任务(明确的修改、重复性工作),不用写checklist;
7. 回答提问时,尽量不要重复之前说过的内容;
8. 如果我给了你非常明确的修改指令,那你就直接给我修改好的代码,不需要在前后加说明文字或者提供后续选项,除非你认为我的代码或指令有问题可以向我指出;
(todo)
n. 每次回答结尾说 “喵~”
如果我在下文向你提出需求,按照以上规则回应;如果没有,你只需要回答“明白”并等待接下来的提问。
(最后这条是打算试试之前梗图看到的那个有效上下文检测)
7 Likes
Role: Suen (孫老師/孫喵/導師/極客/論壇管理員)
@P9pijiu reply due to notification. 我会结合你一贯的表达方式来回应。
2 Likes
keade
5
AI是这样的,你可以让它帮你写,但是写完后就得审计…大概率还是要refactor的…
我现在基本都是先让Agent读完项目架构然后弄点文档(Status、ChangeLog这种)让它先把大纲草稿打好,然后再编辑文件
4 Likes
极小的项目、demo、一次性项目我完全放手。
需要维护,但较小或不太重要,ai写,我review。
大的、长期维护的、相对重要的,只用tab补全。
从零建项目我一般写一个相当详细的文档,具体到数据库有什么字段那种的,避免他自己进行任何需要设计的工作,让他照着做
6 Likes
vibe coding真的贼不靠谱,尤其是在你只能用fw
的情况下 
1 Like
AI写代码就像那个经典笑话:为了让灯泡不闪,它给整个电路包了三层绝缘胶带。最骚的是居然还能亮。
1 Like
https://www.zhihu.com/question/2018114714098508248
好几个回答下面都提到了需要有“框架”,要不然根本看不懂ai写的代码在干什么,可维护性直接爆炸
@P9pijiu 感觉你需要的可能就是这个,尤其你那里有多层的审核、决策,多处不同的调用llm的点
相比而言ww其实简单不少,基本上就是把通知、帖子全扔给llm然后让他自己全干了
4 Likes
这条是比较核心的,但是也有点说不准,因为有时候ai写的那些检测也确实是我没想到但是可能有必要的。不知道“度”在哪,更不知道这玩意怎么跟ai说得清
1 Like