Codex 配置自定义 AI API 完整指南:从零到一接入你的专属模型

Codex 配置自定义 AI API 完整指南:从零到一接入你的专属模型

Codex 配置自定义 AI API 完整指南:从零到一接入你的专属模型

前言

作为一名开发者,我们经常需要在终端环境中使用 AI 编程助手。OpenAI 的 Codex 是一个非常强大的命令行 AI 编程工具,但默认情况下它只能调用 OpenAI 官方的 API。那么问题来了:如果我们有自己的 API 服务(比如部署了国产大模型、使用了代理服务、或者公司内部的 AI 平台),如何让 Codex 接入这些自定义的 API 呢?

本文将通过一个真实的配置案例,详细讲解如何在 macOS(特别是 Mac Mini)环境下配置 Codex,使其能够调用自定义的 AI API。整个过程涉及配置文件编写、环境变量设置、版本兼容性问题排查等,希望能帮助到遇到类似问题的开发者。

一、理解 Codex 的架构

在开始配置之前,我们需要理解 Codex 的基本架构。Codex 采用了一种灵活的 Provider 机制,允许用户定义多个 AI 服务提供商,并在它们之间切换。

核心概念:

  • Provider(提供商):一个 AI 服务的具体实现,包含 API 地址、认证方式等
  • Model(模型):Provider 提供的具体模型名称
  • Wire API:Codex 与 Provider 之间的通信协议类型

这种设计让 Codex 不仅限于 OpenAI 的服务,理论上可以接入任何兼容 OpenAI API 格式的服务。

二、配置前的准备工作

2.1 确认 Codex 版本

这是最关键的一步!不同版本的 Codex 对 API 协议的支持完全不同:

codex --version
版本支持的 API 类型wire_api 参数
0.81.0 及以上Responses API“responses”
0.80.0 及以下Chat Completions API“chat”

重要提示:如果你的 API 服务只支持标准的 Chat Completions 格式(大多数国产模型和代理服务都是这种),建议安装 0.80.0 版本:

npminstall-g @openai/[email protected] 

2.2 确认 API 服务状态

在配置 Codex 之前,先用 curl 测试一下你的 API 服务是否正常工作:

# 测试基础连通性curl-X POST http://localhost:8080/v1/chat/completions \-H"Content-Type: application/json"\-H"Authorization: Bearer YOUR_API_KEY"\-d'{ "model": "your-model-name", "messages": [{"role": "user", "content": "Hello"}], "max_tokens": 50 }'

如果这个请求能正常返回,说明你的 API 服务是可用的。

三、配置文件详解

3.1 配置文件位置

Codex 的配置文件采用 TOML 格式,默认位置在:

  • 用户级配置:~/.codex/config.toml
  • 项目级配置:项目根目录/.codex/config.toml

项目级配置会覆盖用户级配置,这为不同项目使用不同的 AI 服务提供了便利。

3.2 基础配置结构

一个完整的配置文件包含三个部分:

  1. 全局设置(默认模型和 Provider)
  2. Provider 定义
  3. 项目特定设置(可选)
# 全局设置 service_tier = "fast" model = "your-model-name" model_provider = "your-provider-name" # Provider 定义 [model_providers.your-provider-name] name = "显示名称" base_url = "http://localhost:8080/v1" wire_api = "chat" # 或 "responses" env_key = "YOUR_API_KEY_ENV_NAME" # 项目特定设置(可选) [projects."/path/to/your/project"] trust_level = "trusted" 

3.3 配置项详细说明

配置项说明示例
model默认使用的模型名称qwen3.6-plus
model_provider默认使用的 Provider 名称my-custom-provider
base_urlAPI 服务地址http://localhost:8080/v1
wire_apiAPI 协议类型chatresponses
env_key存放 API Key 的环境变量名MY_API_KEY

3.4 常见配置错误及修正

错误 1:将 API Key 直接写在 env_key 字段

# ❌ 错误 env_key = "sk-your-actual-api-key" # ✅ 正确 env_key = "MY_API_KEY" 

错误 2:协议类型不匹配

# 如果 API 只支持 Chat Completions wire_api = "chat" # 而不是 "responses" 

