Codex 每次都要重新教?Prompt、AGENTS.md、Skills、MCP 到底怎么选
摘要:同一句要求,应该写进当前 Prompt、仓库里的
AGENTS.md,做成 Skill,还是接入 MCP?本文用一张对比图、一个完整案例和一份 30 秒判断流程,讲清四种机制各自解决什么问题,并附可直接复制的 Prompt、AGENTS.md与SKILL.md模板。
关键词:Codex、Prompt、AGENTS.md、Agent Skills、SKILL.md、MCP、AI 编程工作流
使用 Codex 一段时间后,很容易遇到一种反复消耗:
- 每次都要提醒它使用 pnpm,不要改用 npm;
- 每次都要说明哪些目录不能动、改完要跑什么检查;
- 每次发布都要重新描述“看 diff、核对测试、生成 CHANGELOG”的步骤;
- 需要查 GitHub Issue、设计稿或内部文档时,又得重新想怎么把资料交给它。
这些事情都能写进一段很长的提示词,但问题也会随之出现:提示词越来越臃肿,新开任务还要重新复制;真正只对当前需求有效的限制,反而被埋在一堆长期规则里。
Codex 现在提供了多种定制方式。它们看上去都在“告诉 Agent 怎么工作”,实际承担的职责并不相同。
先记住一句话:Prompt 交代这一次,AGENTS.md 约束这个仓库,Skill 固化一套流程,MCP 连接外部系统。
下面不堆概念,直接从“什么内容该放在哪里”讲起。
一张图看懂:四种机制分别解决什么问题

