标签 配置教程 下的文章

最近对 CRS 自己二开的项目优化和重构拉一下,并且添加拉 Opencode支持 包含Oh My OpenCode 插件支持,想看配置的直接划到下面或者直接访问 :
https://github.com/dadongwo/claude-relay-service
最近优化亮点:

  • OpenCode & Oh My OpenCode 原生支持::完美兼容 Antigravity 账户体系下的 OpenCode 配置
  • 智能风控对齐:自动注入 requestType: 'agent' 并优化 System Prompt 插入策略,降低被上游风控拦截的概率。
  • 智能重试与切换账号:针对 Antigravity 429 Resource Exhausted 深度解析(区分 Quota/RateLimit/Capacity),自动清理会话并切换账号重试。
  • 模型级智能冷却:支持对 Claude/Opus/Flash 等不同模型分别计算冷却时间,避免因单一模型限流影响整个账号使用。UI页面展示:

Note: 若某个模型触发了限流,此处还会显示该模型的 冷却倒计时 (Cooling Down),方便您了解何时可以恢复使用。

小更新 针对Antigravity 账户的gemin 模型兼容和工具调用对齐 解决 最新429 问题 mcp工具调用兼容等等

需要的可自取:
https://github.com/dadongwo/claude-relay-service/blob/main/README.md

OpenCode 集成配置

在用户目录下的 .config\opencode\opencode.json 文件中配置 provider

// antigravity 配置示例 "antigravity": { "npm": "@ai-sdk/anthropic", "name": "Antigravity", "options": { "baseURL": "http://localhost:3000/antigravity/api/v1", "apiKey": "cr_XXXXXXXXX" }, "models": { "claude-opus-4-5-thinking": { "name": "Claude Opus 4.5 Thinking", "thinking": true, "limit": { "context": 200000, "output": 8192 }, "modalities": { "input": ["text", "image"], "output": ["text"] } }, "claude-sonnet-4-5-thinking": { "name": "Claude Sonnet 4.5 Thinking", "thinking": true, "limit": { "context": 200000, "output": 8192 }, "modalities": { "input": ["text", "image"], "output": ["text"] } }, "gemini-3-flash-preview": { "name": "Gemini 3 Flash Preview", "attachment": true, "limit": { "context": 1000000, "output": 8192 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "gemini-3-pro-preview": { "name": "Gemini 3 Pro Preview", "thinking": true, "attachment": true, "limit": { "context": 1000000, "output": 8192 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } } } }, // codex cli 接入账户示例 "openai-custom": { "npm": "@ai-sdk/openai", "name": "OpenAI Custom", "options": { "baseURL": "http://localhost:3200/openai", "apiKey": "cr_xxxxxxxxxxxxxxxx" }, "models": { "gpt-5.2": { "name": "GPT 5.2 (Custom)", "limit": { "context": 272000, "output": 128000 }, "modalities": { "input": ["text", "image"], "output": ["text"] }, "variants": { "none": { "reasoningEffort": "none", "reasoningSummary": "auto", "textVerbosity": "medium" }, "low": { "reasoningEffort": "low", "reasoningSummary": "auto", "textVerbosity": "medium" }, "medium": { "reasoningEffort": "medium", "reasoningSummary": "auto", "textVerbosity": "medium" }, "high": { "reasoningEffort": "high", "reasoningSummary": "detailed", "textVerbosity": "medium" }, "xhigh": { "reasoningEffort": "xhigh", "reasoningSummary": "detailed", "textVerbosity": "medium" } } }, "gpt-5.2-codex": { "name": "GPT 5.2 Codex (Custom)", "limit": { "context": 272000, "output": 128000 }, "modalities": { "input": ["text", "image"], "output": ["text"] }, "variants": { "low": { "reasoningEffort": "low", "reasoningSummary": "auto", "textVerbosity": "medium" }, "medium": { "reasoningEffort": "medium", "reasoningSummary": "auto", "textVerbosity": "medium" }, "high": { "reasoningEffort": "high", "reasoningSummary": "detailed", "textVerbosity": "medium" }, "xhigh": { "reasoningEffort": "xhigh", "reasoningSummary": "detailed", "textVerbosity": "medium" } } }, "gpt-5.1-codex-max": { "name": "GPT 5.1 Codex Max (Custom)", "limit": { "context": 272000, "output": 128000 }, "modalities": { "input": ["text", "image"], "output": ["text"] }, "variants": { "low": { "reasoningEffort": "low", "reasoningSummary": "detailed", "textVerbosity": "medium" }, "medium": { "reasoningEffort": "medium", "reasoningSummary": "detailed", "textVerbosity": "medium" }, "high": { "reasoningEffort": "high", "reasoningSummary": "detailed", "textVerbosity": "medium" }, "xhigh": { "reasoningEffort": "xhigh", "reasoningSummary": "detailed", "textVerbosity": "medium" } } } } } 

oh-my-opencode.json 配置文件示例:

{ "$schema": "XXXXXXXXX", "google_auth": false, "agents": { "sisyphus": { "model": "antigravity/claude-opus-4-5-thinking" }, "oracle": { "model": "openai-custom/gpt-5.2" }, "librarian": { "model": "opencode/glm-4.7-free" }, "explore": { "model": "antigravity/gemini-3-flash-preview" }, "frontend-ui-ux-engineer": { "model": "antigravity/gemini-3-pro-preview" }, "document-writer": { "model": "antigravity/gemini-3-flash-preview" }, "multimodal-looker": { "model": "antigravity/gemini-3-flash-preview" } } } 

欢迎讨论和提问,谢谢各位佬。


📌 转载信息
转载时间: 2026/1/25 23:18:08

Tavily 的搜索非常好用,基本上能搜到想要的,目前每个账号每个月都有 1000 积分可以使用

为了能同时使用多个账号的额度,我写了 我 vibe coding 了一个本地的代理服务,功能实际上和 另一位佬友的项目 tavily-hikari 差不多,但是佬友的项目要访问 /admin 页面需要额外配置一下 forward auth

本项目主打一个轻量简洁,没有 WebUI,只做请求转发,把你所有账号的 API Key 放到项目根目录中下的 keys.json

配置好,启动服务后,直接当作 MCP 服务使用即可:

{ "mcpServers": { "tavily": { "url": "http://localhost:8787" } } } 

具体使用/部署方法可以看 README

项目地址:GitHub - kuyermqi/tavily-proxy: Lightweight proxy for Tavily MCP


📌 转载信息
原作者: kuyermqi
转载时间: 2026/1/25 08:06:15

花了两三天时间,查了大量资料,终于把 oh-my-opencode 配置明白了。

注意: 以下所有配置均已进行脱敏处理(隐藏了具体的 session_id、本机用户路径、工作区路径以及真实的 provider 地址)。
无广 我自用的 provider 未完全脱敏,感觉脱敏看起来好奇怪,model key 我懒得处理。 个人不推荐任何 provider


Agents 与 Categories 自述

AI 生成出来的,各类代理(Agents)和分类(Categories)的职责:

