---
description: "将 OpenCode 通过自定义端点接入在问 Responses 协议模型。"
---

# 接入 OpenCode

> [OpenCode](https://opencode.ai) 是开源终端编程 Agent，终端里能运行 `opencode` 命令即可接入。
> 在问的 `gpt-5.6-luna / gpt-5.6-terra` 经 OpenAI Responses 协议（`/v1/responses`）暴露，
> OpenCode 侧用 `@ai-sdk/openai` 自定义端点接入（该包默认走 Responses；`@ai-sdk/openai-compatible`
> 只走 Chat Completions，无法下发 Responses 专属能力）。

## 安装

```bash
npm install -g opencode-ai
```

安装后可用 `opencode --version` 验证。

## 方式一：一键配置命令（推荐）

打开站内接入向导，选择 `OpenCode`，复制对应平台的一键配置命令执行。
命令会自动备份已有配置为 `~/.config/opencode/opencode.json.bak`，再写入新配置。

## 方式二：手动编辑配置文件

打开 `~/.config/opencode/opencode.json`（文件不存在则创建），写入以下内容
（将 `你的在问APIKEY` 替换为实际 Key）：

```json
{
  "$schema": "https://opencode.ai/config.json",
  "model": "zaiwenai/gpt-5.6-luna",
  "provider": {
    "zaiwenai": {
      "npm": "@ai-sdk/openai",
      "name": "在问",
      "options": {
        "baseURL": "https://oneapi.zaiwenai.com/v1",
        "apiKey": "你的在问APIKEY"
      },
      "models": {
        "gpt-5.6-luna": {
          "name": "GPT-5.6-Luna",
          "reasoning": true,
          "tool_call": true,
          "attachment": true,
          "temperature": false,
          "limit": { "context": 262144, "output": 128000 },
          "modalities": { "input": ["text", "image"], "output": ["text"] },
          "options": {
            "store": false,
            "reasoningEffort": "medium",
            "textVerbosity": "medium",
            "reasoningSummary": "auto"
          }
        },
        "gpt-5.6-terra": {
          "name": "GPT-5.6-Terra",
          "reasoning": true,
          "tool_call": true,
          "attachment": true,
          "temperature": false,
          "limit": { "context": 262144, "output": 128000 },
          "modalities": { "input": ["text", "image"], "output": ["text"] },
          "options": {
            "store": false,
            "reasoningEffort": "medium",
            "textVerbosity": "medium",
            "reasoningSummary": "auto"
          }
        }
      }
    }
  }
}
```

如果该文件中已有其他供应商配置，请先备份，再手动合并 `provider` 节点，不要整文件覆盖。

## 验证

```bash
# 确认模型出现在列表里
opencode models | grep zaiwenai

# 端到端问一句
opencode run --model zaiwenai/gpt-5.6-luna "Reply: Hello from ZaiwenAI."
```

也可以进 TUI 用 `/models` 切换 `zaiwenai / GPT-5.6-Luna` 或 `zaiwenai / GPT-5.6-Terra`。

:::: tip 配置说明
- `npm = "@ai-sdk/openai"`：该包默认走 Responses 协议（`/v1/responses`），与 Codex 的 `wire_api = "responses"`、Pi 的 `api = "openai-responses"` 一致，能正确下发 `reasoningEffort` 等参数；误用 `@ai-sdk/openai-compatible` 会只走 Chat Completions
- `baseURL` 只写到 `/v1`，不要再拼 `/responses`，SDK 会自己拼接操作路径
- `store = false`：不做服务端存储，与 Codex 的 `disable_response_storage = true` 对应
- `limit.context = 262144`：上下文窗口配置为 256K，低于 OpenAI 短上下文计费阈值（272K），避免按长上下文倍率整体计费
- `temperature = false`：推理模型不支持调温度，声明不支持可避免透传该参数被上游拒绝
- 推理强度：在 `/models` 里用 variant 在 `none / low / medium / high / xhigh` 间切换，默认 `medium`
::::

## 附：桌面应用填表方式

如果你用的是 OpenCode 桌面应用（或 `opencode web`），也可以走 `设置` > `提供商` >
`Custom provider` > `连接` 填表接入：供应商 id 填 `zaiwenai`、基础 url 填
`https://oneapi.zaiwenai.com/v1`、API 密钥填在问 Key。注意该方式走 Chat Completions，
`luna / terra` 的完整推理能力（`reasoningSummary` 等）仍建议用上面的 CLI 配置。
