为什么 Codex 的中文回复总是重启就失效
很多人在终端里用 Codex 时,都会先口头交代一句「以后都用简体中文回复」。当时确实生效了,可一旦关掉终端、重启 Codex,它又切回英文,之前的要求像没说过一样。原因很简单:终端里的口头指令只存在于当前会话,Codex 并不会把它写进任何持久化的地方。
Codex 提供了一个专门的记忆文件机制来解决这个问题——AGENTS.md。把「Always respond in Chinese-simplified」这类规则写进~/.codex/AGENTS.md,Codex 每次启动都会读取它,中文回复、改动表格、命令分行这些偏好就能固化下来,不再依赖每次手动叮嘱。
不过,光有记忆文件还不够。Codex 要真正跑起来,还得有一个可用的模型通道。这篇就把两件事接在一起做完整:一边保留原文「本地建记忆文件」的步骤,一边把模型通道切到 TaoToken(官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ),Base URL 填https://taotoken.net/api,Key 用自己创建的那把,写进~/.codex/config.toml或 CC Switch 的 Codex 项里。AGENTS.md 里的中文规则原样不动,重启后验证它是否仍然按简体中文作答、是否仍输出改动表格和带反斜杠的多行命令示例。
TaoToken 前置:注册、创建 Key、确认通道
在动 Codex 配置之前,先把 TaoToken 这边的准备工作做完。这一步不复杂,但顺序别搞反,否则后面填配置时会缺 Key。
第一步,打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 注册账号。注册完成后进入控制台,找到 API Keys 页面,创建一把新的 Key。这把 Key 就是后面要填进 Codex 配置里的凭证,创建后先复制保存好,页面刷新后通常不再完整显示。
第二步,确认要用的模型 ID。TaoToken 的模型对话页面可以看到当前可用的模型列表,选一个适合编码场景的模型,把它的 ID 记下来,后面写进config.toml的model字段。
第三步,记住两个地址,别写错:
- Base URL:
https://taotoken.net/api(注意不带/v1,也不要带任何 UTM 参数) - API Key:你刚创建的那把,形如
YOUR_API_KEY
这里要特别提醒:Base URL 只填到/api为止。有些工具习惯让你填https://xxx/v1,但 Codex 这边按https://taotoken.net/api填即可,多写/v1反而会导致请求路径拼接错误。UTM 参数是给网页统计用的,绝不能出现在配置文件里。
如果你更习惯用命令行工具管理,也可以装 TaoToken 的 CLI:
npm i -g @taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m MODEL_ID这条命令里的-u就是 Base URL,-m是模型 ID,-k是刚创建的 Key。跑通之后,Codex 的通道配置基本就绪。
可复制配置:AGENTS.md 与 config.toml
这一节是全文的核心,分两块:一块是原文的 AGENTS.md 记忆文件,一块是新增的 Codex 模型通道配置。两块都给出可直接复制的命令和内容。
1. 创建 AGENTS.md 记忆文件
原文给的一行命令可以直接用,作用是在~/.codex/下建目录并写入中文回复规则:
mkdir -p ~/.codex && printf 'Always respond in Chinese-simplified\n' > ~/.codex/AGENTS.md如果你还想把「改动表格」「命令分行」这些规则一起固化,可以用编辑器打开文件补充:
vim ~/.codex/AGENTS.md然后把下面这段完整规则粘进去(这段就是原文场景里那套规则,原样保留):
Always respond in Chinese-simplified. 每次都要用简体中文回复。 当修改或创建 python 脚本时,在最后始终提供一个表格(表格用于简单说明相当于原来的版本修改或者新建了什么),以及需要在对话最后给出修改或者创建了的所有文件,以及一个或多个具体的执行命令示例(在每个执行命令前面要给出这个命令的作用是什么)。 当命令包含的命令行参数 (args) 超过 4 个及以上时(否则不分行),必须使用反斜杠 \ 将长命令分解为多行(给出的最终的命令示例必须要显式以 \ 分割显示出来给我)。 其中具体的分行规则为: 1、第一行包含执行程序和脚本名称(例如 python script.py)。 2、从第二行开始,每一个参数标志(flag)及其对应的值应单独占一行。 3、保持缩进:所有后续参数行都应进行 2 个空格的缩进,以保持视觉上的清晰对齐。保存退出即可。这个文件是 Codex 的全局记忆文件,放在~/.codex/下,对所有项目生效。
2. 配置 Codex 的模型通道
接下来配置~/.codex/config.toml。如果文件不存在就新建:
mkdir -p ~/.codex && vim ~/.codex/config.toml写入以下内容(把YOUR_API_KEY换成你实际创建的 Key,MODEL_ID换成你选定的模型 ID):
model = "MODEL_ID" model_provider = "taotoken" [model_providers.taotoken] name = "TaoToken" base_url = "https://taotoken.net/api" env_key = "TAOTOKEN_API_KEY"然后在 shell 里导出环境变量,让 Codex 能读到 Key:
export TAOTOKEN_API_KEY="YOUR_API_KEY"想让它永久生效,可以把这行写进~/.bashrc或~/.zshrc,再source一下。
如果你用的是 CC Switch 管理多个通道,也可以在 CC Switch 的 Codex 项里直接填:Base URL 填https://taotoken.net/api,Key 填刚创建的那把,模型 ID 填你选的。效果和手写config.toml一样,选一种方式即可,不要两边同时配造成冲突。
验证请求:重启后看中文、表格、分行是否还在
配置写完,必须重启 Codex 才能让config.toml和AGENTS.md同时生效。验证分三步,一步都不能省。
第一步,重启 Codex,先随便问一句中文,比如「帮我看看当前目录下有哪些文件」。观察它是否用简体中文回答。如果还是英文,说明 AGENTS.md 没被读到,先别急着怀疑通道。
第二步,让它改一个 Python 脚本,看它是否在最后给出改动表格、列出修改或新建的文件、并给出带反斜杠的多行命令示例。这一步验证的是 AGENTS.md 里那套复杂规则有没有真正生效。
第三步,确认请求确实走的是 TaoToken 通道。可以在 TaoToken 控制台的用量或日志页面查看是否有对应的请求记录;如果那边能看到调用,说明 Base URL 和 Key 都填对了。
一个典型的成功结果长这样:你问一句中文,Codex 用简体中文回答;让它改脚本,它输出一个「原版本 vs 新版本」的表格,末尾列出改动文件,并给出类似下面这种分行命令:
python train.py \ --data ./dataset \ --epochs 50 \ --batch-size 32 \ --lr 0.001 \ --output ./checkpoints如果这三步都通过,说明记忆文件和模型通道都配好了。
本篇常见错排查
配置过程中最容易踩的坑集中在几个地方,逐个对照排查。
中文规则重启后丢失。先检查AGENTS.md的路径和文件名有没有拼错。正确路径是~/.codex/AGENTS.md,注意是AGENTS全大写、复数,扩展名是.md。写成agent.md、AGENT.md、Agents.md都不会被识别。可以用ls -la ~/.codex/确认文件确实存在。
请求报 401 或鉴权失败。多半是 Key 没填对,或者环境变量没导出。检查TAOTOKEN_API_KEY是否和创建的那把一致,export之后是否在当前 shell 生效。如果写进了~/.bashrc但没source,新开的终端才生效,当前终端还是旧的。
请求路径 404。检查 Base URL 是不是多写了/v1。正确写法是https://taotoken.net/api,不要带/v1,也不要带任何 UTM 参数。UTM 是网页统计用的,写进配置文件会导致路径错误。
模型 ID 不存在。确认config.toml里的model字段和 TaoToken 模型对话页面列出的 ID 完全一致,大小写、连字符都不能差。
CC Switch 和 config.toml 冲突。如果你两边都配了,Codex 可能读到不一致的通道。建议只用一种方式:要么手写config.toml,要么用 CC Switch 管理,不要同时改。
表格和分行规则没生效。这通常是 AGENTS.md 内容不完整,或者规则段落被截断。重新用vim ~/.codex/AGENTS.md打开,确认那段分行规则完整存在,保存后再重启 Codex。
语义一致:把通道和记忆文件一起固化
回到最初的问题:Codex 的中文回复为什么重启就失效?因为它没有被写进持久化的记忆文件。~/.codex/AGENTS.md解决的正是这件事,把「Always respond in Chinese-simplified」以及改动表格、命令分行这些规则固化下来,每次启动自动读取。
而模型通道是另一条线。把 Base URL 填https://taotoken.net/api、Key 填自己创建的那把,写进~/.codex/config.toml或 CC Switch 的 Codex 项,Codex 才有稳定可用的模型来执行这些规则。两条线合在一起,才是完整的接入配置。
如果你在接入或排障过程中卡住,可以去 TaoToken 的 API Keys 页面重新确认 Key,或查阅接入文档核对 Base URL 和参数写法;想先验证模型是否正常,可以直接在模型对话页面发一条中文测试;如果是长期编码或 Agent 场景,建议了解 Coding Plan 的用法,把通道和记忆文件一次性配好,后面就不用反复折腾了。