{ "agents": { "build": { "agent": "build", "model": "未知", "suitable_for": [ "代码实现与重构", "Bug 定位与修复", "单元测试与测试策略", "构建与CI排障", "项目结构与可维护性优化" ], "core_principles": [ "先澄清需求与边界", "最小改动达成目标", "保持一致性与可读性", "优先可靠性与可测试性", "避免过度设计(YAGNI)", "减少重复(DRY)", "遵循SOLID与KISS" ] }, "plan": { "agent": "plan", "model": "未知", "suitable_for": [ "需求澄清与范围界定", "技术方案设计与权衡", "任务拆解与里程碑规划", "风险识别与应对预案", "验收标准与测试策略制定" ], "core_principles": [ "先理解问题再提出方案", "以最小可行改动达成目标", "优先降低风险与不确定性", "明确假设、边界与验收标准", "可执行、可验证、可回滚", "沟通简洁且信息密度高" ] }, "general": { "agent": "general", "model": "未知", "suitable_for": [ "通用问答与信息整理", "编程概念解释与示例", "需求澄清与方案对比", "写作润色与结构化输出", "基础调试思路与排错建议" ], "core_principles": [ "遵循指令优先级:系统 > 开发者 > 用户", "不编造事实;不确定时明确说明", "输出清晰、简洁、可执行", "在安全与隐私上保持保守", "按受众调整表达与细节深度", "优先给出可验证的步骤与依据" ] }, "explore": { "agent": "explore", "model": "未知", "suitable_for": [ "探索代码库模式", "分析文件结构", "使用AST-grep搜索", "并行执行搜索任务", "识别代码模式", "构建代码索引" ], "core_principles": [ "最大化搜索努力", "并行启动多个代理", "不限于第一个结果", "彻底且详尽", "使用多种工具", "忽略无关上下文", "专注于内置角色" ] }, "librarian": { "agent": "librarian", "model": "Antigravity", "suitable_for": [ "开源代码库深度解析", "第三方库 API 使用咨询", "代码实现逻辑溯源", "库的版本差异与历史变更分析", "获取 GitHub 源码实证与 Permalinks" ], "core_principles": [ "证据优先:所有技术主张必须附带 GitHub 永久链接证据", "时效感知:严格区分过时信息,优先检索 2025+ 最新数据", "深度溯源:通过克隆仓库、分析提交历史和代码逻辑提供答案", "多维调研:结合官方文档、源码搜索与 Issue/PR 背景", "引用规范:严格执行强制性代码片段与路径引用格式", "分类执行:针对概念、实现、上下文采用定制化搜索策略" ] }, "oracle": { "agent": "oracle", "model": "未知", "suitable_for": [ "系统架构与技术选型评审", "复杂问题根因分析与排障策略", "重构路线规划与风险控制", "代码库结构解读与一致性治理", "性能与可靠性权衡建议" ], "core_principles": [ "KISS:优先最简单可行方案", "YAGNI:只做当前明确需求", "复用优先:尽量沿用现有模式与依赖", "可维护性优先:降低认知负担", "单一路径:给出一个主推荐方案", "投入可见:明确工作量与边界条件", "止于足够好:避免过度优化与过度设计" ] }, "multimodal-looker": { "agent": "multimodal-looker", "model": "未知", "suitable_for": [ "解析图片、PDF 等非纯文本媒体文件", "提取文档中的特定章节、表格或结构化数据", "描述 UI 界面布局、交互元素及视觉样式", "分析并解释流程图、架构图等复杂图表逻辑", "从多模态内容中获取深度理解而非原始文字" ], "core_principles": [ "仅提取用户请求的相关信息,严禁输出无关干扰项", "深度分析多媒体文件的视觉结构与内在联系", "通过返回解析后的核心结论来节省上下文 Token", "在目标任务上保持彻底详尽,对非核心内容保持简洁", "响应语言必须与用户请求的语言严格保持一致", "不处理可由常规读取工具处理的纯文本或源代码" ] } }, "categories": { "visual-engineering": { "category": "视觉工程", "model": "google/antigravity-gemini-3-pro", "variant": "无", "suitable_for": [ "将设计稿转为可维护的前端实现(HTML/CSS/JS/组件化)", "构建高一致性的设计系统与组件库(令牌、主题、栅格、排版)", "复杂布局与动效工程化(响应式、过渡、时间线、性能约束)", "可视化与图形界面开发(图表、画布、WebGL/着色器协同)", "UI 性能优化(首屏、渲染抖动、资源加载、动画合成层)", "可访问性与跨端适配(A11y、触控、不同 DPR/字体渲染差异)" ], "core_principles": [ "以视觉规格为真:像素密度、间距、排版层级、色彩与对比度可量化可验证", "工程可演进:组件边界清晰、样式可组合、避免脆弱选择器与一次性 hack", "一致性优先:设计令牌驱动(颜色/间距/圆角/阴影/字体),减少特例", "性能与质感并重:动画遵循合成友好、控制重排重绘、资源预算清晰", "跨设备稳健:移动优先、断点策略明确、避免依赖单一浏览器特性", "可访问性默认开启:语义结构、焦点管理、键盘可达、对比度与动效可降级" ] }, "ultrabrain": { "category": "预设类别:ultrabrain", "model": "openai/gpt-5.2-codex", "variant": "high", "suitable_for": [ "高难度软件工程设计与架构推演", "复杂代码库的系统性重构与性能优化", "并发、分布式、可靠性与故障演练方案设计", "严格约束下的推理、验证与形式化思维辅助", "跨语言/跨栈问题定位、根因分析与修复策略制定" ], "core_principles": [ "以正确性与可验证性优先:先定义不变量、边界与失败模式,再给方案", "深度推理但输出克制:内部充分思考,外部给最少且必要的结论与步骤", "面向工程落地:权衡成本、风险、可维护性与可观测性,避免纸上架构", "高标准代码质量:强调可读性、模块化、清晰接口与测试友好", "系统化排障:基于证据(日志/指标/复现)进行根因定位,避免猜测", "遵循约束与安全:最小权限、避免破坏性操作、对不可逆变更显式提示" ] }, "artistry": { "category": "艺术表现", "model": "google/antigravity-gemini-3-pro", "variant": "高", "suitable_for": [ "文案与叙事创作", "诗歌与意象化表达", "品牌语气与风格统一", "视觉概念与艺术指导", "舞台/影视/游戏世界观设定", "创意改写与风格迁移" ], "core_principles": [ "以审美一致性为先:语气、节奏、意象统一", "高原创与高密度表达:避免陈词滥调与模板化", "强调画面感与隐喻:用具体意象承载抽象主题", "结构服务情绪推进:起承转合清晰但不僵硬", "细节可信:材质、光影、气味、触感等感官要素可落地", "尊重约束:在题材、风格、篇幅、受众限制内创造", "文化与语境敏感:避免不当挪用与刻板印象" ] }, "quick": { "category": "快速", "model": "opencode/grok-code", "variant": "无", "suitable_for": [ "快速排查与定位问题", "短小明确的代码修改与补丁", "命令行与脚本使用指导", "代码片段解释与改写", "高频迭代的工程协作问答" ], "core_principles": [ "速度优先,尽快给出可执行方案", "聚焦当前任务,避免过度设计", "最小可行修改,降低引入风险", "清晰直接的步骤与结论", "必要时补充关键边界与注意事项" ] }, "unspecified-low": { "category": "未指定-低", "model": "xaio/Qwen3-Coder-30B-A3B-Instruct", "variant": "无", "suitable_for": [ "日常编程问答与示例代码生成", "小到中等规模的功能实现与重构建议", "快速调试思路梳理与错误定位指导", "常见框架与工具链的使用说明", "代码评审要点与改进清单输出" ], "core_principles": [ "以可运行与可维护为优先,避免过度设计", "输出简洁直接,默认给出可落地的实现路径", "不确定处明确标注假设与边界条件", "遵循通用工程最佳实践(清晰接口、低耦合、可测试)", "优先最小改动修复与渐进式优化", "在安全与可靠性相关问题上保持保守与可解释" ] }, "unspecified-high": { "category": "未指定-高配", "model": "xaio/Qwen3-Coder-480B-A35B-Instruct", "variant": "无", "suitable_for": [ "复杂代码生成与重构", "大型代码库理解与跨文件推理", "架构设计与技术方案评审", "高难度调试与根因分析", "多语言全栈开发与集成", "高质量测试用例与边界条件覆盖" ], "core_principles": [ "优先正确性与可验证性:输出可编译、可运行、可测试的方案", "工程化与可维护性:结构清晰、接口稳定、最小必要复杂度", "安全与稳健:默认防御性设计,避免注入、越权与数据破坏", "明确假设与约束:对不确定点给出可选项与取舍依据", "高信噪比:少废话、直达结论,提供可执行步骤与关键细节", "一致性与可读性:遵循既有风格与约定,减少认知负担" ] }, "writing": { "category": "写作", "model": "google/antigravity-gemini-3-flash", "variant": "无", "suitable_for": [ "文章与博客撰写", "营销文案与品牌语气改写", "邮件与公文写作", "故事与创意写作", "多版本改写与润色压缩", "结构化大纲与标题生成" ], "core_principles": [ "清晰表达,避免含混与赘述", "以读者为中心,匹配语气与场景", "结构先行:先框架后细节", "信息准确,不编造不可核验事实", "风格一致,术语与用词统一", "可编辑性强:给出可直接替换的文本产出" ] } } } 


插件主配置文件:oh-my-opencode.json

