Vercel生产环境缺失OPENAI_API_KEY是因环境变量未正确注入,需在控制台勾选“Apply to all deployments”或通过vercel.json+vercel secrets配置,并确保Codex代码从process.env读取而非config.toml。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Win11上部署Codex到Vercel后,本地能正常读取OPENAI_API_KEY,但Vercel生产环境持续报错Missing environment variable OPENAI_API_KEY,说明环境变量未被正确注入到云端运行时——这不是本地配置问题,而是Vercel平台侧的变量声明缺失或作用域错误。
Vercel控制台手动注入API密钥
第一步:登录Vercel控制台,进入对应项目仪表板。
第二步:点击左侧导航栏「Settings」→「Environment Variables」。
第三步:在「Add Environment Variable」区域,输入变量名OPENAI_API_KEY,粘贴你的实际API密钥值(注意:不要带引号、空格或换行)。
第四步:【必须勾选「Apply to all deployments」】,否则仅对当前预览部署生效,新构建的生产版本仍会丢失该变量。
第五步:点击「Save」,等待页面提示保存成功。此时无需重启服务,Vercel会在下次构建时自动注入。
通过vercel.json声明环境变量(推荐用于团队协作)
方法一:在项目根目录创建vercel.json文件(若已存在则编辑)。
方法二:向该文件写入以下内容(注意缩进与逗号):
{"env": {"OPENAI_API_KEY": "@openai-api-key"}}
方法三:执行vercel secrets add openai-api-key命令,将密钥存为Vercel Secret(命令行会提示你输入值)。
这一步操作起来很简单,直接把密钥粘贴进去就行,Vercel会自动加密存储,@openai-api-key只是引用别名,不会暴露明文。
检查Codex是否从process.env读取而非config.toml
打开项目中Codex初始化代码(通常是src/server/index.ts或app/api/codex/route.ts),确认调用逻辑是:
const apiKey = process.env.OPENAI_API_KEY;
而不是:
const apiKey = config.openai.apiKey;
如果用了后者,Vercel环境变量再怎么配也无效——Codex启动时只读config.toml,根本不会查process.env。
务必删掉或注释掉所有硬编码或config文件读取逻辑,强制走process.env路径。这是80%线上报错的真实根源。


















