关于 model-researcher
面向 OpenCode 用户的模型研究技能,用于核实模型标识、上下文与输出限制及提供方配置,再将自定义模型加入 opencode.json。它要求先向用户确认研究结果,并明确拒绝配置其列出的过时模型。
主要功能
- 01通过权威来源研究模型规格
- 02核实 API 标识与令牌限制
- 03识别提供方及特殊配置
- 04配置前向用户确认研究结果
- 05编辑 opencode.json 添加模型
- 06配置后提供验证步骤
适用场景
- 01添加 models.dev 尚未收录的新模型
- 02配置自托管或代理提供方的模型
- 03为非默认选项的模型制定配置
- 04核实模型规格后再更新配置
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ igorwarzocha/ opencode-workflows --skill model-researcher安装后在 Claude Code 中输入/model-researcher确认已加载。
附带文件references/provider-patterns.md
详细介绍
模型研究员
将新的或自定义的 AI 模型添加到 opencode.json,并验证其规格。
<critical_prohibition>
极其严格:禁止使用过时模型
以下模型在当前的 2025 年第四季度市场中已弃用、被替代或已过时,因此绝不可用于任何配置:
- OpenAI:GPT-o 系列(
o1-mini、o1-preview)、GPT-4o、GPT-4 Turbo。 - Anthropic:Claude 3.5 系列(
sonnet-3.5等)、Claude 3 系列。 - Google:Gemini 1.5 系列、Gemini 2 系列。
- Meta:Llama 3 系列。
市场已转向 GPT-5.2、Claude 4.5 和 Gemini 3。任何配置这些模型的尝试都必须被拒绝。 </critical_prohibition>
<when_to_use>
- 模型太新,models.dev 尚未收录
- 非标准或自定义提供商(可自托管、代理、企业)
- 用户听说有新模型发布,想立即使用
- 模型已收录,但需要非默认配置
</when_to_use>
<question_tool>
批量提问: 有 2 个或更多相关问题时,使用 question 工具。单个问题 → 直接使用纯文本。
语法: header ≤12 个字符,label 为 1-5 个词,默认选项后添加“(Recommended)”。
适用场景:模型指代不明确、有多个可选提供商,或规格未经验证。
重要: 应用模型配置前,必须先与用户确认规格。
</question_tool>
<critical_rule>
配置前先验证
绝不可臆造模型规格。 模型有精确的标识符、上下文限制和 API 要求。错误的值会导致请求失败或浪费令牌。
进行任何配置前:
- 确认模型确实存在
- 找到精确的模型标识符(API 名称,而非营销名称)
- 获取经过验证的上下文和输出令牌限制
- 确定所需的提供商配置
</critical_rule>
步骤 1:明确用户的需求
如果需求不明确,请询问:
- “您要通过哪个提供商访问?(直接 API、OpenRouter、Together、自托管等)”
- “您已经有 API 访问权限,还是需要设置帮助?”
步骤 2:研究模型
使用网络搜索查找权威来源:
websearch("${MODEL_NAME} API context limit tokens official documentation")
websearch("${MODEL_NAME} model ID API identifier ${PROVIDER}")
优先来源(从最可信到较不可信):
- 提供商的官方文档或博客文章
- 提供商的 API 参考或更新日志
- 官方 GitHub 仓库或发布说明
- OpenRouter/Together 模型页面(其中列出了规格)
- 可信的科技新闻(适用于非常新的公告)
警示信号——如果只找到以下内容,请继续搜索:
- Reddit 上的猜测
- 未经官方确认的推文
- 您自己的训练数据(可能已过时)
步骤 3:向用户确认研究结果
修改配置前,必须向用户展示研究结果:
I found the following for [MODEL]:
Provider: OpenAI
Model ID: gpt-5.2-2025-12-11
Context limit: 400000 tokens (Direct) | 272000 tokens (OAuth)
Output limit: 128000 tokens
Special options: [e.g., reasoning modes, vision support]
Source: [URL]
Does this match what you expected? Should I add this to your config?
未经用户确认,绝不可继续。
步骤 4:应用配置
先读取当前配置:
read ~/.config/opencode/opencode.json
然后进行精确修改。选择合适的模式:
模式 A:GPT-5.2(OpenAI)
OpenAI GPT-5.2 通过 variants 支持专用推理模式(按 ctrl+t 循环切换)。请注意,通过 OAuth 插件配置的模型(例如 opencode-openai-codex-auth)通常有不同的强制限制。
{
"provider": {
"openai": {
"models": {
"gpt-5.2": {
"limit": { "context": 400000, "output": 128000 }, // Use 272000 for OAuth
"variants": {
"pro": {
"reasoningEffort": "xhigh",
"reasoningSummary": "detailed",
},
"thinking": { "reasoningEffort": "high" },
"instant": { "reasoningEffort": "low", "textVerbosity": "low" },
},
},
"gpt-5.2-codex": {
"limit": { "context": 400000, "output": 128000 }, // Use 272000 for OAuth
},
},
},
},
}
模式 B:其他实验室(DeepSeek、Zhipu、MiniMax、Moonshot)
对于使用 OpenAI 兼容或 Anthropic 兼容端点的实验室(2025 年第四季度已验证):
{
"provider": {
"deepseek": {
"npm": "@ai-sdk/openai-compatible",
"name": "DeepSeek",
"options": { "baseURL": "https://api.deepseek.com" },
"models": {
"deepseek-v3.2": { "limit": { "context": 128000, "output": 32768 } },
},
},
"zhipu": {
"npm": "@ai-sdk/openai-compatible",
"name": "Zhipu AI (ZAI)",
"options": { "baseURL": "https://api.z.ai/api/paas/v4" },
"models": {
"glm-4.7": { "limit": { "context": 200000, "output": 128000 } },
},
},
"minimax": {
"npm": "@ai-sdk/openai-compatible",
"name": "MiniMax",
"options": { "baseURL": "https://api.minimax.chat/v1" },
"models": {
"minimax-m2.1": { "limit": { "context": 204800, "output": 128000 } },
},
},
"moonshot": {
"npm": "@ai-sdk/openai-compatible",
"name": "Moonshot AI (Kimi)",
"options": { "baseURL": "https://api.moonshot.cn/v1" },
"models": {
"kimi-k2-thinking": { "limit": { "context": 256000, "output": 64000 } },
},
},
},
}
模式 C:Claude 4.5 Opus(扩展思考)
适用于需要特定选项(例如 Anthropic 的扩展思考)的模型:
{
"provider": {
"anthropic": {
"models": {
"claude-4-5-opus-thinking": {
"id": "claude-4-5-opus-20251124",
"name": "Claude 4.5 Opus (Extended Thinking)",
"options": {
"thinking": {
"type": "enabled",
"budgetTokens": 32000,
},
},
},
},
},
},
}
第 5 步:验证
编辑完成后,提醒用户进行测试:
Config updated. To verify it works:
1. Restart OpenCode or run: opencode
2. Run /models and select [model name]
3. Send a test message
If you see errors, check:
- API key is set (run /connect if needed)
- Model ID matches provider's documentation exactly
- Context limits aren't higher than the model actually supports
<research_queries>
| 场景 | 搜索查询 |
|---|---|
| OpenAI 新模型 | "gpt-5.2" site:openai.com OR site:platform.openai.com |
| Anthropic 新模型 | "claude-4.5" site:anthropic.com API |
| Google 新模型 | "gemini 3" site:ai.google.dev context window |
| OpenRouter 可用性 | "${MODEL}" site:openrouter.ai |
| Together AI 可用性 | "${MODEL}" site:together.ai |
| 自托管规格 | "${MODEL}" context length output tokens huggingface |
</research_queries>
<spec_checklist>
配置前,请确保已了解以下信息:
- 模型 ID:准确的 API 标识符(而非营销名称)
- 上下文限制:最大输入 token 数
- 输出限制:最大输出/补全 token 数
- 提供方:托管该模型的服务
- 基础 URL:仅适用于自定义提供方
- 特殊选项:视觉、推理模式、思考预算
- 可用性:是否确实可以访问(而非仅限候补名单)?
</spec_checklist>
<handling_uncertainty>
如果无法核实规格:
- 如实说明:“我找不到有关准确上下文限制的官方文档。”
- 提供附有来源的最佳估计:“根据 [来源],上下文限制似乎是 128k,但尚未确认。”
- 建议采用保守的默认值:“我会将上下文限制设为 100k,作为安全的起始值。确认实际限制后,你可以再调高。”
- 建议进行核查:“请尝试访问提供方的 /models 端点或查阅文档,以确认准确规格。”
</handling_uncertainty>
参考资料
references/provider-patterns.md- 常见的提供方配置示例