定义具体的模型映射。
配置文件路径参考:

  • Linux/macOS: ~/.config/opencode/oh-my-opencode.json
  • Windows: %USERPROFILE%\.config\opencode\oh-my-opencode.json
{ "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "google_auth": false, "agents": { "Sisyphus": { "model": "google/antigravity-claude-opus-4-5-thinking", "memo": "主协调者 - 默认主智能体,负责整体任务的规划、委派和执行协调" }, "Sisyphus-Junior": { "model": "google/antigravity-claude-sonnet-4-5", "memo": "专注执行者 - 执行单元,直接编写代码,不能再委派任务,模型由category动态决定(此为兜底)" }, "Prometheus (Planner)": { "model": "openai/gpt-5.2", "memo": "规划师 - 任务规划,使用工作规划方法论进行任务分解和策略制定" }, "Metis (Plan Consultant)": { "model": "google/antigravity-claude-sonnet-4-5", "memo": "计划顾问 - 预规划分析,识别隐藏需求和潜在的AI失败点" }, "Momus (Plan Reviewer)": { "model": "google/antigravity-claude-sonnet-4-5-thinking", "memo": "计划审查员 - 计划审查,对生成的计划进行质量检查和风险评估" }, "oracle": { "model": "openai/gpt-5.2", "memo": "架构师 - 架构设计、代码审查、战略规划,利用GPT-5.2的逻辑推理能力" }, "librarian": { "model": "google/antigravity-gemini-3-flash", "memo": "资料管理员 - 多仓库分析、文档查找、实现示例搜索,深度代码库理解和GitHub研究" }, "explore": { "model": "opencode/grok-code", "memo": "探索者 - 快速代码库探索和模式匹配,专注于代码搜索和发现" }, "multimodal-looker": { "model": "google/antigravity-gemini-3-flash", "memo": "多模态观察者 - 视觉内容专家,分析PDF、图像、图表等多媒体内容" }, "OpenCode-Builder": { "model": "xaio-openai/Qwen3-Coder-480B-A35B-Instruct", "memo": "构建专家 - OpenCode原生build agent,默认禁用(被Sisyphus-Junior替代),需手动启用" }, "frontend-ui-ux-engineer": { "model": "google/antigravity-gemini-3-pro", "memo": "前端UI/UX工程师 - 前端开发,创建美观的用户界面,专注于创意和视觉设计" }, "document-writer": { "model": "google/antigravity-gemini-3-flash", "memo": "文档写手 - 技术写作专家,擅长流畅的技术文档写作" } }, "categories": { "visual-engineering": { "model": "google/antigravity-gemini-3-pro", "memo": "前端工程师 - 前端开发、UI/UX设计、样式调整、动画效果,专注于视觉呈现" }, "ultrabrain": { "model": "openai/gpt-5.2-codex", "variant": "high", "memo": "超级大脑 - 深度逻辑推理、复杂架构决策、需要大量分析的高难度问题" }, "artistry": { "model": "google/antigravity-gemini-3-pro", "variant": "high", "memo": "艺术家 - 高度创意任务、艺术性工作、新颖独特的想法生成" }, "quick": { "model": "opencode/grok-code", "memo": "快速执行者 - 简单任务、单文件修改、拼写修复、小改动,省钱省时" }, "unspecified-low": { "model": "xaio-openai/Qwen3-Coder-30B-A3B-Instruct", "memo": "通用助手(轻量) - 不适合其他类别的中等难度任务" }, "unspecified-high": { "model": "xaio-openai/Qwen3-Coder-480B-A35B-Instruct", "memo": "通用助手(重量) - 不适合其他类别的高难度复杂任务" }, "writing": { "model": "google/antigravity-gemini-3-flash", "memo": "文档写手 - 通用文案、技术文档编写、README撰写、注释完善、技术写作" } } } 


opencode 配置文件:opencode.json

配置文件路径参考:

  • Linux/macOS: ~/.config/opencode/opencode.json
  • Windows: %USERPROFILE%\.config\opencode\opencode.json
{ "$schema": "https://opencode.ai/config.json", "plugin": [ "oh-my-opencode", "opencode-antigravity-auth@1.3.0" ] } 

opencode-antigravity-auth 的配置

{ "$schema": "https://opencode.ai/config.json", "plugin": ["opencode-antigravity-auth@latest"], "provider": { "google": { "models": { "antigravity-gemini-3-pro": { "name": "Gemini 3 Pro (Antigravity)", "limit": { "context": 1048576, "output": 65535 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }, "variants": { "low": { "thinkingLevel": "low" }, "high": { "thinkingLevel": "high" } } }, "antigravity-gemini-3-flash": { "name": "Gemini 3 Flash (Antigravity)", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }, "variants": { "minimal": { "thinkingLevel": "minimal" }, "low": { "thinkingLevel": "low" }, "medium": { "thinkingLevel": "medium" }, "high": { "thinkingLevel": "high" } } }, "antigravity-claude-sonnet-4-5": { "name": "Claude Sonnet 4.5 (Antigravity)", "limit": { "context": 200000, "output": 64000 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "antigravity-claude-sonnet-4-5-thinking": { "name": "Claude Sonnet 4.5 Thinking (Antigravity)", "limit": { "context": 200000, "output": 64000 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }, "variants": { "low": { "thinkingConfig": { "thinkingBudget": 8192 } }, "max": { "thinkingConfig": { "thinkingBudget": 32768 } } } }, "antigravity-claude-opus-4-5-thinking": { "name": "Claude Opus 4.5 Thinking (Antigravity)", "limit": { "context": 200000, "output": 64000 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }, "variants": { "low": { "thinkingConfig": { "thinkingBudget": 8192 } }, "max": { "thinkingConfig": { "thinkingBudget": 32768 } } } }, "gemini-2.5-flash": { "name": "Gemini 2.5 Flash (Gemini CLI)", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "gemini-2.5-pro": { "name": "Gemini 2.5 Pro (Gemini CLI)", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "gemini-3-flash-preview": { "name": "Gemini 3 Flash Preview (Gemini CLI)", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "gemini-3-pro-preview": { "name": "Gemini 3 Pro Preview (Gemini CLI)", "limit": { "context": 1048576, "output": 65535 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } } } } } } 

我自用 provider,仅供参考。 claude 原本的 思考等级的 max 我为了方便记忆 改成了 xhigh

{ "google": { "models": { "antigravity-gemini-3-pro": { "name": "Gemini 3 Pro (Antigravity)", "limit": { "context": 1048576, "output": 65535 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] }, "variants": { "low": { "thinkingLevel": "low" }, "high": { "thinkingLevel": "high" } } }, "antigravity-gemini-3-flash": { "name": "Gemini 3 Flash (Antigravity)", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] }, "variants": { "minimal": { "thinkingLevel": "minimal" }, "low": { "thinkingLevel": "low" }, "medium": { "thinkingLevel": "medium" }, "high": { "thinkingLevel": "high" } } }, "antigravity-claude-sonnet-4-5": { "name": "Claude Sonnet 4.5 (Antigravity)", "limit": { "context": 200000, "output": 64000 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] } }, "antigravity-claude-sonnet-4-5-thinking": { "name": "Claude Sonnet 4.5 Thinking (Antigravity)", "limit": { "context": 200000, "output": 64000 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] }, "variants": { "none": { "thinkingConfig": { "thinkingBudget": 0 } }, "minimal": { "thinkingConfig": { "thinkingBudget": 4096 } }, "low": { "thinkingConfig": { "thinkingBudget": 8192 } }, "medium": { "thinkingConfig": { "thinkingBudget": 12288 } }, "high": { "thinkingConfig": { "thinkingBudget": 16384 } }, "xhigh": { "thinkingConfig": { "thinkingBudget": 32768 } } } }, "antigravity-claude-opus-4-5-thinking": { "name": "Claude Opus 4.5 Thinking (Antigravity)", "limit": { "context": 200000, "output": 64000 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] }, "variants": { "none": { "thinkingConfig": { "thinkingBudget": 0 } }, "minimal": { "thinkingConfig": { "thinkingBudget": 4096 } }, "low": { "thinkingConfig": { "thinkingBudget": 8192 } }, "medium": { "thinkingConfig": { "thinkingBudget": 12288 } }, "high": { "thinkingConfig": { "thinkingBudget": 16384 } }, "xhigh": { "thinkingConfig": { "thinkingBudget": 32768 } } } } } }, "openai-compatible": { "npm": "@ai-sdk/openai-compatible", "name": " X (Chat)", "options": { "baseURL": "https://x/v1" }, "models": { "Qwen3-Coder-480B-A35B-Instruct": { "name": "Qwen 3 Coder 480B", "limit": { "context": 256000, "output": 32000 } }, "Qwen3-Coder-30B-A3B-Instruct": { "name": "Qwen 3 Coder 30B", "limit": { "context": 64000, "output": 32000 } }, "XAIO-G-3-Pro-Preview": { "name": "Gemini 3 Pro Preview", "limit": { "context": 200000, "output": 32000 }, "modalities": { "input": [ "text", "image", "video" ], "output": [ "text" ] }, "reasoning": true, "interleaved": { "field": "reasoning_content" } }, "XAIO-G-3-Flash-Preview": { "name": "Gemini 3 Flash", "limit": { "context": 200000, "output": 32000 }, "modalities": { "input": [ "text", "image", "video" ], "output": [ "text" ] }, "reasoning": true, "interleaved": { "field": "reasoning_content" } } } }, "anthropic": { "npm": "@ai-sdk/anthropic", "name": " X (Anthropic)", "options": { "baseURL": "https://x/anthropic" }, "models": { "XAIO-C-4-5-Opus": { "name": "Claude Opus 4.5", "limit": { "context": 200000, "output": 32000 }, "modalities": { "input": [ "text", "image", "video" ], "output": [ "text" ] }, "variants": { "none": { "thinking": { "type": "disabled" } }, "minimal": { "thinking": { "type": "enabled", "budgetTokens": 4096 } }, "low": { "thinking": { "type": "enabled", "budgetTokens": 8192 } }, "medium": { "thinking": { "type": "enabled", "budgetTokens": 12288 } }, "high": { "thinking": { "type": "enabled", "budgetTokens": 16384 } }, "xhigh": { "thinking": { "type": "enabled", "budgetTokens": 32768 } } } }, "XAIO-C-4-5-Sonnet": { "name": "Claude Sonnet 4.5", "limit": { "context": 200000, "output": 32000 }, "modalities": { "input": [ "text", "image", "video" ], "output": [ "text" ] }, "variants": { "none": { "thinking": { "type": "disabled" } }, "minimal": { "thinking": { "type": "enabled", "budgetTokens": 4096 } }, "low": { "thinking": { "type": "enabled", "budgetTokens": 8192 } }, "medium": { "thinking": { "type": "enabled", "budgetTokens": 12288 } }, "high": { "thinking": { "type": "enabled", "budgetTokens": 16384 } }, "xhigh": { "thinking": { "type": "enabled", "budgetTokens": 32768 } } } }, "XAIO-C-4-5-Haiku": { "name": "Claude Haiku 4.5", "limit": { "context": 200000, "output": 32000 }, "modalities": { "input": [ "text", "image", "video" ], "output": [ "text" ] }, "variants": { "none": { "thinking": { "type": "disabled" } }, "minimal": { "thinking": { "type": "enabled", "budgetTokens": 4096 } }, "low": { "thinking": { "type": "enabled", "budgetTokens": 8192 } }, "medium": { "thinking": { "type": "enabled", "budgetTokens": 12288 } }, "high": { "thinking": { "type": "enabled", "budgetTokens": 16384 } }, "xhigh": { "thinking": { "type": "enabled", "budgetTokens": 32768 } } } } } }, "openai": { "npm": "@ai-sdk/openai", "name": " X (OpenAI Responses)", "options": { "baseURL": "https://x/v1" }, "models": { "XAIO-O-G5-2": { "name": "GPT-5.2", "limit": { "context": 200000, "output": 32000 }, "modalities": { "input": [ "text", "image", "video" ], "output": [ "text" ] }, "variants": { "none": { "reasoningEffort": "none" }, "minimal": { "reasoningEffort": "minimal" }, "low": { "reasoningEffort": "low" }, "medium": { "reasoningEffort": "medium" }, "high": { "reasoningEffort": "high" }, "xhigh": { "reasoningEffort": "xhigh" } } }, "XAIO-O-G5-2-Codex": { "name": "GPT-5.2 Codex", "limit": { "context": 200000, "output": 32000 }, "modalities": { "input": [ "text", "image", "video" ], "output": [ "text" ] }, "variants": { "none": { "reasoningEffort": "none" }, "minimal": { "reasoningEffort": "minimal" }, "low": { "reasoningEffort": "low" }, "medium": { "reasoningEffort": "medium" }, "high": { "reasoningEffort": "high" }, "xhigh": { "reasoningEffort": "xhigh" } } }, "XAIO-O-G5-1-Codex-Mini": { "name": "GPT-5.1 Codex mini", "limit": { "context": 200000, "output": 32000 }, "modalities": { "input": [ "text", "image", "video" ], "output": [ "text" ] }, "variants": { "none": { "reasoningEffort": "none" }, "minimal": { "reasoningEffort": "minimal" }, "low": { "reasoningEffort": "low" }, "medium": { "reasoningEffort": "medium" }, "high": { "reasoningEffort": "high" }, "xhigh": { "reasoningEffort": "xhigh" } } }, "XAIO-O-G5-1-Codex-Max": { "name": "GPT-5.1 Codex Max", "limit": { "context": 200000, "output": 32000 }, "modalities": { "input": [ "text", "image", "video" ], "output": [ "text" ] }, "variants": { "none": { "reasoningEffort": "none" }, "minimal": { "reasoningEffort": "minimal" }, "low": { "reasoningEffort": "low" }, "medium": { "reasoningEffort": "medium" }, "high": { "reasoningEffort": "high" }, "xhigh": { "reasoningEffort": "xhigh" } } } } } } 