错误 3:base_url 格式问题

# 本地服务通常用 http 而不是 https base_url = "http://localhost:8080/v1" # 正确 base_url = "https://localhost:8080/v1" # 可能导致 SSL 错误 

四、Mac Mini 环境变量配置

4.1 临时设置(仅当前终端会话)

exportYOUR_API_KEY="sk-your-actual-api-key"

4.2 永久设置(推荐)

由于 Mac Mini 默认使用 Zsh,我们需要将环境变量写入 ~/.zshrc

echo'export YOUR_API_KEY="sk-your-actual-api-key"'>> ~/.zshrc source ~/.zshrc 

4.3 验证环境变量

echo$YOUR_API_KEY

五、实战案例:配置本地 Qwen API

假设我们有一个运行在本地 8080 端口的 Qwen 模型服务,以下是完整的配置步骤:

5.1 创建配置文件

mkdir-p ~/.codex nano ~/.codex/config.toml 

5.2 写入配置内容

service_tier = "fast" # 设置默认使用 Qwen 模型 model = "qwen3.6-plus" model_provider = "red_claw" # 定义 Provider [model_providers.red_claw] name = "RedClaw Qwen Service" base_url = "http://localhost:8080/v1" wire_api = "chat" env_key = "REDCLAW_API_KEY" # 项目信任配置(可选) [projects."/Users/macmini/workspace/my-project"] trust_level = "trusted" 

5.3 设置环境变量

echo'export REDCLAW_API_KEY="sk-yien-1620bbcc7f4349c1bcf5b82f6e3756c1"'>> ~/.zshrc source ~/.zshrc 

5.4 测试配置

codex "你好,请介绍一下自己"

六、常见问题及解决方案

6.1 问题:自定义模型不显示在选择器中

现象:运行 codex 时,模型选择器只显示官方模型,看不到自己配置的模型。

原因:配置文件没有被正确加载,或者配置格式有误。

解决方案

# 检查配置文件是否存在ls-la ~/.codex/config.toml # 查看当前加载的配置 codex config show # 检查配置语法 codex --config-check 

6.2 问题:--model-provider 参数不存在

现象

error: unexpected argument '--model-provider' found 

原因:Codex 没有这个命令行参数。

解决方案:通过配置文件设置默认 Provider,而不是通过命令行参数。或者使用正确的参数名:

# 正确的参数是 --provider codex -m model-name --provider provider-name "prompt"

6.3 问题:wire_api 版本不匹配

现象

wire_api = chat is no longer supported 

原因:新版 Codex 不再支持 chat 协议。

解决方案

  • 方案一:将配置中的 wire_api 改为 "responses"
  • 方案二:降级 Codex 到 0.80.0 版本
npm uninstall -g @openai/codex npminstall-g @openai/[email protected] 

6.4 问题:SSL 证书错误(本地服务)

现象

SSL certificate problem: self signed certificate 

原因:本地服务使用 HTTPS 但没有有效的 SSL 证书。

解决方案

[model_providers.your-provider] # ... 其他配置 allow_insecure = true # 仅用于本地开发 

6.5 问题:环境变量不生效

现象:配置了环境变量,但 Codex 仍然提示找不到 API Key。

解决方案

# 1. 确认环境变量已设置echo$YOUR_API_KEY# 2. 重新加载配置文件source ~/.zshrc # 3. 重启终端# Mac 上按 Cmd+Q 退出终端,重新打开# 4. 检查是否有空格或特殊字符# 确保 API Key 没有多余的空格

七、调试技巧

7.1 开启调试模式

# 开启详细日志DEBUG=true codex "你的问题"# 查看网络请求详情RUST_LOG=debug codex "你的问题"

7.2 查看配置加载情况

# 显示当前所有配置 codex config show # 列出可用的 Providers codex config list-providers # 测试配置文件 codex config test

7.3 网络抓包

如果还是无法定位问题,可以用 Wireshark 或 tcpdump 抓包分析:

# 监控本地 8080 端口的流量sudo tcpdump -i lo0 port 8080-A

八、最佳实践建议

