云计算百科
云计算领域专业知识百科平台

ChatGPT、Codex实战:提示词怎么写才不会改错文件?四段式任务单教程

很多人第一次让Codex修改项目时,只会输入一句:

帮我修复登录Bug。

这句话对人类开发者来说也许够用,因为人会主动追问需求、确认目录、检查影响范围。但对Agent来说,它可能意味着:搜索整个仓库、修改多个模块、顺便重构相关代码,再运行一组自己认为合适的测试。

最后Bug可能修好了,却多改了十几个文件。

真正的问题不是Codex不会写代码,而是任务没有说明:

到底要完成什么、应该看哪些信息、哪些内容不能改,以及怎样才算完成。

OpenAI给出的Codex最佳实践建议,任务提示中至少包含目标、上下文、约束和完成标准。本文把它整理成一个更适合日常开发的“四段式任务单”。

一、为什么一句话任务容易改错文件?

假设项目中同时存在:

src/pages/login
src/services/auth
src/store/user
server/routes/auth
server/services/token

你只告诉Codex“修复登录失败”,它并不知道问题属于:

  • 前端表单;

  • 请求封装;

  • 状态管理;

  • 后端接口;

  • Token刷新;

  • 环境配置。

为了完成目标,它可能扩大搜索范围,并根据当前看到的信息自行判断应该改哪些文件。

这种主动探索是Agent的优势,但如果任务边界不清,也会变成风险。

所以提示词不能只描述问题,还要给Agent一张可以执行的任务单。

二、第一段:Goal——明确最终目标

Goal负责说明这次任务到底要产生什么结果。

错误写法:

优化一下登录功能。

这句话没有明确问题,也没有明确结果。

更好的写法:

修复用户Token过期后,登录页面反复跳转的问题。修复后,用户应被正常跳转到登录页,并且页面只跳转一次。

目标最好满足三个条件:

  • 问题具体;

  • 结果可观察;

  • 范围不过度开放。

OpenAI在Codex目标任务指南中强调,一个好的目标应该明确要实现什么、不应该改变什么,以及如何验证完成,而不是把整个开放式需求一次交给Agent。

三、第二段:Context——告诉Codex从哪里开始看

Context负责提供任务所需的背景。

例如:

问题发生在前端登录流程。
重点检查src/services/auth.ts、src/store/user.ts和路由守卫。
后端接口已经确认正常,不需要修改服务端代码。
错误通常在Token过期后刷新页面时出现。

这段信息解决三个问题:

  • 先看哪里;

  • 哪些结论已经确认;

  • 哪些方向不用重复排查。

Context并不是越多越好。

不要把整个项目介绍、所有历史Bug和几十页需求文档全部塞进去。真正有价值的是与当前任务直接相关的信息。

可以理解成:

Goal说明终点,Context说明起点。

四、第三段:Constraints——限制允许修改的范围

Constraints是防止Codex改错文件的关键部分。

可以明确写:

只允许修改src/services/auth.ts、src/store/user.ts和相关测试。
不修改后端代码。
不更换状态管理方案。
不新增第三方依赖。
不顺便重构登录页面。
如果判断必须修改其他文件,先说明原因,等待确认。

最后一句尤其重要。

它不是完全禁止Codex发现其他问题,而是要求Agent在扩大修改范围前暂停。

对于复杂项目,还可以加入数量限制:

修改文件尽量不超过4个;如果预计超过4个,先提交修改计划。

这样能防止一个小Bug逐渐变成大规模重构。

五、第四段:Done——定义怎样才算完成

很多任务失控,是因为没有明确完成条件。

Codex修改代码后,如果只看到编译通过,就可能宣布任务完成。但真正的验收标准可能还包括页面行为、测试结果和修改范围。

可以这样写:

