Monoize
工具接入

opencode

在 opencode 中添加 LynShen 自定义服务商,可使用 Chat Completions、Responses 或 Messages 协议。

opencode 是一个终端编程 Agent。仓库已迁移到 anomalyco/opencode。本页按稳定版 v1.19.0(2026-10-11)和 opencode.ai 的 V1 文档编写。

接入方式

opencode 通过 AI SDK 的 npm 包决定协议。三种包的 baseURL 都填 https://api.lynshen.org/v1,SDK 会拼接后面的路径。

npm 包协议适合的模型
@ai-sdk/openai-compatibleChat Completions国内模型和大多数模型
@ai-sdk/openaiResponsesGPT 系列
@ai-sdk/anthropicMessagesClaude 系列

配置文件位置

用途macOS、LinuxWindows
全局配置~/.config/opencode/opencode.json%USERPROFILE%\.config\opencode\opencode.json
项目配置<项目>/opencode.json同左
凭据~/.local/share/opencode/auth.json%USERPROFILE%\.local\share\opencode\auth.json

多个配置文件会合并。也可以用 OPENCODE_CONFIG 环境变量指定配置文件。

配置步骤

  1. 设置密钥环境变量:

    export LYNSHEN_API_KEY="sk-..."
  2. 编辑 ~/.config/opencode/opencode.json:

    {
      "$schema": "https://opencode.ai/config.json",
      "provider": {
        "lynshen": {
          "npm": "@ai-sdk/openai-compatible",
          "name": "LynShen",
          "options": {
            "baseURL": "https://api.lynshen.org/v1",
            "apiKey": "{env:LYNSHEN_API_KEY}"
          },
          "models": {
            "deepseek-v4-pro": {
              "name": "DeepSeek V4 Pro",
              "reasoning": true,
              "limit": { "context": 128000, "output": 32000 }
            },
            "gpt-5.5": {
              "name": "GPT-5.5",
              "reasoning": true,
              "provider": { "npm": "@ai-sdk/openai" },
              "limit": { "context": 272000, "output": 64000 }
            },
            "claude-sonnet-5": {
              "name": "Claude Sonnet 5",
              "reasoning": true,
              "provider": { "npm": "@ai-sdk/anthropic" },
              "limit": { "context": 200000, "output": 64000 }
            }
          }
        }
      },
      "model": "lynshen/deepseek-v4-pro"
    }
  3. 把模型 ID 换成你的 /v1/models 中的值。limit 中的数字是示例,请按模型官方上限填写。

  4. 运行 opencode,用 /models 选择 LynShen 的模型,发送一条消息确认。

说明:

  • 服务商级的 npm 是默认协议。单个模型可以用 "provider": { "npm": "..." } 换成另一个包。上例中 GPT 走 Responses,Claude 走 Messages,其他模型走 Chat Completions。
  • {env:LYNSHEN_API_KEY} 在变量未设置时会被替换为空字符串,结果是 401。也可以用 {file:~/.lynshen-key} 从文件读取。
  • 也可以运行 /connect(或 opencode auth login),选择 Other,输入服务商 ID lynshen 和密钥。服务商 ID 必须与配置中的键名一致。
  • 自定义服务商的模型必须写在 models 中。opencode 不会自动获取模型列表。

选择模型

  • 会话中:/models。
  • 配置中:"model": "lynshen/<模型ID>"。
  • 命令行:opencode -m lynshen/<模型ID>。

显示推理

  • 模型必须写 "reasoning": true,opencode 才会生成推理档位。默认值是 false。
  • 按 ctrl+t 切换推理档位。@ai-sdk/openai-compatible 的档位是 low、medium、high,发送 reasoning_effort。@ai-sdk/openai 会同时请求推理摘要。@ai-sdk/anthropic 发送 thinking 设置。
  • 用 /thinking 切换是否显示思考块。非交互模式使用 opencode run --thinking。
  • DeepSeek 等模型在工具调用中要求回传 reasoning_content。为这类模型加 "interleaved": { "field": "reasoning_content" }。

常见问题

现象原因和处理
401LYNSHEN_API_KEY 没有设置,{env:...} 被替换成了空值。
模型列表中没有 LynShen 的模型模型没有写进 models,或服务商 ID 与凭据中的 ID 不一致。
上下文用量显示不准为模型写 limit.context 和 limit.output。
选不了推理档位为模型写 "reasoning": true。
工具调用后 DeepSeek 报错加 "interleaved": { "field": "reasoning_content" }。

来源

2026-10-11 查阅:

本页目录