8.1 安全性建议

  1. 永远不要将 API Key 写在配置文件中,始终使用环境变量
  2. 定期轮换 API Key
  3. 对不同项目使用不同的 API Key,便于审计和权限管理
  4. .codex/ 目录加入 .gitignore,避免意外提交敏感信息

8.2 多 Provider 管理

如果你有多个 AI 服务,可以在配置文件中定义多个 Provider:

# 默认使用本地 Qwen model = "qwen3.6-plus" model_provider = "local_qwen" # 定义本地 Qwen [model_providers.local_qwen] name = "Local Qwen" base_url = "http://localhost:8080/v1" wire_api = "chat" env_key = "QWEN_API_KEY" # 定义云端 GPT [model_providers.cloud_gpt] name = "Cloud GPT" base_url = "https://api.openai.com/v1" wire_api = "responses" env_key = "OPENAI_API_KEY" # 定义代理服务 [model_providers.proxy_service] name = "API Proxy" base_url = "https://your-proxy.com/v1" wire_api = "chat" env_key = "PROXY_API_KEY" 

8.3 项目级配置示例

为不同项目创建独立的配置文件:

# 项目 A 使用本地 Qwenmkdir-p /path/to/projectA/.codex cat> /path/to/projectA/.codex/config.toml <<'EOF' model = "qwen-max" model_provider = "local_qwen" [model_providers.local_qwen] base_url = "http://localhost:8080/v1" wire_api = "chat" env_key = "QWEN_API_KEY" EOF# 项目 B 使用云端 GPTmkdir-p /path/to/projectB/.codex cat> /path/to/projectB/.codex/config.toml <<'EOF' model = "gpt-4" model_provider = "cloud_gpt" [model_providers.cloud_gpt] base_url = "https://api.openai.com/v1" wire_api = "responses" env_key = "OPENAI_API_KEY" EOF

九、完整配置清单

最后,提供一个完整的配置检查清单,确保没有遗漏:

  • Codex 版本已确认(0.80.0 推荐)
  • API 服务已启动并可访问
  • ~/.codex/config.toml 文件已创建
  • modelmodel_provider 已正确设置
  • Provider 配置块已添加
  • base_url 使用正确的协议(本地用 http)
  • wire_api 类型与 API 服务匹配
  • env_key 填的是环境变量名,不是 API Key
  • 环境变量已在 ~/.zshrc 中设置
  • 已执行 source ~/.zshrc 使配置生效
  • echo $YOUR_ENV_KEY 能正确显示 API Key
  • codex config show 显示正确的配置
  • codex "test" 能正常响应

十、总结

配置 Codex 调用自定义 AI API 的核心要点可以总结为:

  1. 版本先行:确认 Codex 版本,选择合适的 wire_api 类型
  2. 配置分离:API Key 用环境变量,其他配置用 TOML 文件
  3. 协议匹配:确保 wire_api 与你的 API 服务类型一致
  4. 路径正确base_url 格式要正确,本地服务注意 http vs https
  5. 调试有方:善用 DEBUG=truecodex config show 排查问题

虽然配置过程中可能会遇到各种问题(版本不匹配、参数名错误、环境变量不生效等),但只要按照本文的步骤逐一排查,最终都能顺利解决。

希望这篇指南能帮助你成功配置 Codex,享受到在终端中使用自定义 AI 模型的便利。如果你在配置过程中遇到其他问题,欢迎在评论区留言交流!


附录:快速配置模板

# 一键配置脚本(请根据实际情况修改)cat> ~/.codex/config.toml <<'EOF' model = "your-model" model_provider = "custom" [model_providers.custom] base_url = "http://localhost:8080/v1" wire_api = "chat" env_key = "CUSTOM_API_KEY" EOFecho'export CUSTOM_API_KEY="your-actual-api-key"'>> ~/.zshrc source ~/.zshrc # 测试 codex "Hello, world!"

Read more

ubuntu上安装OpenClaw并接入飞书机器人

ubuntu上安装OpenClaw并接入飞书机器人

