自定义
如需完整文档索引,请参阅 llms.txt。文档页面的 Markdown 版本可通过在页面后追加
.md来获取 URL。
自定义功能可以让 Codex 按照团队的工作方式运行。
在 Codex 中,自定义功能来自协同工作的几个层面:
- 项目指导(
AGENTS.md):用于持久化指令 - 记忆:用于保存从先前工作中学到的有用上下文
- 技能:用于可复用的工作流和领域专业知识
- MCP:用于访问外部工具和共享系统
- 子代理:用于将工作委派给专门的子代理
它们是互补关系,而不是竞争关系。 AGENTS.md 塑造行为、记忆
延续本地上下文,技能封装可重复的流程,并且
MCP 连接 Codex 到本地工作区之外的系统。
AGENTS 指导
Section titled “AGENTS 指导”AGENTS.md 为 Codex 提供持久的项目指导,这些指导会随仓库一起保存,并在代理开始工作前生效。请保持内容精简。
将你希望 Codex 在仓库中每次都遵循的规则写入其中,例如:
- 构建和测试命令
- 评审要求
- 仓库特定的约定
- 目录特定的指令
当代理对你的代码库做出错误假设时,请在 AGENTS.md 中纠正这些假设,并要求代理更新 AGENTS.md,以便让修复持久化。将其视为一个反馈循环。
更新 AGENTS.md: 仅从重要的指令开始。将反复出现的评审反馈编写成规则,把指导放在适用范围最近的目录中;当你纠正某个问题时,告诉代理更新 AGENTS.md,以便未来会话继承此修复。
何时更新 AGENTS.md
Section titled “何时更新 AGENTS.md”- 重复犯错:如果 Agent 反复犯同样的错误,请添加一条规则。
- 阅读过多:如果它找到了正确的文件但阅读了太多文档,请添加路由指引(哪些 directories/files 应优先处理)。
- 反复出现的 PR 反馈:如果你不止一次留下相同反馈,请将其规范化。
- 在 GitHub:在拉取请求评论中,标记
@codex并附上请求(例如,@codex add this to AGENTS.md)以将更新委托给云端聊天。 - 自动化漂移检查:使用 计划任务 运行周期性检查(例如每天),查找指引缺口并建议应向
AGENTS.md添加什么。
将 AGENTS.md 与执行这些规则的基础设施结合起来:提交前钩子、代码检查器和类型检查器会在问题出现之前捕获问题,让系统更智能地防止反复出现的错误。
Codex 可以从多个位置加载指导:Codex 主目录中的全局文件(供开发者使用)以及团队可以提交到仓库中的特定于仓库的文件。距离工作目录更近的文件具有更高优先级。 使用全局文件来调整 Codex 与你的沟通方式(例如评审风格、详细程度和默认设置),并让仓库文件专注于团队和代码库规则。
交互内容: FileTree 的动态演示请参阅页面顶部的官方原文链接。
技能为 Codex 提供可复用的能力,用于执行可重复的工作流。 对于可复用的工作流,技能通常是最佳选择,因为它们支持更丰富的指令、脚本和参考资料,同时仍能在不同任务中复用。 技能会被加载并对代理可见(至少其元数据如此),因此 Codex 可以隐式发现并选择技能。这样,丰富的工作流便能随时使用,而无需在开始时一次性占用过多上下文。
使用技能文件夹在本地编写和迭代工作流。如果已有适用于该工作流的插件 ,请先安装它,以复用经过验证的设置。当 你想在团队之间分发自己的工作流,或将其与 连接器打包在一起时,请将其打包为 插件。技能仍然是 创作格式;插件是可安装的分发单元。
技能通常由一个 SKILL.md 文件以及可选的脚本、参考资料和资源组成。
交互内容: FileTree 的动态演示请参阅页面顶部的官方原文链接。
技能目录可以包含一个 scripts/ 文件夹,其中包含 CLI 脚本, Codex 会作为工作流的一部分调用这些脚本(例如,填充种子数据或运行验证)。当工作流需要外部系统(问题跟踪器、设计工具、文档服务器)时,请将该技能与 MCP配对使用。
SKILL.md 示例:
---name: commitdescription: Stage and commit changes in semantic groups. Use when the user wants to commit, organize commits, or clean up a branch before pushing.---
1. Do not run `git add .`. Stage files in logical groups by purpose.2. Group into separate commits: feat → test → docs → refactor → chore.3. Write concise commit messages that match the change scope.4. Keep each commit focused and reviewable.在以下情况下使用技能:
- 可重复的工作流(发布步骤、评审流程、文档更新)
- 团队特定的专业知识
- 需要示例、参考资料或辅助脚本的流程
技能可以是全局技能(位于用户目录中,供开发者使用),也可以是特定于仓库的技能(签入 .agents/skills,供团队使用)。当工作流适用于某个项目时,请将仓库技能放在 .agents/skills 中;如果希望在所有仓库中使用某项技能,请将其放在用户目录中。
| 层级 | 全局 | 仓库 |
|---|---|---|
| AGENTS | ~/.codex/AGENTS.md |
AGENTS.md 位于仓库根目录或嵌套目录中 |
| 技能 | ~/.agents/skills |
.agents/skills 位于仓库中 |
Codex 对技能使用渐进式披露:
- 首先加载元数据(
name、description)以便发现 - 仅在选择技能后加载
SKILL.md - 仅在需要时读取参考资料或运行脚本
技能可以显式调用;当任务符合技能描述时,Codex 也可以隐式选择技能。清晰的技能描述有助于提高触发可靠性。
MCP(Model Context Protocol)是将 Codex 连接到外部工具和上下文提供方的标准方式。 对于 Figma、Linear、GitHub 或团队依赖的内部知识服务等远程托管系统,它尤其有用。
使用 MCP 当 Codex 需要本地仓库之外的能力时,例如问题跟踪器、设计工具、浏览器或共享文档系统。
可以这样理解:
- 主机: Codex
- 客户端: MCP 内部的连接 Codex
- 服务器:外部工具或上下文提供方
MCP 服务器可以提供:
- 工具(操作)
- 资源(可读取的数据)
- 提示词(可复用的提示词模板)
这种分离方式有助于你思考信任边界和能力边界。有些服务器主要提供上下文,而另一些服务器会暴露强大的操作能力。
实际上,MCP 与技能配合使用时通常最有用:
- 技能定义工作流,并指定要使用的 MCP 工具
你可以创建具有不同角色的代理,并提示它们以不同方式使用工具。例如,一个代理可以运行特定的测试命令和配置,另一个代理可以使用 MCP 服务器获取生产日志来进行调试。每个子代理都会专注于自己的任务,并使用适合其工作的工具。
技能 + MCP 协同使用
Section titled “技能 + MCP 协同使用”技能与 MCP 结合后,整个体系便串联起来:技能定义可重复的工作流,而 MCP 将它们连接到外部工具和系统。
如果技能依赖 MCP,请在 agents/openai.yaml 中声明该依赖,以便 Codex 自动安装并完成连接配置(请参阅构建技能)。
请按以下顺序构建:
- 带有以下内容的自定义指令 AGENTS.md 以便 Codex 遵循你的仓库约定。添加 pre-commit 钩子和 linter 来强制执行这些规则。
- 安装一个 插件 当已有可复用工作流时。否则,创建一个 技能 并在想要共享时将其打包为插件。
- MCP 当工作流需要外部系统(Linear、 GitHub、文档服务器、设计工具)时。
- 子 Agent 当你准备好将嘈杂或专门的任务委托给子 Agent 时。