通过 SambaNova 连接模型服务

用户层 [model_providers.sambanova],base_url 是 https://api.sambanova.ai/v1,env_key = SAMBANOVA_API_KEY,wire_api = responses。再用 ~/.codex/sambanova.config.toml 和 --profile sambanova。

SambaNova 官方 Codex 网关:profile 写 [model_providers.sambanova],base_url 是 https://api.sambanova.ai/v1,env_key 读 SAMBANOVA_API_KEY。

这是换 Codex 使用的模型,流量打到 SambaCloud 的 /v1/responses,不是添加 MCP 服务。官方 Codex 专页写明 SambaNova 的 Responses 入口匹配 Codex 的 wire_api = "responses"不必再套 LiteLLM。env_key 只能写变量。模型 ID 用裸名,例如 MiniMax-M2.7gpt-oss-120bDeepSeek-V3.1,不要加 sambanova/ 前缀。

官方示例会把 [profiles.execute-sn] 写进用户 ~/.codex/config.toml。0.134 起这张表会被拒绝。更稳妥是独立 profile(用户层 $CODEX_HOME,不是项目 .codex):

# ~/.codex/sambanova.config.toml
model = "MiniMax-M2.7"
model_provider = "sambanova"
approval_policy = "on-request"
sandbox_mode = "workspace-write"

[model_providers.sambanova]
name = "SambaNova"
base_url = "https://api.sambanova.ai/v1"
env_key = "SAMBANOVA_API_KEY"
wire_api = "responses"
export SAMBANOVA_API_KEY="YOUR_SAMBANOVA_KEY"
codex --profile sambanova
codex --profile sambanova "write a unit test for src/utils/date.ts"
codex -p sambanova exec --full-auto "list failing tests"

密钥必须出现在启动 Codex 的那个进程里。从已经 export 的终端启动;Dock 打开的桌面读不到你刚改的 zshrc。不要把密钥写进 .env 就指望 Codex 自己加载。

想做官方那种规划 / 执行拆分,再加一份 ~/.codex/plan-sn.config.toml:把 model 换成 gpt-oss-120b,仍用同一张 sambanova 供应商表。规划侧若走内置 openai,那是另一份 profile,跟 SambaNova 密钥无关。

Codex 不会在 base_url 里展开环境变量。不要写进项目 .codex/config.toml:项目文件无法修改 model_provider / model_providers。某个模型对 /v1/responses 返回 404 时,换官方验证过的 MiniMax-M2.7gpt-oss-120b,不要改 wire_api

不要把专页 Demo 3 的 Context7 片段当这条的安装器。那是另加 MCP;本站已有 Context7 条目。也不要抄他们 TOML 里的 env = { "CONTEXT7_API_KEY" = "${CONTEXT7_API_KEY}" }——Codex 转发密钥走 env_vars

配置说明:

  • 不要再写 [profiles.sambanova][profiles.execute-sn]
  • 不要写 wire_api = "chat"
  • 不要覆盖内置 ID openaiollamalmstudiosambanova 是新 ID,可以。
  • 不要用 CLI --model / --provider 绕过 profile;官方写明会拆掉 profile 的可复现性。
  • 不要把密钥写进 http_headers 或 TOML 字面量。

改完新开会话。codex --profile sambanova 启动后,发送一条简短请求验证连接。401 先看进程里有没有该变量。

来源