大家好,我是一根甜苦瓜。今天来分享如何在本地安装openclaw并接入飞书,实现让AI给我打工。 最近AI圈更新太快了,从github copilot到cursor 到claud code ,再到codex,然后是最近火爆了的小龙虾(OpenClaw),可谓是百花齐放,应接不暇。本人也是github copilot+codex的深度用户,确实不错,所以最近打算折腾一下小龙虾,顺带教大家如何把智谱GLM 接入OpenClaw。 1. 前言 1.1 什么是openclaw 2026 年开年,AI 圈突然冒出一匹“野生黑马”——OpenClaw。这个开源个人 AI 助手项目在 GitHub 上只用了 两周时间就狂揽 15 万 Star,速度堪比开挂。 简单说,它就像给你配了一个 24 小时不下班的数字打工人: 把它部署在自己的电脑或服务器上,它就能接入 WhatsApp、Telegram、

JVS-APS是什么?算法驱动+低代码融合,重塑智能排产新范式!

JVS-APS是什么?算法驱动+低代码融合,重塑智能排产新范式!

在制造业数字化转型的浪潮中,生产计划与排程(APS)正从“经验驱动”走向“算法驱动”。然而,市面上多数APS系统要么价格高昂、闭源锁定,要么实施复杂、难以与现有IT体系融合。今天,我们介绍一款开源、可私有化部署、且能与低代码平台无缝融合的智能排产系统——JVS-APS。 一、什么是APS?为什么需要智能排产? APS(Advanced Planning and Scheduling,高级计划与排程)是连接企业资源计划(ERP)与制造执行系统(MES)的“大脑”,负责在有限资源(设备、人力、物料)约束下,自动生成最优的生产计划与排程方案。 传统排产依赖ERP的粗能力计算或人工Excel表格,往往面临三大困境: * 资源冲突:设备、模具、人员同时被多个订单争抢,排产混乱; * 物料缺料:不考虑库存与在途物料,生产到一半才发现缺料; * 动态响应差:插单、

HarmonyOS 5.0物联网开发实战:基于星闪(NearLink)技术的智能家居边缘计算网关

HarmonyOS 5.0物联网开发实战:基于星闪(NearLink)技术的智能家居边缘计算网关

文章目录 * 每日一句正能量 * 前言 * 一、物联网通信技术演进与星闪机遇 * 1.1 传统智能家居痛点 * 1.2 星闪(NearLink)技术架构 * 二、系统架构设计 * 2.1 核心模块划分 * 三、核心代码实现 * 3.1 星闪(NearLink)接入管理 * 3.2 边缘AI推理引擎 * 3.3 智能场景引擎 * 四、网关主界面实现 * 五、总结与物联网价值 每日一句正能量 自律是反人性的,所以,刚开始的几秒,势必会挣扎,打退堂鼓,但只要克服了,之后的神清气爽,会让你感谢自己最初那几秒的坚持。 前言 摘要: 本文基于HarmonyOS 5.0.0版本,

无人机数据集汇总无人机航拍各个方面检测分割数据集合集

本数据集集合了面向无人机视觉任务的大规模、多场景、多目标标注数据资源,涵盖了地理环境、智慧城市、基础设施巡检、农业生产、公共安全与灾害监测等多个关键领域。数据主要以两种主流格式提供:适用于目标检测的VOC/YOLO格式与适用于像素级语义分割的LabelMe格式,为算法开发与模型训练提供了高度结构化的标注支持。 在地理与农业监测方面,包含田地、道路、森林、水体等地理要素的分割数据集,以及作物病害、杂草识别、农田农机、牛羊牲畜等农业目标的检测数据,支持精准农业与生态研究。智慧城市与交通领域提供了丰富的城市街道场景数据,涵盖行人、车辆、交通标志、占道经营、消防通道、广告牌等目标的检测与分割,助力城市智能化管理。基础设施巡检是另一重点,覆盖电力线、光伏板、桥梁、铁路、风力发电机等设备的缺陷与异常检测,以及工地车辆、施工人员、物料垃圾的识别,满足工业自动化巡检需求。在灾害与安全监控中,包含滑坡、洪水、火灾烟雾、河道垃圾、违规建筑等应急场景的检测与分割数据,同时提供了溺水人员、海上救援、军事目标等特殊任务的专项数据集。此外,