当前位置: 首页 > news >正文

第五章:模型与 Provider 接入配置

第五章:模型与 Provider 接入配置

模型选择直接决定 OpenCode 的能力、速度和成本。本章讲解如何接入 Provider、选择与配置模型、使用模型变体(variants)控制推理强度,以及如何接入本地模型——这些都是「最优化配置」的核心抓手。


5.1 Provider 与模型的关系

OpenCode 基于 AI SDK 和 Models.dev,支持 75+ 个 Provider。模型的完整 ID 格式始终是:

provider_id/model_id

例如:

  • anthropic/claude-sonnet-4-5
  • openai/gpt-5
  • opencode/gpt-5.1-codex(通过 OpenCode Zen)
  • ollama/llama2(本地自定义 Provider)

大多数主流 Provider 已预加载。通过 /connect 添加密钥,或设置对应环境变量,即可在启动时自动可用。


5.2 选择与设置默认模型

在 TUI 内用 /models 选择当前模型。要设置默认模型,在配置里写 model

{"$schema": "https://opencode.ai/config.json","model": "anthropic/claude-sonnet-4-5"
}

模型加载优先级

启动时按以下顺序决定使用哪个模型:

  1. 命令行 --model / -m 标志(格式同样是 provider/model);
  2. 配置文件里的 model
  3. 上次使用的模型;
  4. 按内部优先级选第一个可用模型。

5.3 small_model:轻量任务分流(省钱关键)

OpenCode 会执行一些「轻量任务」,比如生成会话标题、做摘要。这些任务不需要昂贵的旗舰模型。small_model 让你为它们指定一个便宜的小模型:

{"$schema": "https://opencode.ai/config.json","model": "anthropic/claude-sonnet-4-5","small_model": "anthropic/claude-haiku-4-5"
}

默认情况下,OpenCode 会尝试用你 Provider 下更便宜的模型,否则回退到主模型。显式配置一个真正便宜的小模型,是最简单的一笔省钱操作(详见第九章)。


5.4 推荐模型

模型层出不穷,但真正同时擅长「写代码」和「工具调用」的并不多。官方推荐(非穷举、可能过时)包括:

  • GPT 5.2
  • GPT 5.1 Codex
  • Claude Opus 4.5
  • Claude Sonnet 4.5
  • Minimax M2.1
  • Gemini 3 Pro

实务建议:日常实现用 Sonnet 级别,复杂硬骨头临时切到 Opus/GPT 旗舰,轻量任务用 Haiku/Mini/Nano。这种「分层用模」策略能在质量和成本间取得最佳平衡。


5.5 配置模型选项

可在 provider.<id>.models.<model>.options 下为具体模型设置参数,例如 OpenAI 的推理强度、Anthropic 的思考预算:

{"$schema": "https://opencode.ai/config.json","provider": {"openai": {"models": {"gpt-5": {"options": {"reasoningEffort": "high","textVerbosity": "low","reasoningSummary": "auto"}}}},"anthropic": {"models": {"claude-sonnet-4-5-20250929": {"options": {"thinking": { "type": "enabled", "budgetTokens": 16000 }}}}}}
}

这里的 reasoningEfforttextVerbositythinking.budgetTokens 等都是省 Token 的直接旋钮:降低推理强度、降低输出冗长度、压低思考预算,都会显著减少 Token 消耗(第九章详述)。Agent 级配置会覆盖这里的全局设置。


5.6 模型变体(Variants):一键切换推理强度

变体让同一个模型拥有多套配置,无需重复定义。OpenCode 为许多 Provider 内置了默认变体:

  • Anthropichigh(默认)、max(最大思考预算)
  • OpenAI:大致有 none / minimal / low / medium / high / xhigh
  • Googlelow / high

自定义变体

{"$schema": "https://opencode.ai/config.json","provider": {"openai": {"models": {"gpt-5": {"variants": {"thinking": { "reasoningEffort": "high", "textVerbosity": "low" },"fast":     { "disabled": true }}}}}}
}

在会话中循环切换变体

用键位 variant_cycle(默认 ctrl+t)即可在变体间快速切换。这是日常控制成本的利器:简单任务切到 low/minimal,难题临时切到 high/max,用完再切回来。


5.7 Provider 通用选项:超时与缓存

{"$schema": "https://opencode.ai/config.json","provider": {"anthropic": {"options": {"timeout": 600000,"chunkTimeout": 30000,"setCacheKey": true}}}
}
  • timeout:请求超时(毫秒,默认 300000),设为 false 关闭。
  • chunkTimeout:流式响应分块之间的超时,超时则中止请求。
  • setCacheKey:确保为该 Provider 始终设置缓存键。对支持提示缓存(prompt caching)的模型,这能大幅降低重复上下文的费用(第九章详述)。

也可用 baseURL 自定义任意 Provider 的端点(代理或自建网关):

{"provider": {"anthropic": { "options": { "baseURL": "https://api.anthropic.com/v1" } }}
}

5.8 OpenCode Zen:官方精选模型网关

OpenCode Zen 是官方测试并调优过的模型清单,作为一个普通 Provider 接入,完全可选

  1. 在 OpenCode Zen 控制台 登录、填账单、拿 API Key;
  2. TUI 内 /connect 选 OpenCode Zen 并粘贴密钥;
  3. /models 查看推荐模型,按量计费。

在配置里 Zen 模型 ID 形如 opencode/<model-id>,例如:

{"$schema": "https://opencode.ai/config.json","model": "opencode/gpt-5.1-codex"
}