鉴权配置 auth.json

api key 的配置和 oauth 配置在
~/.local/share/opencode /auth.json
%USERPROFILE%\.local\share\opencode\auth.json

{ "x": { "type": "api", "key": "<API_KEY>" } } 



📌 转载信息
原作者:
favorPatato
转载时间:
2026/1/23 15:36:07

0. 前言

Open code 的配置一直是比较繁琐的,虽然开箱即用,但如果想配置转发站就有点头疼了。在网上找了很多教程,但大都简略,很多第三方转发站的文档写的也不明白(点名)。

有很多佬友开发了可视化 / 后端插件,如 AI-toolboxOCCMCLIProxyAPI。这些都很好用!感谢佬友们!你们的贡献让社区变得如此美好,也深深激励了我

在使用了一段时间后,我发现掌握一些模型 config 配置原理是有必要的。插件只能帮忙切换 provider,每个模型的进阶参数如思考预算,仍然要自己配置。懂得如何修改配置文件也能让我们把这些插件用的更好.

所以写一篇教程,从 0 开始配置 opencode.json. 希望能帮到各位尝试 opencode(并想在 opencode 中配置使用自定义转发站)的佬友,同时也记录自己学习各类官方文档的过程

comment 1: 通过本教程你可以收获:
  • 通过截图和我一起配置文档一坨但富可敌国的转发站作为 Provider
  • 一起看懂模型接口,Opencode,AI-SDK 官方文档
  • 了解并动手设置 Claude 和 OAI 不同模型和接口的参数配置(如思考预算)
comment 2: 本教程重点在于详细和实操,不是一个面面俱到的教程.

篇幅所限,本篇教程大部分内容是折叠的!!!请点击黑色三角形展开查看!!!
篇幅所限,本篇教程大部分内容是折叠的!!!请点击黑色三角形展开查看!!!
篇幅所限,本篇教程大部分内容是折叠的!!!请点击黑色三角形展开查看!!!

1. 初始化

action 1:如果你已经有 opencode.json 就可以跳过

如果你没有安装 opencode:
请参考此链接安装 opencode TUI 版 Opencode|Github

如果你有 opencode:
查看在 C:\Users <你的用户名>.config\opencode 目录下是否存在 opencode.json
如果没有,请不要手动创建。经过第二节的 Provider 配置,它会自动产生在这个目录下。

2.Provider 配置

2.1 官方 Provider 配置

