OpenCode
通过 @ai-sdk/openai-compatible 将 Inferway 添加为 OpenCode 自定义服务商。
将 Inferway 添加为 OpenCode 的自定义服务商。接入前,请确认账户已开通模型访问。
当前 Inferway 模型配置参数
已在 2026-10-27 于 macOS 27.0.1 arm64(版本 2.0.32)验证:读文件、执行 Shell 命令(运行 pytest)以及写入和修改文件(模型 deepseek/deepseek-v4.1-flash-1017)。
开始之前
先按官方说明安装客户端。本文的 Pi 指 pi-mono coding agent;Hermes 指 Nous Research 的 Hermes Agent。
账户开通后,在控制台的「API 密钥」页创建密钥。建议给这个客户端单独建一把;花费上限可以用项目的月度预算来控制。live 和 test 两种前缀走的是同一套推理和计费流程,test 只是环境标签,不代表免费,也不是模拟推理。
Inferway 地址需要 Inferway Key;OpenRouter Key 用于 OpenRouter,不能直接用于此地址。
将 Key 保存在客户端凭证存储或本机环境中,不要粘贴到提示词、截图或提交到仓库的配置文件。终端示例适用于 macOS / Linux 的 bash、zsh。
在当前终端设置 Key
下面的交互输入会隐藏 Key,并避免将其写入命令历史。请从同一个终端启动客户端;另外打开的应用可能无法继承该变量。
printf 'Inferway API key: ' IFS= read -r -s INFERWAY_API_KEY printf '\n' export INFERWAY_API_KEY
确认地址和模型
使用完整模型 ID deepseek/deepseek-v4.1-flash-1017。Base URL 只包含一次 /v1,不要在 Base URL 设置中添加 /chat/completions。确认下方响应中包含该模型 ID。
curl --fail-with-body --silent --show-error --max-time 30 \ 'https://api.inferway.ai/v1/models' \ -H "Authorization: Bearer $INFERWAY_API_KEY"
创建临时文件夹
OpenCode 可以从项目根目录加载项目配置(项目配置与自定义路径见 OpenCode 配置文档)。请在一个临时文件夹中操作,避免测试影响你的日常设置或全局服务商列表。
已接受的实测在 macOS 26.6.2 arm64 上运行 OpenCode CLI;所选模型是否经过测试,见本指南顶部的验证说明。操作前请核对自己安装的版本。git init 只为让 OpenCode 有一个干净的项目根目录;检查本身不需要提交。
# Scratch folder with a small read fixture mkdir inferway-opencode-verify && cd inferway-opencode-verify && git init -q printf 'nonce-7f3a9c\n' > read-tool-fixture.txt
保存项目配置
将以下内容保存为临时文件夹根目录的 opencode.json。服务商部分以公开模型 ID 作为模型键,组合模型选择器为 provider/model。{env:INFERWAY_API_KEY} 引用之前设置的变量,Key 本身不写入文件。
{
"$schema": "https://opencode.ai/config.json",
"model": "inferway/deepseek/deepseek-v4.1-flash-1017",
"provider": {
"inferway": {
"npm": "@ai-sdk/openai-compatible",
"name": "Inferway",
"options": {
"baseURL": "https://api.inferway.ai/v1",
"apiKey": "{env:INFERWAY_API_KEY}"
},
"models": {
"deepseek/deepseek-v4.1-flash-1017": {
"name": "Inferway",
"limit": {
"context": 1048576,
"output": 262144
}
}
}
}
}
}运行基础检查
从已设置 INFERWAY_API_KEY 的终端、在临时文件夹内运行。opencode run 需要位置消息。退出码 0 本身不代表成功——请检查最终文本。
opencode run --pure --format json --title 'Inferway basic check' --model 'inferway/deepseek/deepseek-v4.1-flash-1017' --agent build --dir . 'Reply with exactly: connected'
确认接入成功
- 确认基础检查的回复文本恰为 connected 且无 API 错误。
- 运行下方读取检查。提示词中不包含 nonce;确认最终文本恰为夹具中的 nonce。此检查只覆盖读取回路;该模型已验证的全部范围见「验证状态」。
- 打开控制台的「请求」页,确认推理请求和 Token 用量。实际扣费以控制台为准,不看客户端的估算。
opencode run --pure --format json --title 'Inferway read fixture' --model 'inferway/deepseek/deepseek-v4.1-flash-1017' --agent build --dir . 'Read the file read-tool-fixture.txt and reply with exactly the nonce it contains, nothing else.'
验证状态
已在 2026-10-27 于 macOS 27.0.1 arm64(版本 2.0.32)验证:读文件、执行 Shell 命令(运行 pytest)以及写入和修改文件(模型 deepseek/deepseek-v4.1-flash-1017)。
该验证未在一次性(one-shot)模式下进行流式测试;客户端可能支持流式,但此处不作为已验证结论。
该验证不覆盖图片、会话恢复、推理控制。客户端自己估算的费用不是实际扣费;实际用量以控制台的「请求」和「用量」页为准。
可选:在日常配置中使用 Inferway
检查通过后,把 provider 块(及其下的模型项)复制到你现有的 OpenCode 配置中,保留你自己的设置。日常使用不需要临时文件夹或测试夹具。
常见问题
如何在 OpenCode 中配置 Inferway 服务商?在 opencode.json 中添加 @ai-sdk/openai-compatible 的 provider 配置,并在选择模型时使用 inferway/<model_id> 组合选择器。
OpenCode 的工具调用与流式验证情况如何?在已记录的实测中,仅验证了模型读取本地文件(read-tool-fixture.txt)。其他工具能力或未单独记录验收的模型显示为「未验证」。
如何切回默认服务商或移除配置?从项目目录的 opencode.json 中移除 inferway provider 块,或在 CLI 中通过 --model 参数改选其他已配置的服务商即可。
为什么 OpenCode 提示找不到模型?请注意区分目录中的真实模型 ID(如 <model-id>)与 OpenCode 的服务商组合选择器(如 inferway/<model-id>),并确认 provider 的 models 映射中包含了该模型键名。
费用与用量
实际用量由 Inferway 记录:控制台的「请求」页能看到每次请求的状态和 Token 用量,「用量」页是汇总。客户端本地显示的数字只是它自己的估算,不是实际扣费,一切以控制台为准。
请求失败时
认证失败:检查 Key 是否存在、有效且获准使用该模型,并从设置变量的终端重新打开客户端。排错时不要输出完整 Key。
地址或模型错误:检查是否重复添加 /v1,使用公布的完整模型 ID,并确认客户端选择 Chat Completions。请求发往 /responses 或 /completions 时,换 Key 无法解决。
额度或超时:检查钱包余额和 Key 限额,按 Retry-After 等待,并缩短输入或降低输出上限。长输出保持流式传输,排错期间避免 Agent 连续重试。
联系支持时提供客户端版本、模型 ID、请求时间和可用的 request ID;请遮盖凭证和源码。
可用文本模型与价格对照
以下模型均可通过配置对应的模型 ID 直接在客户端中调用。单价取自当前市场已发布的价格;数据留存方式因模型而异,见「数据留存」一列。
价格加载中
| 模型名称 | 模型 ID | 上下文窗口 | 数据留存 | 输入单价 | 输出单价 | 典型会话花费预估 |
|---|---|---|---|---|---|---|
| DeepSeek V4.1 Flash 1017 | deepseek/deepseek-v4.1-flash-1017 | 1,048,576 | 第三方服务商处理,适用其留存条款 | — | — | — |
| DeepSeek V4.1 Flash 1017 ZDR | deepseek/deepseek-v4.1-flash-1017-zdr | 1,000,000 | 服务商声明零数据留存 | — | — | — |
| DeepSeek V4.1 Flash Uncensored | deepseek/deepseek-v4.1-uncensored | 1,048,576 | 第三方服务商处理,适用其留存条款 | — | — | — |
| MiniMax M3.1 Flash | minimax/minimax-m3.1-flash | 1,048,576 | 第三方服务商处理,适用其留存条款 | — | — | — |
| Kimi K3.1 Pro | moonshotai/kimi-k3.1-pro | 1,048,576 | 第三方服务商处理,适用其留存条款 | — | — | — |
| MiMo-V2.6 Flash | xiaomi/mimo-v2.6-flash | 393,216 | 服务商声明零数据留存 | — | — | — |
| GLM-5.3 | z-ai/glm-5.3 | 1,000,000 | 第三方服务商处理,适用其留存条款 | — | — | — |
| GLM-5.3 Flash Uncensored | z-ai/glm-5.3-flash-uncensored | 1,048,576 | 第三方服务商处理,适用其留存条款 | — | — | — |
| GLM-5.3 Uncensored | z-ai/glm-5.3-uncensored | 1,048,576 | 第三方服务商处理,适用其留存条款 | — | — | — |
一次典型编码会话的花费示例
注:本示例假设一次典型多轮编码会话消耗 50,000 输入 Token 与 2,000 输出 Token(输入包含读取的代码库文件与上下文,输出包含生成的代码补丁与解释)。输入/输出 Token 数为教学示例常量;单价取自当前市场已发布的价格(人民币或美元以你所在市场为准),总金额在页面渲染时按公式实时计算。实际扣费以控制台记录的真实用量为准。