| 机制 | 主要解决的问题 | 适合放什么 | 有效范围 | 不适合承担什么 |
|---|---|---|---|---|
| Prompt | 把当前任务说清楚 | 本次目标、上下文、输出格式、临时边界、验收方式 | 当前任务或当前会话 | 长期项目规范、复杂重复流程 |
| AGENTS.md | 让 Codex 每次进入仓库都遵守同一套规则 | 项目命令、目录边界、代码约定、检查要求、风险操作 | 仓库或指定子目录 | 一次性需求、长篇操作教程 |
| Skill | 把反复执行的工作变成可复用流程 | 多步操作、判断分支、参考资料、脚本、模板和验收步骤 | 多任务、多项目或团队复用 | 实时外部数据、单次临时要求 |
| MCP | 让 Codex 访问仓库之外的数据与工具 | GitHub、Figma、浏览器、Issue 系统、知识库等能力 | 取决于已连接的服务与权限 | 代替项目规范、代替完整工作流 |
OpenAI 的官方定制文档也把它们放在不同层次:AGENTS.md 提供持久的项目指导,Skills 封装可重复流程,MCP 连接本地工作区之外的系统。它们是组合关系,不是四选一。Codex Customization
Prompt:把“这一次要做什么”说清楚
Prompt 最适合承载当前任务才会变化的信息。
比如这次要修哪个问题、允许改哪些文件、输出一份报告还是直接修改、什么情况必须停下来确认。这些要求下一次很可能不一样,没有必要写进项目规则。
一段实用的 Codex Prompt,通常包含五类信息:
目标:修复设置页保存后刷新失效的问题。
上下文:复现步骤在 issue #128,优先检查 settings store 和保存接口。
范围:允许修改 settings 相关代码和测试;不要调整 API 数据结构。
验证:先复现问题,再完成最小修复,运行相关测试和类型检查。
交付:说明根因、修改文件、执行过的检查,以及仍未验证的内容。
这里最重要的不是套模板,而是把真正会改变结果的内容交代清楚。OpenAI 的提示指南给出的关键项也是目标、上下文、输出和边界;对 Codex 任务,还应说明相关代码或复现步骤以及如何验证。Prompting Codex
适合写进 Prompt 的判断标准:这条要求只服务当前任务,或者下一次很可能改变。
AGENTS.md:把仓库长期有效的规则固定下来
如果一条提醒已经说过三次,而且以后大概率还要继续说,就值得考虑放进 AGENTS.md。
例如:
- 依赖必须使用 pnpm 安装;
generated/下的文件不能手工修改;- 修改 API 后要运行契约测试;
- 新增生产依赖前必须确认;
- 不覆盖工作区里与本次任务无关的改动。
一份精简的项目级 AGENTS.md 可以这样写:
# AGENTS.md
## Project
- This is a TypeScript monorepo managed with pnpm workspaces.
- Frontend code lives in `apps/web`; API code lives in `services/api`.
## Commands
- Install dependencies with `pnpm install` from the repository root.
- Run targeted tests for the package you changed.
- Run `pnpm lint` and `pnpm typecheck` before finalizing code changes.
## Boundaries
- Do not edit files under `generated/`; use `pnpm generate`.
- Preserve unrelated user changes in the working tree.
- Ask before adding production dependencies or changing public APIs.
## Handoff
- Summarize what changed and why.
- List the checks actually run and their results.
- Call out anything that remains unverified.
Codex 会在开始工作前读取这些说明。规则可以放在全局、仓库根目录和更靠近代码的子目录;从项目根目录到当前工作目录逐层组合,越靠近当前目录的规则优先级越高。Custom instructions with AGENTS.md
AGENTS.md 不宜变成另一本 README。业务背景、完整 API 文档和很长的操作教程仍应放在原来的文档中,只在 AGENTS.md 里告诉 Codex 去哪里读、什么时候必须读。
适合写进 AGENTS.md 的判断标准:每次在这个仓库或目录工作时都要遵守,而且它会影响修改方式或验收结果。
Skill:把重复工作变成一套可执行流程
AGENTS.md 擅长写“始终遵守什么”,但不适合塞进一大段分步骤教程。
假设你每次发布都要做这些事:
- 确认 Git 变更范围;
- 从代码和测试中提取用户可见变化;
- 更新 CHANGELOG 与相关文档;
- 生成发布说明;
- 核对链接、示例和发布边界。
这已经不是一句项目规则,而是一套会重复执行、带输入输出和验收步骤的工作流,更适合做成 Skill。
一个 Skill 至少包含 SKILL.md,还可以按需加入脚本、参考资料和模板:
release-docs/
├── SKILL.md
├── references/
│ └── release-style.md
├── scripts/
│ └── collect-diff.sh
└── assets/
└── release-template.md
最小可用的 SKILL.md 不需要写得很复杂:
---
name: release-docs
description: 根据已确认的代码变更生成 CHANGELOG、技术文档和发布说明。用于准备版本发布材料;不要在尚未确认变更范围时触发。
---
1. 只读检查 Git 状态、目标 diff、相关测试和已有文档。
2. 建立事实清单,区分用户可见变化、内部重构和无法证实内容。
3. 输出文档影响范围,等待确认后再修改文件。
4. 分别起草 CHANGELOG、技术文档和发布说明,不混用三者的读者视角。
5. 运行仓库已有的文档检查,并列出未验证项。
6. 未经确认,不提交、不推送、不发布。
OpenAI 当前的 Skills 文档要求 SKILL.md 至少提供 name 和 description。Codex 会先查看技能元数据,任务匹配时再读取完整说明,需要时才继续读取引用或运行脚本,这种渐进加载能避免一开始就把所有细节塞进上下文。Build skills
适合做成 Skill 的判断标准:这是一项会重复发生的工作,步骤相对稳定,而且包含多步判断、参考资料、模板或可复用脚本。
MCP:给 Codex 接上外部数据和操作能力
Prompt、AGENTS.md 和 Skill 都能告诉 Codex“应该怎么做”,但它们不会凭空提供外部系统的访问能力。
如果任务需要读取 GitHub PR、查询 Issue、获取 Figma 设计、控制浏览器,或者访问团队知识库,就要用到工具或 MCP。
可以把 MCP 理解成一条能力通道:
- Codex 是使用这些能力的宿主;
- MCP 连接负责把工具与上下文提供给 Codex;
- MCP Server 可以暴露可执行工具、可读取资源和可复用提示模板;
- 实际能读什么、能改什么,仍然取决于服务权限和审批策略。
OpenAI 的说明把 MCP 定义为连接模型与工具、上下文的协议,适合让 Codex 使用浏览器、Figma、GitHub 或第三方文档等外部能力。Model Context Protocol
需要特别注意:MCP 提供“能做什么”,Skill 规定“按什么流程做”。
例如,GitHub MCP 能让 Codex 读取 PR 和 Issue;一个“准备发布材料”的 Skill,则可以规定先读取哪些信息、如何筛选事实、输出什么格式、发布前如何验收。两者组合后,工作流才既有步骤,也有数据入口。
适合接入 MCP 的判断标准:任务需要本地仓库之外的实时数据,或者需要在外部系统中执行受控操作。
用同一个任务,看清四者怎样配合
以“为 v1.4.0 准备发布材料”为例:
| 层次 | 在这个任务里负责什么 | 具体内容 |
|---|---|---|
| Prompt | 定义本次发布 | 目标版本是 v1.4.0;比较 v1.3.2 到当前分支;先生成草稿,不要发布 |
| AGENTS.md | 提供仓库固定规则 | 使用项目原有术语;用户行为变化必须同步 docs;完成后运行文档检查 |
| Skill | 执行稳定工作流 | 收集差异 → 建立事实清单 → 更新文档 → 生成发布说明 → 反向验收 |
| MCP | 补齐外部上下文 | 读取 GitHub PR、Issue、里程碑或团队文档中的已确认信息 |
如果没有 MCP,Codex 仍然可以根据本地 Git 和你提供的资料完成任务;如果没有 Skill,也可以临时把完整步骤写进 Prompt。区别不在于“能不能做”,而在于这套工作以后是否还要重复、是否需要稳定复现。
30 秒判断:一条要求到底该放在哪里?

