工具接入
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-compatible | Chat Completions | 国内模型和大多数模型 |
@ai-sdk/openai | Responses | GPT 系列 |
@ai-sdk/anthropic | Messages | Claude 系列 |
配置文件位置
| 用途 | macOS、Linux | Windows |
|---|---|---|
| 全局配置 | ~/.config/opencode/opencode.json | %USERPROFILE%\.config\opencode\opencode.json |
| 项目配置 | <项目>/opencode.json | 同左 |
| 凭据 | ~/.local/share/opencode/auth.json | %USERPROFILE%\.local\share\opencode\auth.json |
多个配置文件会合并。也可以用 OPENCODE_CONFIG 环境变量指定配置文件。
配置步骤
-
设置密钥环境变量:
export LYNSHEN_API_KEY="sk-..." -
编辑
~/.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" } -
把模型 ID 换成你的
/v1/models中的值。limit中的数字是示例,请按模型官方上限填写。 -
运行
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,输入服务商 IDlynshen和密钥。服务商 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" }。
常见问题
| 现象 | 原因和处理 |
|---|---|
| 401 | LYNSHEN_API_KEY 没有设置,{env:...} 被替换成了空值。 |
| 模型列表中没有 LynShen 的模型 | 模型没有写进 models,或服务商 ID 与凭据中的 ID 不一致。 |
| 上下文用量显示不准 | 为模型写 limit.context 和 limit.output。 |
| 选不了推理档位 | 为模型写 "reasoning": true。 |
| 工具调用后 DeepSeek 报错 | 加 "interleaved": { "field": "reasoning_content" }。 |
来源
2026-10-11 查阅:
- opencode 文档:Providers
- opencode 配置 schema
- anomalyco/opencode 仓库:
packages/web/src/content/docs/下的 providers、config、models 文档,以及packages/opencode/src/provider/源码