完成条件:

  • 能稳定复现原问题;

  • 修改后Token过期只跳转一次;

  • 相关单元测试通过;

  • TypeScript类型检查通过;

  • 输出根因、修改文件和验证命令;

  • 不存在无关Diff。

  • Codex支持对当前工作区未提交变更、目标分支差异等内容执行独立Review,因此完成后还可以要求它再检查一次Diff,确认是否存在无关修改。

    Done解决的是:

    Agent什么时候可以停止?

    没有停止标准,Agent容易继续优化;有了停止标准,它才能围绕交付结果工作。

    六、可直接复制的四段式模板

    日常开发可以直接使用下面这份模板:

    Goal:
    修复【具体问题】。
    修复后应该表现为【可观察结果】。

    Context:
    问题发生在【模块或页面】。
    重点检查【目录、文件或函数】。
    已经确认【已知事实】。
    暂时不需要检查【排除方向】。

    Constraints:
    只允许修改【文件或目录】。
    禁止修改【明确范围】。
    不新增依赖,不进行无关重构。
    如果需要扩大修改范围,先说明原因和计划,等待确认。

    Done:
    能够稳定复现原问题。
    修改后重新执行相同流程并通过。
    运行【测试、构建或检查命令】。
    输出根因、修改文件、验证结果和剩余风险。
    确认不存在无关Diff。

    这个模板不是为了让提示词变长,而是让任务结构更清楚。

    七、实战示例:修复保存按钮无响应

    普通提示词:

    保存按钮没反应,帮我修一下。

    四段式写法:

    Goal:
    修复用户编辑个人资料后,点击“保存”按钮没有任何反应的问题。
    修复后,点击按钮应正常发送请求,并显示成功或失败提示。

    Context:
    问题发生在前端个人资料页面。
    重点检查:
    – src/pages/profile/ProfileForm.tsx
    – src/services/profile.ts
    – 相关表单测试

    后端接口已经通过Postman验证,不需要修改服务端。

    Constraints:
    只修改个人资料页面、请求封装和相关测试。
    不修改全局表单组件。
    不更换请求库。
    不新增依赖。
    如果发现问题来自其他模块,先汇报,不直接修改。

    Done:
    先复现按钮无响应问题。
    修复后重新执行保存流程。
    检查请求是否发送、状态是否更新、提示是否出现。
    运行相关测试和类型检查。
    输出根因、修改文件、验证结果和剩余风险。

    这份任务单将范围限制在几个明确文件,同时保留了必要的排查空间。

    八、修改前先让Codex汇报计划

    对于陌生项目或风险较高的修改,可以把任务分成两步。

    第一步只分析:

    先不要修改代码。请说明问题可能原因、计划检查的文件、预计修改范围和验证方式。

    等它给出计划后,再回复:

    按这个计划执行,但不要超出已经列出的文件。需要扩大范围时先暂停。

    这种方式能提前发现两个问题:

    • Codex是否理解了任务;

    • 它预计修改的范围是否合理。

    对于大型或持续目标,Codex也提供了目标与计划相关的工作方式,但目标仍然应该小于一个开放式任务列表,并具有明确的边界和验证条件。

    九、长期规则不要每次写进提示词

    四段式任务单适合描述当前任务,但有些规则每次都适用,例如:

    • 禁止修改生产配置;

    • 不允许删除测试;

    • 公共接口变化必须说明兼容性;

    • 修改后必须运行特定测试;

    • 不新增未经批准的依赖。

    这些长期规则更适合写进AGENTS.md。

    Codex会在开始任务前读取适用范围内的AGENTS.md,并根据项目目录组合相关指导。官方也建议保持文件简洁,只保存真正需要长期复用的项目规则。

    这样可以形成清晰分工:

    AGENTS.md保存长期规则;
    四段式任务单描述当前任务。

    十、常见的四种提示词错误

    只写目标,不写范围

    重构用户模块。

    问题:Codex不知道应该修改多少内容。

    只写文件,不写结果

    修改auth.ts。

    问题:Agent不知道修改后要达到什么行为。

    只写禁止事项,不写验证

    不要改其他文件。

    问题:即使修改范围正确,也无法判断结果是否有效。

    一开始就让它自由优化

    修Bug,并把相关代码全部优化一下。

    问题:修复、重构和优化混成一个任务,Diff很难审查。

    更稳妥的方法是先修Bug,再把重构作为独立任务。

    结语

    Codex改错文件,很多时候不是模型能力问题,而是任务边界没有写清。

    一个可靠的开发任务应该包含:

    Goal:要实现什么;
    Context:从哪里开始;
    Constraints:哪些不能动;
    Done:怎样才算完成。

    对于复杂任务,再增加一步:

    修改前先汇报计划。

    这套方法不会保证Agent永远不犯错,但能够明显缩小它的自由猜测空间,让每次修改更容易审查、验证和回退。

    提示词真正的价值,不是写得更像命令,而是把一个模糊需求变成一份可以执行和验收的工程任务单。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » ChatGPT、Codex实战:提示词怎么写才不会改错文件?四段式任务单教程
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!