OSS 模式是什么

OSS(Open Source Software)模式是 Codex 2026 年最重要的功能更新之一。它允许用户绕过 OpenAI 模型锁定,接入任何兼容 OpenAI API 格式的模型端点。

核心原理很简单:Codex 的模型调用层使用了 OpenAI SDK 的标准接口,任何实现了 /v1/chat/completions 端点的服务都可以作为模型提供方。

┌─────────────┐     OpenAI Compatible API     ┌──────────────┐
│   Codex     │ ─────────────────────────────→│  任意模型     │
│  Agent Loop │ ←─────────────────────────────│  推理引擎     │
└─────────────┘     JSON Response             └──────────────┘

这意味着:

  • ✅ 本地模型(Ollama / LM Studio / vLLM)
  • ✅ 国产模型 API(DeepSeek / Qwen / GLM)
  • ✅ 自托管模型(vLLM / TGI / SGLang)
  • ✅ 多模型混合(不同任务用不同模型)

Ollama 接入

安装 Ollama

# Linux
curl -fsSL https://ollama.com/install.sh | sh

# macOS
brew install ollama

# Windows
winget install Ollama.Ollama

拉取推荐模型

# 编程专精模型
ollama pull qwen2.5-coder:32b

# 通用大模型
ollama pull llama3.3:70b

# 轻量快速模型
ollama pull phi4:14b

# 中文优化
ollama pull qwen2.5:32b

Codex 配置

// ~/.codex/config.json
{
  "provider": "openai-compatible",
  "model": "qwen2.5-coder:32b",
  "apiBase": "http://localhost:11434/v1",
  "apiKey": "ollama",
  "temperature": 0.7,
  "maxTokens": 8192,
  "streaming": true
}

验证连通性

# 测试 API 是否可用
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen2.5-coder:32b",
    "messages": [{"role": "user", "content": "Hello"}],
    "max_tokens": 50
  }'

# 通过 Codex 测试
codex "写一个 Python 函数计算斐波那契数列"

LM Studio 接入

LM Studio 提供图形界面管理本地模型,适合不熟悉命令行的用户。

步骤

  1. 下载安装 LM Studio
  2. 在 Discover 页面搜索并下载模型(推荐 GGUF 格式)
  3. 进入 Local Server 标签页
  4. 加载模型并点击 “Start Server”
  5. 默认端口 1234

Codex 配置

{
  "provider": "openai-compatible",
  "model": "qwen2.5-coder-32b-instruct",
  "apiBase": "http://localhost:1234/v1",
  "apiKey": "lm-studio",
  "temperature": 0.7
}

LM Studio 优势

特性OllamaLM Studio
界面CLI图形界面
模型管理命令行拖拽下载
量化选项预设灵活选择
GPU 配置自动手动调优
多模型加载单模型可同时加载
适合人群开发者所有用户

vLLM 自托管部署

对于企业级私有部署,vLLM 是最优选择:

# 安装 vLLM
pip install vllm

# 启动 API 服务器
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-Coder-32B-Instruct \
  --port 8000 \
  --tensor-parallel-size 2 \
  --gpu-memory-utilization 0.9 \
  --max-model-len 32768

Codex 配置

{
  "provider": "openai-compatible",
  "model": "Qwen/Qwen2.5-Coder-32B-Instruct",
  "apiBase": "http://your-server:8000/v1",
  "apiKey": "vllm-token",
  "temperature": 0.7,
  "maxTokens": 32768
}

vLLM vs Ollama 性能对比

在 A100 80GB GPU 上测试 Qwen2.5-Coder-32B:

指标Ollama (q4)vLLM (fp16)vLLM (awq)
首 token 延迟320ms85ms72ms
生成速度28 tok/s95 tok/s110 tok/s
并发支持1100+100+
显存占用18GB65GB24GB
质量损失中等轻微

性能对比:本地 vs 云端

编程任务测试

任务:实现一个带有分页、排序、过滤的 REST API(Python FastAPI)

模型首次成功率代码质量耗时成本
GPT-4o (云端)100%9.5/1045s$0.12
Claude 4 Sonnet100%9.3/1038s$0.10
Qwen2.5-Coder-32B (本地)95%9.0/1065s$0
DeepSeek-V3 (API)95%8.8/1055s$0.02
Llama 3.3 70B (本地)90%8.5/1080s$0
Phi-4 14B (本地)80%7.5/1025s$0

推理任务测试

任务:分析一段代码的潜在安全漏洞

