LM Warden

Codex CLI,运行在你自己的 GPU 上。

将 LM Warden 设为 Codex CLI 的自定义模型提供方,使用一个已部署的模型。

来自 Codex CLI 的请求去往何处 Codex CLI 把请求发送给 LM Warden,base_url 设为 warden,env_key 填写 warden 密钥。LM Warden 检查密钥,支持 OpenAI Responses,按密钥优先级为请求排队,并交给副本路由器。路由器让每个会话留在已持有其缓存的副本上(每块 GPU 一个模型副本)。 Codex CLI base_url the warden, at /v1 env_key LMWARDEN_KEY holds vw_… POST /v1/responses LM Warden checks the key: one per app speaks OpenAI Responses scheduler, key priority usage, latency and live stats per key Replica router a session goes back to the replica that holds its cache one model copy per GPU your GPUs: vLLM or llama.cpp replica 0, GPU 0 replica 1, GPU 1 replica 2, GPU 2 a conversation stays on its replica
来自 Codex CLI 的请求去往何处 Codex CLI 把请求发送给 LM Warden,base_url 设为 warden,env_key 填写 warden 密钥。LM Warden 检查密钥,支持 OpenAI Responses,按密钥优先级为请求排队,并交给副本路由器。路由器让每个会话留在已持有其缓存的副本上(每块 GPU 一个模型副本)。 Codex CLI base_url the warden, at /v1 env_key LMWARDEN_KEY holds vw_… POST /v1/responses LM Warden checks the key: one per app speaks OpenAI Responses scheduler, key priority usage, latency, live stats per key Replica router a session goes back to the replica that holds its cache replica 0 GPU 0 replica 1 GPU 1 replica 2 GPU 2 your GPUs: vLLM or llama.cpp a conversation stays on its replica
来自 Codex CLI 的请求去往何处:Connect 写入的两项设置,中间是 warden,然后每块 GPU 上一份模型副本。

文字说明: Codex CLI 把请求发送给 LM Warden,base_url 设为 warden,env_key 填写 warden 密钥。LM Warden 检查密钥,支持 OpenAI Responses,按密钥优先级为请求排队,并交给副本路由器。路由器让每个会话留在已持有其缓存的副本上(每块 GPU 一个模型副本)。

协议
OpenAI Responses
支持情况
仅限本地模型

仅限本地模型。Codex 只支持 Responses API;warden 会为已部署的模型把 POST /v1/responses 转换为 Chat Completions,因此回复、工具调用和用量都以 Responses 事件的形式到达 Codex。它是无状态的:Codex 每一轮都发送 store:false 和整个对话,previous_response_id 会被拒绝。思考默认开启(Codex 会请求推理摘要,模型的推理以摘要形式显示;要关闭它,请在 config.toml 中设置 model_reasoning_effort = "none"),托管的网络搜索会被丢弃(设置 web_search = "disabled"),路由器规则不适用。请把 model_context_window 设为模型的真实窗口:对于不认识的名称,Codex 会假定为 272k。引擎需要启用工具调用(vLLM:--enable-auto-tool-choice 和一个 --tool-call-parser)。对未加载模型的请求会得到 404,Codex 会重试几秒钟后才放弃。

要求

  • 需要支持工具调用的模型(用于智能体式编辑)。
  • 至少有 32,768 个 token 的上下文时效果最好。

设置

在控制台中,Connect 会用你的 warden 地址、你的密钥和你选择的模型写入这些文件。下面以占位符展示这些文件。

本地模型

在 ~/.codex/config.toml 中把 LM Warden 添加为模型提供方。

config.toml (~/.codex/config.toml)
model = "your-served-model-name"
model_provider = "lmwarden"
# Codex assumes a 272k window for models it does not know; set the real one.
model_context_window = 32768

[model_providers.lmwarden]
name = "LM Warden"
base_url = "https://your-warden/v1"
env_key = "LMWARDEN_KEY"
wire_api = "responses"
# The model's context window is unknown: 32768 is a guess. Set it to the model's real window.
Shell
export LMWARDEN_KEY=vw_YOUR_KEY
codex exec "Reply with the single word OK."

官方文档:https://learn.chatgpt.com/docs/config-file/config-reference(查阅日期:2026-10-04)。