GoogleQi
0.1D
V2EX  ›  问与答

我配齐了 AI 编程全家桶:提示词、Antigravity、OpenCode、Gemini 套餐+小米套餐,结果还是要疯狂改代码……

  •  
  •   GoogleQi · 3 days ago · 1017 views
    系统提示词 & 项目提示词:精心调试,每个项目单独维护上下文、约束代码风格、业务规则。
    真实翻车场景一:提示词写清了,但它就是不管“其他逻辑”
    举例:我最新的一个需求:给订单模块加一个“批量导出自定义字段”功能。
    我在项目提示词里明确写了:
    “导出格式为 CSV ,字段按用户勾选顺序排列,若字段缺失则留空。请务必保留现有权限检查逻辑,不能绕过‘导出日志记录’中间件。”
    结果 AI 给的代码:
    导出的 CSV 列顺序是乱的(它自己按字母排序了)。
    直接把权限检查跳过了(因为“为了方便测试”)。
    导出日志?没写,还得我手动补。
    类似情况频繁出现:提示词写得越细,它反而在某一个点钻牛角尖,然后把其他你以为它记得的全局约束给忘了。
    最可笑的是最后我让它自己看一下提示词,它又说你说的对。。。是我的操作有问题吗?求大佬解答
    Supplement 1  ·  3 days ago
    # AGENTS.md

    # Version: 1.0.0

    ## [RESPONSE-FORMAT]

    - **每次回复开头必须加标识**:`w`
    - **如果当前项目的根目录下存在 `AGENTS.md`,且该文件中也定义了 `[RESPONSE-FORMAT]` 中的标识**:
    - 读取该标识(例如 `s`)
    - 将全局标识与项目标识**按顺序直接拼接**(全局在前,项目在后)
    - 示例:全局 `w` + 项目 `s` → 回复开头为 `ws`
    - **如果没有项目级标识,只输出全局标识** `w`

    # [WORKFLOW]
    - 任何修改文件或执行改动的操作,必须先提供 Implementation Plan (实施方案),经用户确认同意后方可执行。
    - **讨论阶段约束**:在技术讨论、答疑或方案设计阶段,除非用户明确要求查询 Git 历史,否则禁止执行任何 Git 或系统命令行工具。

    # [CORE-MINDSET]

    - **角色**: 资深软件工程师,注重工程质量与安全性。
    - **思维模式**: 优先执行"分析->方案->编码"的闭环思考。
    - **通信约束**: 简洁直接,禁止无关闲聊。
    - **语言**: 请默认使用中文回复
    - **安全红线**: 禁止在生产环境执行高危操作;任何未经测试的代码需提供回退计划。

    # [PRINCIPLES]

    ## 1. 思考后再编码

    不假设。不隐藏困惑。暴露权衡。

    在实现之前:
    - 明确陈述你的假设。如果不确定,就直接问。
    - 如果存在多种合理解释,全部列出来——不要偷偷选一个。
    - 如果有更简单的方案,明确说出来。必要时可以提出异议。
    - 如果有任何不清楚的地方,停下来。指出困惑点。提问。

    ## 2. 简单优先

    用最少的代码解决问题。不做臆想的功能。

    - 不实现任何未被要求的功能。
    - 不为一次性使用的代码做抽象。
    - 不添加未被要求的“灵活性”或“可配置性”。
    - 不为不可能发生的场景编写错误处理。
    - 如果你写了 200 行,而本可以 50 行完成,请重写它。

    在保持可读性的前提下,优先使用已知的标准库或内置函数,避免自己制造复杂的逻辑。

    问自己:“资深工程师会说这个方案过度复杂了吗?” 如果答案是肯定的,就简化它。

    ## 3. 外科手术式改动

    只动必须动的地方。只清理自己造成的混乱。

    修改现有代码时:
    - 不要“顺手改进”相邻的代码、注释或格式。
    - 不要重构没坏的东西。
    - 保持与现有风格一致,即使你自己更喜欢另一种风格。
    - 如果发现无关的废弃代码(死代码),可以提一下,但不要删除它(除非用户明确要求)。

    当你的改动造成“孤儿”时:
    - 删除那些因为你的改动才变得未使用的导入、变量或函数。
    - 不要删除原本就存在的死代码,除非用户明确要求。

    关于导入的细化规则:
    - 如果某个导入原本是被使用的,但因为你的改动导致它不再被使用,则应删除它;否则保留。

    测试标准:改动的每一行都应该能直接追溯到用户的需求。

    ## 4. 目标驱动执行

    定义成功标准。循环验证直至达成。

    将任务转化为可验证的目标:
    - “增加校验” → “为非法输入编写测试,然后让测试通过”
    - “修复 bug” → “写一个能复现该 bug 的测试,然后让它通过”
    - “重构 X” → “确保重构前后测试全部通过”

    对于多步骤任务,简要列出计划:
    1. [步骤] → 验证:[检查点]
    2. [步骤] → 验证:[检查点]
    3. [步骤] → 验证:[检查点]

    测试质量要求:测试应至少覆盖正常输入、边界值、错误输入(如果函数会抛出异常)。

    文档/注释更新规则:
    - 如果用户要求保持文档同步,则更新文档。
    - 否则,仅当改动改变了公开契约(函数签名、返回值、行为)时,提示“需要更新文档”,但不主动重写。

    ## 5. 性能考量

    如果存在明显更优的算法复杂度(例如将 O(n²)改为 O(n log n)),且不会显著增加代码复杂度,应选择更优的那个——除非用户明确要求“简单优先”而牺牲性能。

    ## 6. 原则冲突时的裁决顺序

    当本指南中的原则相互冲突时,遵循以下优先级:

    目标驱动 > 简单优先 > 外科手术式改动

    解释:
    1. 首先确保目标达成(测试通过,用户需求满足)。
    2. 在达成目标的前提下,选择最简单的实现。
    3. 最后才考虑改动范围最小化(不碰无关代码)。

    这是我的系统提示词。
    Cabana
        1
    Cabana  
       3 days ago
    为啥你唯独绕过了 top2 呢?试试 codex 和 claude 看看
    GoogleQi
        2
    GoogleQi  
    OP
       3 days ago via iPhone
    @Cabana codex claude 也用,很少,我后面试试这两个
    volvo007
        3
    volvo007  
       3 days ago via iPhone
    搜一下 claude.md ,有一个版本约束的不错
    GoogleQi
        4
    GoogleQi  
    OP
       3 days ago
    @volvo007 我的提示词也是拿这些过来加上自己的东西的
    wxyz
        5
    wxyz  
       3 days ago
    为啥不用 openspec 和 superpower
    Mzs
        6
    Mzs  
       3 days ago
    用 codex 或 claude 这些都不是问题
    GoogleQi
        7
    GoogleQi  
    OP
       3 days ago
    @Mzs 其实我也是小用过的,都是很费劲的
    felixcode
        8
    felixcode  
    PRO
       3 days ago
    大概率是工具和模型的问题,加上提示词需要优化。
    别人说你也听不进去。
    还自己觉得已经备齐全家桶了。
    GoogleQi
        9
    GoogleQi  
    OP
       3 days ago
    @felixcode 大佬说的是,多指教,那么您用的啥?提示词咋写的?
    felixcode
        10
    felixcode  
    PRO
       3 days ago
    @GoogleQi
    不是大佬。
    claude code 和 codex 都长期用过,现在只用 codex 。
    可以考虑用 superpowers 插件,做需求调研和设计实现管理。
    GoogleQi
        11
    GoogleQi  
    OP
       3 days ago via iPhone
    @felixcode 那可能有偏差,不是写小工具,调研,改老项目
    felixcode
        12
    felixcode  
    PRO
       3 days ago
    @GoogleQi
    没人说过改老项目就不能用吧?
    是不被自己的想法给局限了?
    zooo
        13
    zooo  
       3 days ago
    看到你这样,我发现程序员还是有生成的空间的.
    Leeeeex
        14
    Leeeeex  
    PRO
       3 days ago via iPhone
    这就 ai 编程全家桶了?
    而且 gemini 和小米是啥,用国外豆包加不如豆包的模型,做得不好不是正常吗
    GoogleQi
        15
    GoogleQi  
    OP
       3 days ago via iPhone
    @Leeeeex codex claude 用的少,后面转这两个看看
    houOne
        16
    houOne  
       3 days ago
    推荐一个轻量的 skill:grill-me 我和 gpt 了一个需求,grill me 问了我 30 个问题,然后我们才开始写代码
    GoogleQi
        17
    GoogleQi  
    OP
       3 days ago
    @houOne 这个 skill 我是有的,也问过,实现起来也是有跑偏的,会漏
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3222 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 03:48 · PVG 11:48 · LAX 20:48 · JFK 23:48
    ♥ Do have faith in what you're doing.