模型检出率误报率耗时
o3 (云端)98%5%30s
GPT-4o (云端)92%8%20s
Qwen2.5-Coder-32B (本地)85%12%55s
Llama 3.3 70B (本地)82%10%70s
Phi-4 14B (本地)70%18%20s

成本分析

个人开发者

方案月成本适用场景
Ollama + Qwen2.5-Coder 7B$0(电费)日常编程
Ollama + Qwen2.5-Coder 32B$0(需 24GB VRAM)专业开发
DeepSeek API$2-10中度使用
OpenAI API$20-100重度使用
Codex Plus 订阅$20均衡选择

企业部署

以 50 人团队、每人每天 50 次调用为例:

方案月成本数据隐私性能
OpenAI API$3,000-8,000数据外传最强
Claude API$2,500-7,000数据外传
DeepSeek API$500-1,500数据外传
自托管 vLLM (2×A100)$4,000 (服务器)完全私有中上
自托管 vLLM (4×A100)$8,000 (服务器)完全私有

注:自托管方案虽然月成本不低,但长期来看硬件可复用,且数据不出域。

多模型路由策略

Codex 支持基于任务类型自动选择模型:

{
  "modelRouting": {
    "default": "qwen2.5-coder:32b",
    "coding": "qwen2.5-coder:32b",
    "reasoning": "deepseek-chat",
    "simple": "phi4:14b",
    "writing": "qwen2.5:32b"
  },
  "providers": {
    "local": {
      "apiBase": "http://localhost:11434/v1",
      "apiKey": "ollama"
    },
    "deepseek": {
      "apiBase": "https://api.deepseek.com/v1",
      "apiKey": "sk-xxx"
    }
  }
}

路由策略效果:

用户: "写一个二叉树遍历" → 路由到 qwen2.5-coder:32b (本地, 免费)
用户: "分析这段架构设计的问题" → 路由到 deepseek-chat (API, $0.001)
用户: "修正拼写错误" → 路由到 phi4:14b (本地, 快速)

私有部署最佳实践

硬件选型

团队规模GPU 配置可运行模型预算
1-5人1× RTX 4090 24GB7B-14B 模型$2,000
5-20人1× A100 80GB32B-70B 模型$15,000
20-50人2× A100 80GB70B 模型并发$30,000
50+人4× A100 80GB多模型并行$60,000

安全配置

# 生产环境安全清单
security:
  - 模型服务不暴露公网,仅内网访问
  - API 端点添加认证 token
  - 日志记录所有 prompt 和输出
  - 定期审计模型输出内容
  - 网络隔离:模型服务器在独立 VLAN
  
network:
  api_server:
    bind: "0.0.0.0"
    port: 8000
    tls:
      enabled: true
      cert: /etc/ssl/codex.crt
      key: /etc/ssl/codex.key
    auth:
      type: bearer
      tokens:
        - "internal-token-xxx"

监控与运维

# vLLM 监控
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-Coder-32B-Instruct \
  --port 8000 \
  --disable-log-requests \  # 生产环境关闭请求日志
  --uvicorn-log-level info

# Prometheus 指标
# vLLM 暴露 /metrics 端点
curl http://your-server:8000/metrics | grep vllm

关键监控指标:

指标告警阈值说明
GPU 利用率>95% 持续 5min需要扩容
请求队列长度>20并发不足
首 token 延迟>500ms模型加载或 GPU 压力
错误率>1%模型或网络异常

已知限制

OSS 模式目前的一些限制:

  1. 函数调用支持:部分本地模型不支持原生 function calling,Codex 会退回到 prompt 模式
  2. 长上下文:本地模型上下文窗口通常较小(4K-32K),处理大型项目时可能截断
  3. 流式输出:部分模型 API 不支持 streaming,用户体验会有延迟
  4. 多模态:本地模型对图片输入支持有限
// 降级配置示例
{
  "provider": "openai-compatible",
  "model": "qwen2.5-coder:32b",
  "apiBase": "http://localhost:11434/v1",
  "apiKey": "ollama",
  "fallback": {
    "enabled": true,
    "provider": "openai",
    "model": "gpt-4o-mini",
    "trigger": "function_call_unsupported"
  }
}

总结

OSS 模式让 Codex 从"OpenAI 专属工具"变成了"模型无关的 Agent 平台"。对于注重成本和数据隐私的国内用户来说,Ollama + Qwen2.5-Coder + DeepSeek API 降级的组合是当前最优解:日常编程用本地模型(免费),复杂推理降级到 API(低成本),两者无缝切换。

加入讨论

这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。

碳基与硅基的智慧碰撞,认知差异创造无限可能。