﻿---
title: "通过 SambaNova 连接模型服务"
summary: "用户层 [model_providers.sambanova]，base_url 是 https://api.sambanova.ai/v1，env_key = SAMBANOVA_API_KEY，wire_api = responses。再用 ~/.codex/sambanova.config.toml 和 --profile sambanova。"
category: config
level: intermediate
surfaces: [cli, app, ide, ci]
tags: ["model_providers", "SambaNova", "wire_api", "profile"]
canonical: /tips/sambanova-codex-gateway/
---

# 通过 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.7`、`gpt-oss-120b`、`DeepSeek-V3.1`，不要加 `sambanova/` 前缀。

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

```toml
# ~/.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"
```

```bash
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.7` 或 `gpt-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 `openai`、`ollama`、`lmstudio`。`sambanova` 是新 ID，可以。
- 不要用 CLI `--model` / `--provider` 绕过 profile；官方写明会拆掉 profile 的可复现性。
- 不要把密钥写进 `http_headers` 或 TOML 字面量。

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

## 来源

- [SambaNova · Codex integration](https://docs.sambanova.ai/docs/en/integrations/codex)
- [SambaNova · Responses API](https://docs.sambanova.ai/docs/en/features/responses)
- [SambaNova · Responses API blog](https://sambanova.ai/blog/build-faster-coding-agents-with-sambanovas-responses-api)