实际使用时,可以按下面的顺序判断:
- 只影响当前任务吗?写进 Prompt。
- 每次进入这个仓库都要遵守吗?写进
AGENTS.md。 - 它是一套会反复执行的多步流程吗?做成 Skill。
- 它需要外部实时数据或外部操作吗?接入 MCP。
有些要求会同时命中两项。例如“每次发布都要更新 CHANGELOG”可以在 AGENTS.md 里保留一句长期规则,再用 Skill 承载完整的发布流程;需要读取 GitHub PR 时,再让 Skill 使用 MCP 提供的工具。
四个最容易踩的坑
1. 把一次性需求写进 AGENTS.md
“这次只改登录页”“今天先不要运行测试”都属于临时边界。写进项目规则后,下一次任务可能忘记删除,反而影响正常工作。
2. 把 AGENTS.md 写成几十页操作手册
项目说明应尽量短,重点保留会改变行为的命令、边界和验收要求。复杂流程放进 Skill,长篇背景放进正式文档,再给出明确的读取路径。
3. 安装很多 Skills,却从不验证触发条件
Skill 的数量不等于能力。description 写得含糊,Codex 可能该用时没用,也可能在不合适的任务里触发。先让一个高频流程跑稳,比收集一堆“以后也许能用”的技能更有效。
4. 以为接了 MCP 就等于建立了工作流
MCP 能提供工具,但不会自动替你定义业务步骤。涉及发送消息、创建 Issue、删除内容、发布版本等外部写操作,还应该明确审批边界,并保留人工复核。
如果现在从零开始,建议按这个顺序搭建
不用一上来就同时配置四套机制,可以从真实的重复问题出发:
- 先把当前任务写清楚。目标、上下文、边界和验证方式足够明确,很多问题已经能解决。
- 再记录重复出现的仓库规则。把反复提醒的命令和边界整理进一份精简的
AGENTS.md。 - 等流程稳定后再做 Skill。先手工跑通两三次,确认输入、步骤、输出和验收,再固化成可复用工作流。
- 缺外部能力时再接 MCP。只开放真正需要的工具,优先只读,涉及外部写入时保留确认。
这样做的好处是,每一层都在解决一个已经出现的问题,不会为了“配置完整”而制造新的维护成本。
这些机制解决了工作方式,离开电脑后的任务怎么跟进?
Prompt、AGENTS.md、Skills 和 MCP,解决的是 Codex 在电脑上如何理解任务、遵守项目规则、复用流程以及调用外部能力。
但很多真实任务不会在几分钟内结束:代码分析、构建、测试、排错和权限确认都可能持续一段时间。人离开电脑以后,如果还想看进度、补充要求或处理确认,工作流仍然会出现一个物理断点。
这也是我们开源 Linco Bridge 的原因。
Codex、Claude Code、Hermes 等本地 Agent 继续运行在个人电脑上,代码和开发环境仍留在本机;Linco Bridge 负责把会话进度、流式输出、工具调用和权限请求延伸到手机端。它不替代上面的定制机制,而是把已经建立好的本地 Agent 工作流继续带到移动端。
想从项目本身开始了解,可以按下面的顺序阅读:
- Linco Bridge 开源:在手机端续接 Codex、Claude Code、Hermes 等本地 AI Agent
- 手机端续接 Codex 实战:从安装 linco-connect 到跑通第一个跨端会话
- cc-connect 已经很强了,我们为什么还要做 Linco Bridge?
- 离开电脑后,怎么继续跟进 Codex 任务?国内用户的 5 种远程方案
项目地址:GitHub|lincotalk/linco-bridge
如果你也会让 Codex 执行耗时任务,欢迎试用、提交 Issue,或者点一个 Star。也欢迎在评论区聊聊:你现在最想固化成 Skill 的重复工作是什么?
Codex 实战系列
- 第一次让 Codex 接手陌生项目,我不会先让它写代码:7 步完成项目接管
- AGENTS.md 到底怎么写?给 Codex 一份真正有用的项目说明书
- Codex 改完代码,怎么判断能不能提交?一套可直接复制的验收流程
- Codex 改完代码,文档还要自己补?从 Git Diff 生成 CHANGELOG 和发布说明
参考资料
更多推荐



所有评论(0)