如果你使用的是 Opencode 官方支持的 Provider,例如 Opencode Zen,GLM Coding Plan,那么基本上只需要在安装好的 opencode TUI 中输入 /connect 并回车即可。

如果你想在这篇文档中找到含截图配置教学,请展开以下三角形

action 2:连接 Github Copilot 作为 Provider

打开 opencode,输入 /connect


选择 github copilot 或其他 official provider

按提示操作

恭喜你!验证成功! 现在可以通过 opencode 使用 copilot 或其他 official provider 了。

注意:只需要重新走一遍此流程就能覆盖之前的认证
Provider auth 的文件在这里:C:\Users <你的用户名>.local\share\opencode
如果对此流程具体涉及的文件感兴趣,拓展阅读在 2.2 节 action4 提供

reference 1:相关文档
  1. 官方文档 Providers | OpenCode
  2. 翻译版 提供商 (Providers) - OpenCode 中文文档

2.2 自定义 API Key / 转发站 Provider 配置

站内轮子:OpenCode 自定义服务商(中转站)接入指南

如果你想在这篇文档中找到含截图配置教学,请展开以下三角形

action 3:通过可视化方式连接 Right Code(转发站)作为 Provider(推荐)

如果使用 action3,最好也看一下 action4
以便于理解后续 Models 配置部分对.json 的自定义修改。

Opencode 的逻辑是由开发者来列出所有合法的 provider 供连接,非常全。但 Right Code 这样的转发站理论上确实不受 opencode 支持。

大部分佬友遇到的困难集中在使用 opencode 命令打开 TUI (Terminal UI) 界面后,/connect 的 provider 中没有 "other" 或者 "custom" 选项。我们可以看到 Other 选项是个标题,确实不能选 Other 选项,而且经过搜索 Other 里面也没有 Right Code 这样的转发站。

不过,我们仍然可以通过配置 opencode.json 来解决这个问题。
@coulsontl
使用佬友的项目 AI-toolbox 可视化配置 opencode.json 和 auth:

  • step 1:下载并安装 releases.

  • step 2:填写你想自定义的供应商名和显示名

  • step 3:按照图片填写 NPM 包和 BaseURL 即可

  • step 4: 点击 “获取模型”,在列表中添加想用的模型



  • step 5:已经可以使用了。Oh-My-Opencode 也可以配置此种模式导入的模型。


非常好用!感谢 coulsontl 佬友!

不支持自定义 Options/Variants 配置,导入新 Provider 会覆写旧文件

也许后续我会提 PR?

如想知道如何填写 NPM 包和 BaseURL,请参考 document-reading 1!

action 4:通过 /connect 方式连接 Right Code(转发站)作为 Provider

Opencode 的逻辑是由开发者来列出所有合法的 provider 供连接,非常全。但 Right Code 这样的转发站理论上确实不受 opencode 支持。大部分佬友遇到的困难集中在使用 opencode 命令打开 TUI (Terminal UI) 界面后,/connect 的 provider 中没有 "other" 或者 "custom" 选项。我们可以看到 Other 选项是个标题,确实不能选 Other 选项,而且经过搜索 Other 里面也没有 Right Code 这样的转发站。

TUI 中 /connect 选项设置基于默认的合法 auth。不过,我们只需要随意在没有连接的选项中选一个然后改成我们的 auth 就可以了。


这里选择 privatemode AI,随意填写一个 api key

随意选择一个模型

虽然看起来能用,但这显然这是不能用的。

接下来的才是重点:我们去修改这个 auth 为 Right Code 的 auth 和 model。

Provider auth 的文件在这里:C:\Users <你的用户名>.local\share\opencode
如果你之前连接过其他的方案,例如 github copilot,也会在这里显示。同时,你可以删除这里面的配置,TUI 里会同步更新,相信可能会有佬友配错了想 disconnected 但找不到路子的,请修改这个文件,删除对应部分即可。


我们可以看到这个文件中已经新增了刚才我们选择的 Provider privatemode AI 的 Auth,key 为 666。

然后,修改 provider name 为一个你喜欢的名字,我这里修改为 RC Codex,key 填写为你的 apikey。需要修改,否则自动识别,勿与 opencode 的内置 provider(例如刚才的 privatemode AI)同名。

(我这里填写 666 是为了占位,请在转发站生成 api key 并填写。下图为获取 api-key 的界面)

那么 auth 就配置完成了!
接下来请转到 C:\Users <你的用户名>.config\opencode
查看是否有 opencode.json 或.jsonc
我这里就没有。如果没有,创建一个。


可以把 auth.json 复制过来创建。如果右键创建,记得显示扩展名。

此处 jsonc 和 json 的区别是 jsonc 可以写批注。c 是 comment 的意思。其他没有区别。

创建完毕后,写入对应于 provider auth 的 model 内容,参考示例如下。具体需要配置的部分都进行了注释,将由 document-reading 1 来详细讲解,以便大家知道为什么这么配置,进而配置不同的转发站。

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "RC-Codex": {  // 和auth中修改的名称一致 "npm": "@ai-sdk/openai", // 兼容的SDK,将于后续document-reading 1详细讲解 "name": "RingCode-CodeX",  // 在 TUI 中显示的名称 "options": {
        "baseURL": "https://www.right.codes/codex/v1",  // 中转站 API 地址(必须以 /v1 结尾或符合 OpenAI 格式),将于document-reading 1中详细讲解 "apiKey": "666"// 明文填写你的api-key,懂得引用的佬友可以用引用形式 // 如果中转站需要自定义 headers,可添加: // "headers": { //   "X-Custom-Header": "your-value" // }
      },
      "models": {
        "gpt-5.1-codex-max": {  // 中转站支持的模型ID,例如 gpt-4o、claude-3-5-sonnet 等,将于document-reading 1中详细讲解 "name": "Codex-5.1-max(RC-Codex)" //自定义显示名称
        },
        "gpt-5.1": {
          "name": "Gpt-5.1(RC-Codex)"
        }
        // 添加更多模型...
      }
    }
  }
}

此 opencode-config.json 参考来源

- document-reading 1
- 官方文档:https://opencode.ai/docs/models/
- 站内轮子:https://linux.do/t/topic/1329050 

配置完成后,我们就可以愉快地重启 opencode,选择 codex 模型了。


什么…? 你用的不是 Right Code 不知道注释的地方填什么?你需要阅读官方文档!

请在document-reading 1和我一起阅读文档!
来看看我是怎么在Right Code文档完全一坨的前提下填写这些字段的。
(声明:Right Code是我最喜欢的转发站之一,codex量大管饱,没有不喜欢的意思,但是文档和网站确实需要改进)
action 5:通过 auth login 方式连接 Right Code(转发站)作为 Provider

通过在 powershell 中输入 opencode auth login 配置
TUI 的打开命令是 opencode,那么其实 opencode 是一个程序,TUI 其实就是无参运行这个程序。可以想象,其实带参运行这个程序是才是触发程序中内置的功能比较常见的途径。那么 /connect 对应的带参运行其实就是 opencode auth login.


输入 opencode auth login 后,可以自由键入 provider 名字然后 enter,找不到也没事,这是区别于(1)选项重要的一点。
其余选项,对于文件的修改都相同,请参考 action 4。
注意起名勿与 opencode 的内置 provider 同名。
document-reading 1:通过阅读 Opencode 和转发站官方文档配置 Provider

