1. 科研场景里那些重复交代的规则,Codex Skills 能接住
如果你正在用 Codex 做科研相关的开发工作,大概率遇到过这种场景:每次开一个新项目,都要重新跟 AI 交代一遍目录结构、代码规范、数据不能覆盖、图表要放哪里、参考文献要补 DOI。说一次两次还行,项目一多,这些重复交代就成了纯粹的消耗。
Codex Skills 解决的就是这个问题。它本质上是一套写给 AI Agent 的操作规程——把某类任务的规则提前写成文件,Agent 在需要时自动发现并调用。普通 prompt 是临时交代一句话,Skill 是提前写好的任务说明书。对需要多工具协作的科研开发者来说,这意味着论文复现、讲义制作、PDF 检查、访谈整理这些流程,都可以封装成可反复执行的工作流。
这篇文章面向的是已经或准备用 Codex 做科研工作流定制的开发者。我会从安装一个官方 Skill 开始,讲到怎么用 TaoToken 统一 Key 接入,再给出一段可复制的配置片段,最后用一条命令验证整条调用链是否生效。全程可跟做,不需要你之前用过 Claude Code Skills。
先明确一个前提:Codex Skills 的仓库在 github.com/openai/skills,官方文档在 Agent Skills – Codex 页面。Codex 和 Skills 都还在快速迭代,本文给的是一条可操作的入门路径,遇到问题建议回官方仓库核对最新说明。
科研场景里最典型的重复规则包括:数据放data/,代码放code/,表格放tables/,图形放figures/;Stata 脚本要写日志、不能覆盖原始数据;Python 代码用相对路径、要有清楚的中文注释;讲义里的公式要规范、代码要能运行;推文参考文献要补 DOI、PDF 和 Google Scholar 链接;访谈资料先匿名化再做主题编码。这些不是一次性要求,而是长期习惯。把它们写成 Skill,AI 的输出会稳定得多。
2. TaoToken 前置:统一 Key 接入 Codex 的准备工作
在装 Skill 之前,先把 Key 的事情理清楚。Codex 调用模型需要 Base URL、API Key 和 Model ID 三件套。如果你同时用多个工具(Codex CLI、Cline、Claude Code 等),每个工具单独配 Key 会很乱。TaoToken 的作用就是提供一个统一的接入点,让你用同一个 Key 管理多个工具的模型调用。
你需要先拿到自己的 API Key。访问 https://taotoken.net/api-keys 创建,注意这个地址不带 UTM 参数,直接访问即可。创建后复制 Key,后面配置里会用到。
Base URL 统一用https://taotoken.net/api。这个地址是 API 端点,不要加 UTM 后缀。Model ID 根据你实际使用的模型填写,比如gpt-4o、claude-sonnet-4-20250514等,具体以 TaoToken 控制台里可用的模型列表为准。
这里要强调一点:Codex 的配置文件和 Claude Code 不一样。Codex CLI 读取的是~/.codex/config.toml和~/.codex/auth.json。如果你之前配过 Claude Code 的settings.json,不能直接照搬,路径和字段名都要重新对。
我试过在同一个项目里同时跑 Codex 和 Cline,两个工具共用一套 Key,切换时不用改环境变量,省了不少事。前提是 Base URL 和 Model ID 在两边都写对。
另外,如果你打算长期用 Codex 做编码和 Agent 任务,可以了解一下 Coding Plan,它针对高频调用场景做了额度优化。只是偶尔验证模型效果的话,用模型对话页面就够了。
准备工作清单:一个 TaoToken API Key、确认 Base URL 为https://taotoken.net/api、确认你要用的 Model ID、确认 Codex CLI 已安装(codex --version能输出版本号)。
3. 可复制配置:Codex Skills 安装与 auth.json 三件套
这一节给可直接复制的配置片段。先装 Codex CLI,再配 auth.json,最后装 Skill。
Codex CLI 安装(以 npm 为例):
npm install -g @openai/codex codex --version配~/.codex/auth.json,这是 Codex 读取 Key 的地方:
{ "OPENAI_API_KEY": "你的TaoToken_API_Key", "OPENAI_BASE_URL": "https://taotoken.net/api" }配~/.codex/config.toml,指定模型和基础参数:
model = "gpt-4o" model_provider = "taotoken" [model_providers.taotoken] name = "TaoToken" base_url = "https://taotoken.net/api" env_key = "OPENAI_API_KEY"注意env_key写的是环境变量名,Codex 会去读auth.json里对应的值。如果你更习惯用环境变量,也可以在 shell 里 export:
export OPENAI_API_KEY="你的TaoToken_API_Key" export OPENAI_BASE_URL="https://taotoken.net/api"两种方式选一种即可,不要同时配导致冲突。
接下来装 Skill。Codex 的 Skill 扫描路径是~/.codex/skills/。官方仓库 github.com/openai/skills 里有.system、.curated、.experimental三类目录。.system是内置的,比如skill-creator、skill-installer;.curated是官方整理的可安装 Skill,比如jupyter-notebook、pdf、transcribe、speech、gh-fix-ci;.experimental是实验性的,比如create-plan。
克隆仓库到本地:
git clone https://github.com/openai/skills.git ~/codex-skills-repo把你要用的 Skill 复制到扫描路径。比如装pdf和jupyter-notebook:
mkdir -p ~/.codex/skills cp -r ~/codex-skills-repo/.curated/pdf ~/.codex/skills/ cp -r ~/codex-skills-repo/.curated/jupyter-notebook ~/.codex/skills/每个 Skill 目录里必须有一个SKILL.md,Codex 靠它识别 Skill 的name和description。你可以打开看一眼:
cat ~/.codex/skills/pdf/SKILL.md确认name字段和目录名一致,description能清楚说明这个 Skill 干什么。如果 description 写得太模糊,Codex 可能不会在合适的时机调用它。
自己写一个科研 Skill 也很简单。比如建一个论文复现 Skill:
mkdir -p ~/.codex/skills/paper-repro然后写~/.codex/skills/paper-repro/SKILL.md:
--- name: paper-repro description: 论文复现工作流,规范数据、代码、表格、图形的目录结构,确保 Stata 脚本写日志且不覆盖原始数据,Python 代码使用相对路径。 --- # 论文复现工作流 ## 目录约定 - 原始数据放 data/raw/,清洗后数据放 data/clean/ - 代码放 code/,Stata 脚本放 code/stata/,Python 脚本放 code/python/ - 表格输出到 tables/,图形输出到 figures/ ## 执行规则 1. Stata 脚本开头必须写 log using,日志存到 logs/ 2. 禁止覆盖 data/raw/ 下的任何文件 3. Python 代码使用相对路径,注释用中文 4. 每次运行后检查 tables/ 和 figures/ 是否有新文件生成保存后,Codex 下次启动时会扫描到这个 Skill。调用方式是在对话里用$paper-repro引用,或者用/skills查看已加载的 Skill 列表。
4. 验证请求:一条命令检查调用链是否生效
配置写完,得验证整条链路通不通。最直接的方式是用 Codex CLI 发一个请求,看它能不能正常返回。
先检查 Skill 是否被识别:
codex skills list如果输出里能看到pdf、jupyter-notebook、paper-repro,说明 Skill 扫描路径没问题。如果列表为空,检查~/.codex/skills/下每个目录是否有SKILL.md,以及文件开头的 frontmatter 格式是否正确。
再验证模型调用:
codex exec "用一句话说明当前目录下有哪些文件"这条命令会让 Codex 调用模型并返回结果。如果返回了正常的文本描述,说明 Base URL、API Key、Model ID 三件套都配对了。如果报错,看下一节的排查对照。
验证 Skill 调用链,可以显式引用一个 Skill:
codex exec "\$paper-repro 帮我检查当前项目的目录结构是否符合规范"如果 Codex 能读取paper-repro的规则并给出符合规范的检查结果,说明从 Skill 加载到模型调用的整条链路都通了。
成功的结果长这样:Codex 会先列出当前目录结构,然后对照 Skill 里的目录约定,指出哪些文件放错了位置,哪些目录缺失。它不会直接改文件,而是给出建议。你可以根据建议手动调整,或者让 Codex 执行调整。
再验证一个官方 Skill,比如pdf:
codex exec "\$pdf 检查当前目录下所有 PDF 的页数和文件大小"如果返回了每个 PDF 的页数和大小,说明官方 Skill 也能正常调用。
这里有个细节:Codex 调用 Skill 时,会把SKILL.md的内容作为上下文注入。所以 Skill 写得越具体,输出越稳定。如果 Skill 里只写了一句“处理 PDF”,Codex 不知道具体要做什么,输出就会很泛。
验证通过后,你可以把常用 Skill 组合起来。比如论文项目里同时用paper-repro和pdf,让 Codex 先检查目录规范,再检查 PDF 完整性。
5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth
配置过程中最容易撞上的几类报错,这里逐个对照。
401 Unauthorized:Key 没配对,或者auth.json里的字段名写错了。Codex 读的是OPENAI_API_KEY,不是api_key或token。检查~/.codex/auth.json里的键名是否完全一致。另外确认 Key 没有多余空格,复制时容易带上换行。
local proxy failed / connection refused:Base URL 写错了。确认是https://taotoken.net/api,不要写成https://taotoken.net/api/v1或带其他路径。也不要加 UTM 参数,API 端点不需要。如果你在环境变量和auth.json里同时配了 Base URL,检查是否冲突。
reading choices 报错 / unexpected response format:Model ID 写错了,或者该模型在当前 Key 下不可用。去 TaoToken 控制台确认可用模型列表,把config.toml里的model字段改成列表里存在的值。注意模型名大小写敏感。
OAuth 相关报错 / login required:Codex 可能尝试走 OAuth 登录流程,而不是读你的auth.json。检查config.toml里model_provider是否指向了你自定义的 provider。如果 Codex 版本较新,可能需要显式设置preferred_auth_method = "apikey"。具体字段名以你安装的 Codex 版本为准,用codex --help查看可用配置项。
Skill 不生效 / $skill-name 无响应:三个检查点。第一,~/.codex/skills/下是否有对应目录;第二,目录里是否有SKILL.md;第三,SKILL.md开头的 frontmatter 里name和description是否完整。缺任何一个,Codex 都不会加载。
Codex 能对话但不调用 Skill:Skill 的description写得太泛,Codex 判断不出什么时候该用。把 description 改具体,比如把“处理论文”改成“论文复现工作流,规范数据、代码、表格、图形的目录结构”。description 是 Codex 决定是否调用 Skill 的主要依据。
改了配置不生效:Codex 可能缓存了旧配置。退出 CLI 重新启动,或者检查是否有多个配置文件路径(比如项目级.codex/和用户级~/.codex/同时存在)。项目级配置优先级更高,容易覆盖你的全局设置。
排查顺序建议:先确认 Key 和 Base URL,再确认 Model ID,最后确认 Skill 路径和 frontmatter。大部分问题出在前两步。
6. 把科研工作流固化下来,从下一个项目开始
Skill 装好、Key 配通、调用链验证过之后,真正有价值的事情是把你自己的科研规则写进去。官方.curated里的 Skill 偏通用,jupyter-notebook、pdf、transcribe这些能覆盖一部分场景,但论文复现、讲义制作、访谈整理这些具体流程,得你自己定制。
定制的门槛比想象中低。一个SKILL.md文件,加上 frontmatter 里的name和description,再写清楚执行规则,就是一个可用的 Skill。你不需要写代码,只需要把平时反复交代给 AI 的那些话,整理成结构化的文档。
建议从最小的 Skill 开始。比如先写一个只规范目录结构的 Skill,跑通之后再往里加规则。每加一条规则,就用codex exec验证一次,看 Codex 是否按新规则执行。这样逐步迭代,比一次性写一个复杂 Skill 更容易调试。
如果你同时用多个工具,TaoToken 的统一 Key 能省去反复切换的麻烦。Codex 用一套,Cline 用一套,Claude Code 用一套,但 Base URL 和 Key 是同一个。换工具时只需要改配置文件路径,不用重新申请 Key。
长期做编码和 Agent 任务的话,Coding Plan 的额度模型更适合高频调用。只是偶尔验证模型输出,用模型对话页面就够。接入文档在 https://taotoken.net/doc 可以查到最新的配置说明和字段对照。
最后一个实用技巧:把~/.codex/skills/目录纳入你的 dotfiles 管理。换机器时直接同步过去,Skill 和配置一起迁移,不用重新搭一遍。科研工作流的价值在于可重复,Skill 让这种可重复性从“每次交代”变成“一次写好、反复调用”。