Zen 的价值在于:它替你解决了「同一个模型在不同 Provider 上质量参差不齐」的问题——经过基准测试与调优,开箱即得到「这个模型的最佳版本」。


5.9 接入本地模型(零 API 费用)

本地模型完全免费(只耗电与算力),是极致省钱的方案。OpenCode 通过自定义 Provider + OpenAI 兼容端点接入它们。

Ollama

{"$schema": "https://opencode.ai/config.json","provider": {"ollama": {"npm": "@ai-sdk/openai-compatible","name": "Ollama (local)","options": { "baseURL": "http://localhost:11434/v1" },"models": {"llama2": { "name": "Llama 2" }}}}
}

字段说明:

  • ollama:自定义 Provider ID,可任意命名;
  • npm:使用的适配包,OpenAI 兼容 API 用 @ai-sdk/openai-compatible
  • name:UI 显示名;
  • options.baseURL:本地服务端点;
  • models:模型 ID → 配置的映射。

提示:若工具调用不工作,尝试在 Ollama 中增大 num_ctx(从 16k–32k 起步)。

LM Studio

{"$schema": "https://opencode.ai/config.json","provider": {"lmstudio": {"npm": "@ai-sdk/openai-compatible","name": "LM Studio (local)","options": { "baseURL": "http://127.0.0.1:1234/v1" },"models": {"google/gemma-3n-e4b": { "name": "Gemma 3n-e4b (local)" }}}}
}

llama.cpp 的 llama-server(默认 http://127.0.0.1:8080/v1)等其它 OpenAI 兼容端点同理。


5.10 限制可用 Provider

为避免误用昂贵 Provider,或在团队中收敛选择,可用白名单/黑名单:

{"$schema": "https://opencode.ai/config.json","enabled_providers": ["anthropic", "openai"],"disabled_providers": ["gemini"]
}
  • enabled_providers:白名单,设置后只启用列出的 Provider;
  • disabled_providers:黑名单,即使有密钥/环境变量也不加载;
  • disabled_providers 优先级高于 enabled_providers

被禁用的 Provider 不会加载、不会出现在 /models 列表里。


5.11 小结

本章你掌握了:模型 ID 格式、默认模型与加载优先级、small_model 分流、模型选项与变体、Provider 超时与缓存、OpenCode Zen、本地模型接入、以及 Provider 白/黑名单。其中 small_model、变体切换、setCacheKeyreasoningEffort/textVerbosity、本地模型,都是第九章「Token 优化」会反复使用的核心工具。

http://www.jsqmd.com/news/947243/

相关文章:

  • 告别盲调!用海德汉PWM21深度解析Endat信号:从位置值、报警到信号质量百分比
  • 利用快马平台快速构建autosar基础软件模块演示原型
  • 2026年AI编程工具深度评测与推荐榜单
  • 长春市2026年最新黄金回收白银回收铂金回收门店排行榜+联系方式电话推荐 - 大熊猫898989
  • 工序 BOM 协同系统架构多模块组件
  • Dreamweaver CS6里的‘层’到底怎么用?手把手教你用AP Div搞定网页布局(附实战案例)
  • AI工具嵌入智能硬件的最后1公里:从SDK冲突到OTA升级失败的完整攻防推演
  • ECU标定工程师避坑指南:用ASAP2 Studio更新A2L时,这3个细节决定成败
  • 有哪些真正好用的降AIGC软件?能同时搞定知网查重和降低AIGC率的那种
  • STM32 Bootloader跳转App总进HardFault?一个PSP/MSP堆栈指针的坑让我调试了两天
  • 蜘蛛池技术解析:原理、作用与作用点评——专业视角下的网站录入
  • 别再只用map了!Python多进程Pool的apply、starmap实战对比,看完这篇就全懂了
  • 微信AI助手本地生活推荐系统架构设计:从问答入口到小程序转化的技术链路
  • 数据结构:栈(C语言版)
  • 从“亚太2R”到“星链”:卫星天线角度计算的原理、变迁与自动化未来
  • 电子厂用什么管理软件?珠三角中小电子厂主流选择:专业易特电子行业ERP深度测评
  • 告别手动画封装!用Cadence Library Builder 16.6从PDF一键生成STM32原理图库
  • 自指螺旋拓扑——认知物理学大一统几何架构研究(世毫九实验室基础理论重大原创交叉课题)
  • 长沙市2026年最新黄金回收白银回收铂金回收门店排行榜+联系方式电话推荐 - 大熊猫898989
  • 利用快马平台快速构建han1me动漫社区应用原型,验证核心功能
  • 2026年留学生必备:英文论文降AI保姆级SOP,实测5款工具从95%降至0% - 降AI实验室
  • 010、YOLO Python API 深度编程:自定义训练循环、回调函数与结果解析
  • 咸阳市2026年最新黄金回收白银回收铂金回收门店排行榜及联系方式电话推荐 - 盛世金银回收
  • 深入ZYNQ7000存储测试:对比EMMC裸机读写与SD卡文件系统(FATFS)性能差异
  • 从防御者视角复盘:我是如何用upload-labs靶场,一步步加固我的PHP文件上传功能的
  • 云浮市2026年最新黄金回收白银回收铂金回收门店排行榜+联系方式电话推荐 - 大熊猫898989
  • C# 抽象类 (abstract class) vs 接口 (interface) 选型与应用场景
  • 用快马ai十分钟打造web版xshell原型,验证服务器管理工具核心交互
  • MATLAB手写霍夫曼编码函数(无工具箱依赖,含建树与编码效率分析)
  • 长治市2026年最新黄金回收白银回收铂金回收门店排行榜+联系方式电话推荐 - 大熊猫898989