RightCode 的文档和网站是最草率的那一批,但我们仍然可以获得足够的信息。

  • step1:获得转发站 baseurl 以填写 baseurl 字段
    在 RightCode 官方文档中没有提到 Opencode 如何配置,也没写 BaseUrl。
    在模型列表可用端口处点击复制按钮,
    分别得到 https://www.right.codes/claude-aws
    https://www.right.codes/codex,那么加上 v1,这就是两个模型池分别的 BaseUrl。

    为什么加上 v1:
    RightCode 文档里也加了。v1 是通用的接口规范,如果接口请求不对,没有 v1 就加上 v1

    通过以上信息可以填写如下的 baseurl 和 apikey 部分(apikey 获取此处省略)
 "options": { "baseURL": "https://www.right.codes/codex/v1", // 中转站 API 地址(必须以 /v1 结尾或符合 OpenAI 格式),将于document-reading 1中详细讲解 "apiKey": "666"// 明文填写你的api-key,懂得引用的佬友可以用引用形式 // 如果中转站需要自定义 headers,可添加: // "headers": { //   "X-Custom-Header": "your-value" // } }, 
  • step2:填写 models
    在模型广场里找到了如下的模型

    在使用文档也里找到了如下的 models 可以填写。

    因此可以填写 config 文件中对应的这几行。(注意:实际支持 5.2codex,以模型广场为准。这文档不全)
 "models": { "gpt-5.1-codex-max": { // 中转站支持的模型ID,例如 gpt-4o、claude-3-5-sonnet 等,将于document-reading 1中详细讲解 "name": "Codex-5.1-max(RC-Codex)" //自定义显示名称 }, "gpt-5.1": { "name": "Gpt-5.1(RC-Codex)" } 
  • step3:获得转发站支持的接口以填写 npm 字段
    我们可以看到 Right Code 支持了 Openai 新版 responses 和老版 chat/completions 接口,也支持了 Antropic 新版 messages 接口。

    那么知道了支持的接口该怎么填写 npm 字段呢?这个字段好像也不是接口。

不知道什么意思的时候就请查看 Opencode 官方文档。

根据 Models | OpenCode opencode 是基于 Vercel 的 AI SDK 项目(实际上大部分 AI 工具都基于 AI-SDK 转发请求)和 models.dev 项目的。所以去查看这两个项目的官方文档。models.dev 看了之后和我们的需求没什么关系,opencode.json 的实现是依赖于 AI-SDK 的。AI-SDK 表示接口的实现依赖于对应的 npm 包。也就是说一个包对应一个接口。

查 AI SDK 的文档 Foundations: Providers and Models

进去之后发现左上角 navigator 有一个 Providers,那么层级应该是 Provider/Model,所以应该要从这里进去了。

点进去以后来到了这个页面

AI SDK Providers

分别查看 openai,openai-compatible-providers 和 claude 的接口标准

AI SDK Providers: OpenAI
AI SDK Providers: Anthropic
OpenAI Compatible Providers

能看到文档中说明 openai Provider 包含有 /responses 请求接口的实现,openai-compatible-providers 包含 /chat/completions 接口的实现,claude 包含有 /messages 接口的实现。这就对应上了。

因此我们可以配置接口部分:
"npm": "@ai-sdk/openai", // responses接口对应的SDK
由于官方文档中提到,Right Code 也支持了老版的 /chat/completions 接口,所以这个地方的 SDK 也可以配置为 openai-compatible.
`“npm”: “@ai-sdk/openai-compatible”, // 兼容的 SDK

完整的初步配置文件:


{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "RC-Codex": {  // 和auth中修改的名称一致 "npm": "@ai-sdk/openai", // /responses接口对应的SDK "name": "RingCode-CodeX",  // 在 TUI 中显示的名称 "options": {
        "baseURL": "https://www.right.codes/codex/v1", 
        "apiKey": "666"

      },
      "models": {
        "gpt-5.1-codex-max": {  // 中转站支持的模型ID "name": "Codex-5.1-max(RC-Codex)" //自定义显示名称
        },
        "gpt-5.1": {
          "name": "Gpt-5.1(RC-Codex)"
        }
      }
    }
  }
}

现在就可以用了。在后续 Options 中将提及如何优化模型体验,包括设置思考预算。

recommend 1:Provider 可视化配置,一键切换和分流

有很多佬友开发了可视化 / 后端插件

  • AI-toolbox:这款软件支持插件的装载和取消装载,对于我这种不想每次都用 Oh-My-Opencode 的人来说非常好。我非常喜欢这款软件!谢谢佬友!
  • OCCM :非常好用的一款小软件
  • CLIProxyAPI教程帖
  • CC Switch 将于近日发布的 3.10 版本支持 Opencode! commit 记录
  • 其他我没有关注到的链接非常抱歉!请留言!
reference 2:相关文档

1. 官方文档 Providers | OpenCode
2. 翻译版 提供商 (Providers) - OpenCode 中文文档

comment 3:碎碎念

@coulsontl 佬友的 AI-toolbox 很好!!但也有一些还没实现的部分:
①不含 Skills 设置
②目前只能设置 Oh-My-Opencode 插件中 Agents 的开关,不含 Custom Agents 的设置

其实我感觉 OMO 太重了,而且大多数项目其实并不完全适合 OMO 的 Agents 分配方式。要是 OMO 能完全嵌入 Opencode 的原生 Agents 流程就好了!

目前只是偶尔用用 OMO,日常开发更喜欢在 Opencode 中使用各种自定义 Agents,后续或许写一个 PR 来实现不同 custom agents 的开关,以及更上一层不同 Agents 组合配置的切换功能。

3.Models 配置

3.1 Options 配置

配好了转发站,但是模型用起来不好用,可能是因为没有配置 OptionsOptions 是厂商自定义的参数列表,例如 Codex 的思考预算,佬友们常说的 Xhigh / high 都在 options 设置。

3.1.1 Options 作用

(以 Right Code 转发站的 Codex 端点为例展示)

example 1:使用 Right Code 转发站转发 /codex 端点,默认配置

可以看到,虽然能返回,但 codex-max 在每次调用后马上就返回了,也没有展示思考,使用体验很不好。难道 codex-max 这么蠢吗?或者是被降智了?

example 2:使用 Right Code 转发站转发 /codex 端点,增加 Options 配置

但是如 example 2 所示,同样的模型和转发站,没有一步一停,也展示了思考内容,花费 2 分钟。

example 3:config 片段对比

在例图 1 时,我的 opencode.json 配置对应片段如下:

"RightCodes-OAI": {
      "npm": "@ai-sdk/openai",
      "name": "Rightcodes-OAI",
      "options": {
        "baseURL": "https://www.right.codes/codex/v1",
        "apiKey": "用你的api-key代替",
      },
      "models": {
        "gpt-5.1-codex-max": {
          "name": "gpt-5.1-codex-max",
        }
      }
    }

在例图 2 时,我的 opencode.json 配置对应片段如下:

"RightCodes-OAI": {
      "npm": "@ai-sdk/openai",
      "name": "Rightcodes-OAI",
      "options": {
        "baseURL": "https://www.right.codes/codex/v1",
        "apiKey": "用你的api-key代替",
      },
      "models": {
        "gpt-5.1-codex-max": {
          "name": "gpt-5.1-codex-max",
          "options":{
            "reasoningEffort": "high",
            "textVerbosity": "medium",
            "reasoningSummary": "auto"
	        }
        },
      }
    }

可以看出,问题的关键在于我在 options 中配置了三个选项 reasoningEffort:high,textVerbosity:medium和reasoningSummary:auto

additional 1:参数作用说明

reasoningEffort 代表模型的推理预算,从 low 到 Xhigh(一般推荐设置为 high,因为 Xhigh 可能并没有太明显的帮助,而且有些模型没有 Xhigh 选项)

textVerbosity 控制模型的输出长度,medium 代表中等;

reasoningSummary 代表模型是否输出 thinking 的总结(即 example2 中黄色的 thinking:xxx 部分),auto 代表自动控制思考总结的长度。

3.1.2 Options 配置

document-reading 2:通过阅读 OpenCode 官方文档配置 codex 模型和 claude 模型 options

这种时候我们要寻求 Opencode 官方文档的帮助。

  • step1:
    首先根据 Models | OpenCode opencode 是基于 Vercel 的 AI SDK 项目和 models.dev 项目的,所以去查看这两个项目的官方文档。

  • step2:
    查 AI SDK 的文档 Foundations: Providers and Models
    进去之后发现左上角 navigator 有一个 Providers,那么层级应该是 Provider/Model/Options,所以应该要从这里进去了。

  • step3:
    点进去以后来到了这个页面
    AI SDK Providers
    分别查看 openai 和 claude 的接口标准
    (为什么查看这两个接口请参考 notification 1&2):
    AI SDK Providers: OpenAI
    AI SDK Providers: Anthropic
    能看到文档中已经详细说明了每个 options 有什么含义及如何填写。


notification 1:Options 跟随 Models 变化,而不是 Provider 或中转站

options 配置隶属于 models 配置,不同 Provider 提供的请求接口不同,options 的设置也因此完全不同,例如 codex 系列模型通过 OPENAI 的 /responses 接口请求,claude 系列模型则通过 ANTROPIC 的 /messages 接口请求,因此,一个中转站的不同 Provider 模型应该遵循不同的 options 设置。

进一步地,同一个 Provider(厂商),相同接口的不同模型也可能支持不同的 options 设置,例如 codex 的部分模型虽然也使用 openai/responses 接口,但却不支持思考预算为 xhigh 的设置;gemini 的生图模型和推理模型显然不能遵循同样的 options 设置。

因此,最好的方式是为每个常用模型分别设置 options。

具体请参考 document-reading 1 中 AI-SDK 不同 Providers 页面下的相关接口实现。
分辨你的常用模型使用哪个接口,并确定其是否满足接口的所有 options 参数。
设置无效的 options 不会引发报错,但可能毫无作用,进而可能导致 example 1 中模型不能发挥出应有实力的表现。

document-reading 3:通过阅读 OPENAI 官方文档进一步配置 codex 模型 options

AI-SDK 的文档当然已经非常够用了,不过如果你想更深程度的了解究竟有哪些 options,那么 AI-SDK 的文档里还是没有写的完全清楚,例如在 include 这里,AI-SDK 只写了两个支持的值,实际上这里不止两个值可以填。

其实我们还可以去检查 OPENAI 和 ANTROPIC 的官方文档来确认究竟有哪些 options。

这里以 OPENAI 为例:我们查找官方文档中关于 Reponses API 的部分(善用文档库自带的搜索框)可以看到 include 列表一共有七个可选的值。

有任何关于你想要的模型自主设置也可以继续在 responses api 里探索。responses api 是许多模型共用的接口,你使用的模型可能并不支持该接口的所有功能。
https://platform.openai.com/docs/api-reference/responses/create

notification 2:不同中转站实现的接口可能不同

本文以配置 Right Code 家的 codex 和 claude 为例。在 RightCode 官方文档 中,codex 实现的接口为 OPENAI 官方的 responses 接口,因此应该遵循 responses 接口的 options 设置。claude 实现的接口为 ANTROPIC 官方的 messages 接口,因此应该遵循 messages 接口的 options 设置。

3.2 Variants 配置

Variants 实际上就是一个 List,其中的每个元素是一个 Options 设置。通过切换不同的 Variants,我们实际上能够切换不同的 Options 组合。参考文档:Models | OpenCode

原配置一个模型只能有一个设置:

 "gpt-5.2-codex": { "name": "gpt-5.2-codex", "options":{ "reasoningEffort": "high", "textVerbosity": "medium", "reasoningSummary": "auto" } }, 

现在我想针对这个模型切换不同的 Options 组合,则把它们打包到 Variants 列表里.

 "gpt-5.2-codex": { "name": "gpt-5.2-codex", "variants": { "high": { "reasoningEffort": "high", "textVerbosity": "low", }, "xhigh": { "reasoningEffort": "xhigh", "textVerbosity": "medium", }, }, }, 

可以看到,现在可以调整 xhigh 和 high 进行推理了.

4. 留言

Plugins 配置,如 Oh-My-Opencode 配置等站内已有其他轮子,不再赘述;

exercise 1:完善 Right Code/Claude 4.5 Opus 模型的初始 opencode.json 文件

题目:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "RCS-Claude": {
      "npm": "@ai-sdk/anthropic",
      "name": "RC中转站Claude端点(awsq)",
      "options": {
        "baseURL": "https://www.right.codes/claude-aws/v1",
        "apiKey": "666"
      },
      "models": {
        "claude-opus-4-5-20251101": {
          "name": "claude-opus-4-5-20251101"
        }
      }
    }
  },
  "model": "RCS-Codex/gpt-5.1",
  "small_model": "opencode/grok-code"
}

答案供参考:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "RCS-Claude": {
      "npm": "@ai-sdk/anthropic",
      "name": "RC中转站Claude端点(awsq)",
      "options": {
        "baseURL": "https://www.right.codes/claude-aws/v1",
        "apiKey": "666"
      },
      "models": {
        "claude-opus-4-5-20251101": {
          "name": "claude-opus-4-5-20251101",
           "variants":{ 
              "very-lazy": {
                "effort": "low" 
              },
              "think-2000":{
                "thinking": { "type": "enabled", "budgetTokens": 2000 },
              },
              "think-1w6":{
                "thinking": { "type": "enabled", "budgetTokens": 16000 },
              },
            }
        }
      }
    }
  },
  "model": "RCS-Codex/gpt-5.1",
  "small_model": "opencode/grok-code"
}

参考文档:
AI-SDK Provider:Antropic


Antropic Message 接口官方文档

不兼容的 options 不会生效,但问题在于也不会报错。它们只是影响你的模型 "智力".

习题 1 参考答案效果展示:opus4.5 very-lazy(不进行思考,努力值为低,即 “降智”)

努力值不设置时默认为高

习题 1 参考答案效果展示:opus4.5 think-2000:(思考预算为 2000)

习题 1 参考答案效果展示:opus4.5 think-16000:(思考预算为 16000)

同一个模型显示出三种不同的效果,展示了 options 配置的必要性.

感谢你看到这里!


📌 转载信息
转载时间:
2026/1/22 13:16:46

Oracle 11g R2(版本号 11.2.0.4)是企业常用的数据库版本,oracle11.2.0.4.exe是它的 Windows 安装包(其实是 .exe格式的 Oracle Universal Installer)。

一、准备工作

  1. 下载安装包

    安装包下载:https://pan.quark.cn/s/c3fbf7e602b4

  2. 硬件和系统要求

    • 操作系统:Windows Server 2008 / Windows 7 / Windows 10(64位推荐)。
    • 内存至少 2GB(最好 4GB 以上)。
    • 磁盘空间至少 15GB(Oracle 软件和示例数据库都需要空间)。
  3. 关闭不必要软件

    • 关闭杀毒软件(安装过程中可能被拦截)。
    • 关闭其他占用大量内存的程序。

二、安装 Oracle 11.2.0.4

  1. 双击运行安装包

    • 双击 oracle11.2.0.4.exe,弹出安装向导。
    • 如果是 Windows 10/11,可能会提示“允许此应用对你的设备进行更改吗?” → 点  “是”
  2. 配置安全更新(可选)

    • 邮箱和密码可不填(只是接收 Oracle 的安全公告)。
    • 取消勾选“我希望通过 My Oracle Support 接收安全更新”。
    • 点  “下一步”
  3. 选择安装类型

    • 一般选  “创建和配置数据库” (会自动帮你装好数据库实例)。
    • 如果只是装软件不建库,选“仅安装数据库软件”。
    • 点  “下一步”
  4. 选择系统类

    • 桌面电脑选  “桌面类”
    • 服务器选  “服务器类”
    • 点  “下一步”
  5. 典型安装配置

    • Oracle 基目录:默认 C:\app\用户名\product\11.2.0\dbhome_1(可改路径)。
    • 全局数据库名:默认 orcl(建议不改,后面连接要用这个名字)。
    • 管理口令:设置一个密码(记住,后面登录用)。
    • 点  “下一步”
  6. 先决条件检查

    • 安装程序会自动检测系统是否满足要求。
    • 如果有报错(比如缺少补丁),先解决再继续。
    • 没问题就点  “下一步”
  7. 安装概要

    • 核对安装路径、数据库名等信息。
    • 确认无误点  “安装”
  8. 等待安装完成

    • 进度条走完,会弹出“Database Configuration Assistant”窗口,创建数据库实例。
    • 这一步会自动启动监听器和数据库服务。
    • 完成后点  “确定”

三、首次连接数据库

  1. 打开 SQL*Plus

    • 在开始菜单找到  “Oracle – OraDb11g_home1” → “应用程序开发” → “SQL Plus”
  2. 登录数据库

    • 用户名:sys as sysdba
    • 密码:刚才设置的密码
    • 主机字符串留空(本地连接)。
    • 登录成功后,提示符会变成 SQL>
  3. 简单测试

    • 输入 select * from v$version;回车,能看到 Oracle 版本信息。

Oracle 11g R2(版本号 11.2.0.4)是企业常用的数据库版本,oracle11.2.0.4.exe是它的 Windows 安装包(其实是 .exe格式的 Oracle Universal Installer)。

一、准备工作

  1. 下载安装包

    安装包下载:https://pan.quark.cn/s/c3fbf7e602b4

  2. 硬件和系统要求

    • 操作系统:Windows Server 2008 / Windows 7 / Windows 10(64位推荐)。
    • 内存至少 2GB(最好 4GB 以上)。
    • 磁盘空间至少 15GB(Oracle 软件和示例数据库都需要空间)。
  3. 关闭不必要软件

    • 关闭杀毒软件(安装过程中可能被拦截)。
    • 关闭其他占用大量内存的程序。

二、安装 Oracle 11.2.0.4

  1. 双击运行安装包

    • 双击 oracle11.2.0.4.exe,弹出安装向导。
    • 如果是 Windows 10/11,可能会提示“允许此应用对你的设备进行更改吗?” → 点  “是”
  2. 配置安全更新(可选)

    • 邮箱和密码可不填(只是接收 Oracle 的安全公告)。
    • 取消勾选“我希望通过 My Oracle Support 接收安全更新”。
    • 点  “下一步”
  3. 选择安装类型

    • 一般选  “创建和配置数据库” (会自动帮你装好数据库实例)。
    • 如果只是装软件不建库,选“仅安装数据库软件”。
    • 点  “下一步”
  4. 选择系统类

    • 桌面电脑选  “桌面类”
    • 服务器选  “服务器类”
    • 点  “下一步”
  5. 典型安装配置

    • Oracle 基目录:默认 C:\app\用户名\product\11.2.0\dbhome_1(可改路径)。
    • 全局数据库名:默认 orcl(建议不改,后面连接要用这个名字)。
    • 管理口令:设置一个密码(记住,后面登录用)。
    • 点  “下一步”
  6. 先决条件检查

    • 安装程序会自动检测系统是否满足要求。
    • 如果有报错(比如缺少补丁),先解决再继续。
    • 没问题就点  “下一步”
  7. 安装概要

    • 核对安装路径、数据库名等信息。
    • 确认无误点  “安装”
  8. 等待安装完成

    • 进度条走完,会弹出“Database Configuration Assistant”窗口,创建数据库实例。
    • 这一步会自动启动监听器和数据库服务。
    • 完成后点  “确定”

三、首次连接数据库

  1. 打开 SQL*Plus

    • 在开始菜单找到  “Oracle – OraDb11g_home1” → “应用程序开发” → “SQL Plus”
  2. 登录数据库

    • 用户名:sys as sysdba
    • 密码:刚才设置的密码
    • 主机字符串留空(本地连接)。
    • 登录成功后,提示符会变成 SQL>
  3. 简单测试

    • 输入 select * from v$version;回车,能看到 Oracle 版本信息。

1、打开 cc 任一对话

2、然后 /config ,里面有个 Language,输入支持的语言,比如”Chinese”,” 简体中文”,“zh-CN”, 回车,关闭对话,

早上不可以直接设置,现在可以直接设置了,我设置的是”Chinese”

不可以的回车保存的,先输”English”, 然后~/.claude/settings.json 改成 “language”: “Chinese”, 或者直接去配置文件里改


📌 转载信息
转载时间:
2026/1/8 12:28:29

前言

最近 opencode 似乎爆火了,我也在自己电脑上下载了一个(搭配 oh-my-opencode)试了一下,用 Anthropic 正版的账号走浏览器登录(OAuth)是没问题的,但用公益站(AnyRouter 等)、中转站(claude-rely-servicesub2api 等)、本地代理(CLIProxyAPIAntigravity-Manager 等)配置起来极其繁琐,苦不堪言

正文

假设你已经安装了 opencodeoh-my-opencode 可有可无),可以有两种方式去配置任何非官方模型渠道:

简单粗暴版(推荐,不折腾)

  1. 命令行输入 opencode auth login
  2. 选择 Anthropic
  3. 选择 Manually enter API Key
  4. 输入你的对应渠道的 API Key(这个我相信你肯定能自己找到并输入)
  5. 打开 opencode.json(mac 用户的话就在 ~/.config/opencode/opencode.json,其他平台需要搜一下文档之类的)
  6. provider 插入 anthropic 对象,重载 baseURL(这是最基础的 JSON 编辑,如果编辑出来有问题别找我,去让 AI 帮你改):
     "provider": { "anthropic": { "options": { "baseURL": "你的渠道的Claude Code API URL地址/v1" } },
       ...其他原有的配置
     } 

    注意,大概率要在渠道给你的 API_URL 后面加个 /v1,例如 WONG公益站的话就是 https://wzw.pp.ua/v1

  7. 改一下模型,因为渠道里用的模型名可能是 claude-sonnet-4-5-20250929claude-opus-4-5-20251101,在 opencode.json 里加入或修改字段:
    "model": "anthropic/claude-sonnet-4-5-20250929", // 或 anthropic/claude-opus-4-5-20251101 
  8. 如果用了 oh-my-opencode 则需要顺便配置一下 oh-my-opencode.json(mac 用户的话就在 ~/.config/opencode/oh-my-opencode.json,其他平台需要搜一下文档之类的),把里面全部用到 claude-* 的模型都改一下:
    "model": "anthropic/claude-sonnet-4-5-20250929" // 或 anthropic/claude-opus-4-5-20251101 

自定义供应商

  1. 命令行输入 opencode auth login
  2. 选择 Other
  3. 输入你渠道名,英文全小写,这个就是 provider id(例如我们这里输入 test
  4. 输入你的对应渠道的 API Key(这个我相信你肯定能自己找到并输入)
  5. 打开 opencode.json(mac 用户的话就在 ~/.config/opencode/opencode.json,其他平台需要搜一下文档之类的)
  6. provider 插入新对象,把你的渠道加进去(这是最基础的 JSON 编辑,如果编辑出来有问题别找我,去让 AI 帮你改):
     "provider": { "test": { "npm": "@ai-sdk/anthropic", "name": "你的渠道名,用于显示到opencode的界面的", "options": { "baseURL": "你的渠道的Claude Code API URL地址/v1" }, "models": { "claude-sonnet-4-5-20250929": { "name": "Claude 4.5 Sonnet", "attachment": true, "limit": { "context": 1048576, "output": 65535 }, "modalities": { "input": [ "text", "image" ], "output": [ "text" ] } }, "claude-opus-4-5-20251101": { "name": "Claude 4.5 Opus", "attachment": true, "limit": { "context": 1048576, "output": 65535 }, "modalities": { "input": [ "text", "image" ], "output": [ "text" ] } } } },
       ...其他原有的配置
     } 

    注意,大概率要在渠道给你的 API_URL 后面加个 /v1,例如 WONG公益站的话就是 https://wzw.pp.ua/v1

  7. 改一下模型,因为渠道里用的模型名可能是 claude-sonnet-4-5-20250929claude-opus-4-5-20251101,在 opencode.json 里加入或修改字段:
    "model": "test/claude-sonnet-4-5-20250929", // 或 test/claude-opus-4-5-20251101 
  8. 如果用了 oh-my-opencode 则需要顺便配置一下 oh-my-opencode.json(mac 用户的话就在 ~/.config/opencode/oh-my-opencode.json,其他平台需要搜一下文档之类的),把里面全部用到 claude-* 的模型都改一下:
    "model": "test/claude-sonnet-4-5-20250929" // 或 test/claude-opus-4-5-20251101 

注意,记得把这里的 test 换成你自己的 provider id

效果


我们注意到,效果图2 用的是 sonnet4.5 出来的是 sonnet3.7,参考这个:

限制

  • 某些平台禁止非 Claude Code CLI 使用(如 88codeWONG公益站的Claude Code 0.25倍率专属分组

    WONG公益站可以用 default 分组,但这样就是 1 倍率了,小心使用…
    如果有大佬知道咋解决请在评论区里教教我

  • cc-switch 这种改 claude配置的工具对 opencode 没啥用,除非弄个 opencode-switch(不知道有没有)

总结

我们的保姆级教程就到这了,我也就用了半小时 opencode,目前感觉 UI 很炫酷,然后能自动识别和使用 claude code 的 skill 之类的,还自动用了 ralph 这个神器去防止会话自行终止(挂机摸鱼必备),要是能把更多公益站和中转站对接进来就好了!

记得点赞收藏~(跪谢)

引用


📌 转载信息
原作者:
jnx
转载时间:
2026/1/7 19:05:17