1. 为什么每次开 Codex 都要重新说一遍“用中文回复”我刚开始用 Codex 的时候最烦的一件事就是每次新开一个会话它默认还是英文回复。你明明上一轮刚说过“请用简体中文”关掉终端再进来它又忘了。这不是 Codex 记性差而是它的会话上下文本来就是一次性的——每个新会话都是白纸除非你把指令写进一个它每次启动都会读的文件里。Codex 这个工具的设计逻辑其实很清晰它把“项目级默认行为”交给一个叫AGENTS.md的文件来管。你可以把它理解成给 Codex 看的“项目说明书”或者“员工手册”。每次 Codex 在某个目录下启动它会自动去读这个文件把里面的内容当作系统级的默认指令。你写“始终用简体中文回复”它每次就都照做不用你再重复。这个机制解决的核心问题有三个。第一是语言一致性团队里有人习惯英文、有人习惯中文统一写进AGENTS.md就不会乱。第二是输出格式规范比如你希望每次改完 Python 脚本都附一张变更对照表、给出可执行的命令示例这些都可以固化下来。第三是项目上下文复用比如“这个仓库用 pnpm 不用 npm”“测试命令是pytest -x”写一次后面所有会话都省得再解释。适合谁用如果你只是偶尔问 Codex 一两个问题可能感知不强。但只要你开始把 Codex 当成日常编码助手——尤其是长期维护同一个仓库、或者团队协作——AGENTS.md就是必须配的东西。它不改变 Codex 的能力但能大幅减少你重复沟通的成本。我试过最直接的方式是在终端里临时说一句“Always respond in Chinese”当时确实生效了但重启终端后新会话又回到英文。这就是为什么必须落到文件里。下面我从最基础的全局配置讲起再讲项目级配置最后给出验证方法和常见报错排查。2. AGENTS.md 放在哪、TaoToken 接入 Codex 的前置准备在动手写AGENTS.md之前得先把 Codex 能正常跑起来这件事搞定。Codex 本身是一个命令行编码代理它需要连到一个模型服务才能工作。这里我用 TaoToken 来做接入因为它提供了兼容 OpenAI 接口的端点配置起来比较直接。先说AGENTS.md的放置位置这决定了它的作用范围。Codex 会按优先级读取两个地方的文件位置作用范围适用场景~/.codex/AGENTS.md全局所有项目个人偏好比如“始终用中文回复”仓库根目录./AGENTS.md仅当前项目项目规范比如构建命令、代码风格全局文件适合放你个人的通用习惯项目文件适合放团队约定。两者同时存在时项目级的会叠加在全局之上。我建议两个都建全局放语言偏好项目放具体规范。接下来是 TaoToken 的接入。你需要先拿到 API Key然后配置 Codex 的模型端点。Codex 的配置文件通常在~/.codex/config.toml如果你用的是较新版本也可能是~/.codex/config.json。下面以 TOML 为例这是目前比较通用的格式# ~/.codex/config.toml model gpt-4o model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY然后在你的 shell 配置文件里~/.bashrc或~/.zshrc导出 Keyexport TAOTOKEN_API_KEY你的Key重新加载配置source ~/.zshrc这里有个细节要注意base_url写的是https://taotoken.net/api不要多加/v1或者别的路径Codex 会自己拼接。如果你写错了最常见的报错就是401 Unauthorized或者local proxy failed。配置好之后你可以先用一个简单命令验证 Codex 能不能通codex 用一句话说明什么是递归如果它能正常回复说明模型接入没问题。如果报错先检查 Key 是否导出成功echo $TAOTOKEN_API_KEY再检查config.toml里的base_url是否写对。这一步做完你才有资格去谈“预定义提示词”——因为AGENTS.md是给 Codex 读的Codex 本身得先能跑起来。很多人卡在AGENTS.md不生效其实根因是模型根本没连上Codex 连启动都没成功自然读不到文件。另外提一句如果你用的是 Claude Code 或者 Cline 这类工具它们也有类似的记忆文件机制但文件名和路径不一样。Codex 认的就是AGENTS.md别搞混了。3. 可复制的 AGENTS.md 配置从中文回复到输出格式规范现在进入正题。AGENTS.md本质上就是一个 Markdown 文件Codex 会把里面的内容当作默认指令注入到每次会话的开头。你写什么它就默认遵守什么。下面我给出一套可以直接复制的配置分全局版和项目版。3.1 全局配置让 Codex 默认说中文最简单的全局配置只需要一行。在终端执行mkdir -p ~/.codex printf Always respond in Chinese-simplified\n ~/.codex/AGENTS.md这条命令做了两件事创建~/.codex目录如果不存在然后把Always respond in Chinese-simplified写进AGENTS.md。你也可以用编辑器手动创建vim ~/.codex/AGENTS.md内容就一行Always respond in Chinese-simplified保存退出。下次你新开一个 Codex 会话它就会默认用简体中文回复。这个配置对所有项目生效适合个人使用。3.2 项目级配置固化输出格式和命令规范如果你希望 Codex 在某个仓库里遵守更具体的规范就在仓库根目录建一个AGENTS.md。下面这份配置是我自己常用的你可以直接复制# 项目默认指令 ## 语言 始终使用简体中文回复。 ## 代码修改输出规范 当修改或创建 Python 脚本时在回复最后提供一张表格说明本次修改或新建了什么。 表格格式如下 | 文件 | 操作 | 说明 | |------|------|------| | script.py | 修改 | 增加了参数解析 | ## 命令示例规范 在对话最后给出本次修改或创建的所有文件以及一个或多个具体的执行命令示例。 每个命令前面要说明这个命令的作用。 当命令包含的命令行参数超过 4 个时必须使用反斜杠 \ 将长命令分解为多行。 分行规则 1. 第一行包含执行程序和脚本名称例如 python script.py。 2. 从第二行开始每一个参数标志及其对应的值单独占一行。 3. 所有后续参数行缩进 2 个空格保持视觉对齐。 示例 bash # 运行训练脚本指定数据集和输出目录 python train.py \ --dataset ./data/train.csv \ --output ./models \ --epochs 10 \ --batch-size 32 \ --lr 0.001这份配置里语言部分和全局配置重复了但没关系项目级会覆盖。重点是后面的输出规范它强制 Codex 在每次改完代码后给你一张变更表并且给出可执行的命令示例。对于需要频繁跑脚本的场景这个规范能省掉大量“这个命令怎么拼”的时间。 ### 3.3 配置文件的加载顺序 Codex 读取 AGENTS.md 的顺序是先读全局 ~/.codex/AGENTS.md再读当前工作目录及其父目录下的 AGENTS.md。如果多个文件都存在后面的会追加到前面的内容之后。所以你可以把通用偏好放全局把项目特定规范放仓库根目录。 这里有个坑如果你在子目录里启动 Codex它会向上查找 AGENTS.md直到找到仓库根目录或者文件系统根目录。所以最好把项目级的 AGENTS.md 放在 Git 仓库的根目录这样无论你在哪个子目录启动它都能找到。 配置写完之后不需要重启什么服务直接新开一个 Codex 会话就会生效。下面讲怎么验证它到底有没有生效。 ## 4. 验证 AGENTS.md 是否生效新建会话对比测试 配置写完不代表生效得实际验证。验证方法很简单新开一个会话看 Codex 的回复语言和格式是否符合预期。 ### 4.1 验证语言约束 先确保全局 AGENTS.md 已经写好。然后在一个没有项目级 AGENTS.md 的目录下启动 Codex bash cd /tmp codex 介绍一下什么是二分查找如果配置生效它会用简体中文回复。如果还是英文说明全局文件没被读到。这时候检查两件事一是文件路径是否是~/.codex/AGENTS.md注意大小写必须是AGENTS.md不是agents.md二是文件内容是否有拼写错误。你可以用cat确认文件内容cat ~/.codex/AGENTS.md应该输出Always respond in Chinese-simplified。4.2 验证项目级格式规范进入一个放了项目级AGENTS.md的仓库让 Codex 改一个 Python 文件。比如cd ~/my-project codex 在 utils.py 里加一个函数计算两个数的最大公约数观察它的回复如果配置生效它应该在最后附上一张变更表格并且给出执行命令示例。如果命令参数超过 4 个还应该用反斜杠分行。4.3 对比未放置文件时的差异为了确认差异你可以临时把AGENTS.md改名再开一个新会话mv ~/.codex/AGENTS.md ~/.codex/AGENTS.md.bak codex 介绍一下什么是二分查找这时候它应该恢复英文回复。然后再改回来mv ~/.codex/AGENTS.md.bak ~/.codex/AGENTS.md这个对比测试能帮你确认生效的确实是AGENTS.md而不是别的原因。4.4 用 TaoToken 模型对话快速验证如果你不想在终端里反复试也可以直接用 TaoToken 的模型对话页面来验证提示词效果。把AGENTS.md里的指令粘贴到对话开头观察模型是否遵守。这种方式适合快速调试提示词内容确认没问题后再写进文件。验证通过后你就有了一个稳定的默认行为基线。后面遇到问题也知道该从哪里排查。5. 常见报错排查401、local proxy failed、OAuth 与文件不生效配置过程中最容易遇到的不是AGENTS.md本身的问题而是模型接入的问题。因为如果 Codex 连模型都连不上它根本不会去读AGENTS.md。下面按报错类型逐一排查。5.1 401 Unauthorized这是最常见的报错意思是 API Key 无效或者没传上去。排查步骤第一确认环境变量是否导出成功echo $TAOTOKEN_API_KEY如果输出为空说明没导出。检查你的~/.zshrc或~/.bashrc里有没有export TAOTOKEN_API_KEY...然后source一下。第二确认config.toml里的env_key和实际环境变量名一致。如果你写的是env_key TAOTOKEN_API_KEY那环境变量名就必须是TAOTOKEN_API_KEY不能写成TAOTOKEN_KEY。第三确认base_url写的是https://taotoken.net/api不要多加/v1。有些工具会自动拼接路径多写反而会 404 或 401。5.2 local proxy failed这个报错通常出现在 Codex 尝试通过本地代理连接时。如果你没有配置代理但 Codex 却报这个错检查config.toml里有没有多余的proxy配置。把无关的代理设置删掉只保留base_url和env_key。另外如果你在公司网络环境下可能需要检查是否有防火墙拦截。这种情况下确认https://taotoken.net/api是否可达curl -I https://taotoken.net/api如果返回 200 或 401说明网络通如果超时说明网络有问题。5.3 OAuth 相关报错有些 Codex 版本会尝试 OAuth 登录流程。如果你用的是 API Key 模式不需要 OAuth。检查config.toml里有没有auth_mode之类的字段把它设为api_key或者直接删掉。然后确认env_key配置正确。5.4 AGENTS.md 不生效如果模型接入正常但AGENTS.md就是不生效按以下顺序排查第一确认文件名是AGENTS.md全大写。Linux 和 macOS 区分大小写agents.md不会被识别。第二确认文件位置。全局文件必须在~/.codex/AGENTS.md项目文件必须在仓库根目录。你可以用pwd确认当前目录然后ls -la看文件是否存在。第三确认文件内容没有语法错误。AGENTS.md是纯 Markdown但如果你写了奇怪的符号可能会被忽略。先用最简单的Always respond in Chinese-simplified测试。第四确认 Codex 版本支持AGENTS.md。较老的版本可能用的是别的文件名。你可以用codex --version查看版本然后对照官方文档确认。5.5 模型 ID 写错如果你在config.toml里写的model字段是gpt-4o但 TaoToken 那边实际可用的模型 ID 不一样就会报模型不存在的错误。确认模型 ID 的方法是查看 TaoToken 的文档或者用模型对话页面测试。常见的模型 ID 包括gpt-4o、gpt-4o-mini、claude-3-5-sonnet等具体以你账号可用的为准。排查完这些基本能覆盖 90% 的配置问题。剩下的就是细节调整比如提示词写得不够明确导致模型理解偏差。6. 把默认行为固化下来让 Codex 真正好用AGENTS.md这个机制看起来简单但它解决的是一个很实际的问题让 AI 助手记住你的偏好而不是每次从零开始。你写一次“用中文回复”后面所有会话都省心你写一次输出格式规范后面所有代码修改都自动带上变更表和命令示例。如果你还没配 TaoToken可以先从 API Keys 页面拿到 Key然后按上面的config.toml配置好。接入文档里有更详细的参数说明遇到问题可以对照排查。配好之后用模型对话快速验证一下提示词效果确认没问题再写进AGENTS.md。对于长期用 Codex 做编码的场景建议把常用的项目规范都沉淀到仓库根目录的AGENTS.md里。比如构建命令、测试命令、代码风格、提交信息格式这些写一次后面每次会话都自动生效。团队协作时这个文件还能跟着仓库一起走新人拉下来就自带规范。如果你需要更稳定的长期编码支持可以了解一下 Coding Plan它适合高频使用 Codex 的场景。先把AGENTS.md配好再结合稳定的模型接入Codex 才能真正变成你日常编码的顺手工具。