如何对应到各套餐
BYOK 在社区版免费、在团队版包含(每活跃开发 $10/月,另外支付您自己的 token 费用)、在企业版是两个选项之一(另一个是 Kodus 托管的 API 密钥)。
BYOK 如何工作
BYOK 是提供商优先的:您连接一次提供商,把想要的模型添加到该提供商上,然后将这些模型路由到 Kody 的各个任务。/byok 界面有三个标签页:
提供商
用您的密钥连接提供商,并在每个提供商上启用模型。计数徽章显示您已连接的提供商数量。
路由
选择每个任务运行哪个模型 — 为所有任务设一个默认模型、一个可选的备用模型,以及按 agent 的覆盖。
预算
为您已连接的所有模型设置一个可选的月度开销上限。
谁可以编辑此项。 BYOK 页面仅限 Owner — 连接、测试和删除密钥需要 Owner 角色。其他角色(Billing Manager、Repo Admin、Contributor)无法访问
/byok。参见工作区角色。连接提供商
1
打开 BYOK 设置
访问 app.kodus.io/byok。在全新的工作区中,您会看到连接您的第一个提供商。
2
选择一个提供商
提供商网格分为两部分:
- 提供商 — 只需一个 API 密钥即可连接的一等提供商(OpenAI、Anthropic、Google AI Studio、OpenRouter、Novita……)。
- 自定义 — 指向您自己端点或运行任意模型的提供商:OpenAI-compatible、Anthropic-compatible、Google Vertex AI 和 Amazon Bedrock。它们带有 Custom endpoint 标记。
3
添加模型
选择一个提供商会打开它的Add a model 表单。粘贴一次 API 密钥(之后添加到该提供商的每个模型都会复用它),然后选择模型:
- 如果 Kodus 能列出该提供商的模型,您会得到一个下拉菜单。
- 否则(自定义端点、自托管,或未配置平台密钥时),请输入精确的模型 ID。
4
5
测试并保存
点击测试以探测提供商,或点击测试并保存以运行测试并在成功后持久化。您可以往该提供商上添加任意数量的模型 — 密钥只需粘贴一次。
保存前先测试
测试按钮会在配置可能破坏真实审查之前先验证它。它的具体行为取决于提供商:
在聊天探测这条路径上,Test 还会根据模型自身的规则验证您配置的调优参数,并返回一个提前的、具体的错误,而不是保存一个模型会静默忽略的配置:
- 一个 always-thinking 模型不会遵守的温度(它被固定为
1— 参见温度)。 - 在一个始终推理且无法禁用推理的模型上把推理设为 Off。
由于聊天类提供商现在会实际调用真实模型,模型 ID 中的拼写错误会在 Test 阶段被捕获,而不是等到您第一次审查时 — 响应会返回
Model not found。路由:每个任务运行哪个模型
一旦您连接了两个或更多模型,路由标签页就决定每个任务运行什么。路由是扁平的:在您覆盖之前,每个任务都使用默认模型。1
策略
今天生效的是 Manual · you choose(手动 · 您选择)。Auto · Kodus optimizes(自动 · Kodus 优化)即将推出。
2
默认值
- Model for all tasks(所有任务的模型) — 除非被覆盖,否则每个任务都使用的那个模型。
- Fallback(备用,可选) — 一个不同的模型,当任务的模型失败时(密钥错误或过期、没有额度,或提供商宕机,在其自身重试之后),Kody 会在它上面重跑一次调用。
3
按 agent
不同的 Kody 任务(代码审查、Kody Rules、聊天、摘要等等)可以各自运行不同的模型 — 用更贵的模型做深度审查,用更便宜的模型做摘要。无法执行某个任务的模型会在那一行被禁用并带有提示,从而在您保存之前就阻止它。
只连接了一个模型时,路由会被跳过 — 每个任务都使用那个模型。请连接第二个模型,让路由变得有意义。
选择模型
您的提供商所提供的任何模型都可用。如果您不确定从哪里开始,以下是代码审查的稳妥选择:Claude Sonnet / Opus
最佳平衡 / 旗舰质量。 Anthropic 的自适应扩展思考和强大的跨文件分析。密钥:console.anthropic.com。
Gemini Pro
最大上下文。 Google 的旗舰模型 — 在大型 PR 和 monorepo 上最强。密钥:aistudio.google.com/apikey。
GPT(最新)
快速且稳定。 OpenAI 的旗舰产品线 — 低延迟可靠、知识面广。密钥:platform.openai.com/api-keys。
Kimi / GLM(编码方案)
通过订阅最便宜。 Moonshot 的 Kimi 和 Z.ai 的 GLM 提供统一定价的编码方案,可封顶月度开销。参见下方的连接 Kimi 和 GLM。
**我们的默认推荐:**从 Claude Sonnet 开始以获得最佳整体体验。如果成本是优先项,GLM Coding Plan 或 Kimi Code Plan 提供统一月费的订阅。请输入您的提供商所文档化的精确模型 ID — Kodus 会据此推导出显示名称。
连接 Kimi (Moonshot) 和 GLM (Z.ai)
Moonshot 和 Z.ai 都在按 token 付费的开发者 API 之外,各自提供一个位于不同端点上的订阅方案。每个方案都是一个独立的账号,拥有各自的密钥 — 请选择与您手头密钥匹配的基础 URL。- Kimi (Moonshot AI)
- GLM (Z.ai)
Kimi Code Plan 文档记录的上限为 30 个并发请求 — 请设置
maxConcurrentRequests=30。始终推理的 Kimi 变体(例如 kimi-k2p7-code、kimi-k3)会把温度锁定为 1,且无法关闭推理 — 参见温度。支持的提供商
- OpenAI
- Google Gemini
- Anthropic Claude
- Novita AI
- OpenRouter
- Google Vertex AI
- Amazon Bedrock
- OpenAI Compatible
- Anthropic-compatible
推理 / 扩展思考
Add a model 表单在高级设置下提供一个 Thinking 开关(Off / Low / Medium / High / Custom)。可用选项反映模型实际能做什么:- 无法推理的模型被锁定为 Off 并带有说明。
- 仅在某些级别推理的模型(例如 GPT-5 的 medium/high)会禁用无效的级别。
- 默认推理的模型会以 Medium 作为合理的起点。
预设级别
当您选择 Low / Medium / High 时,Kodus 会自动将该级别转换为每个提供商的原生格式:Kimi 和 GLM 目前将推理暴露为单一的开/关标志。选择 Low、Medium 或 High 都会发出相同的 payload(启用 thinking)。始终推理的变体(Kimi
k2p7-code/k3、GLM-5.3)会无条件推理 — 它们无法被设为 Off,表单会禁用该选项。自定义 JSON 覆盖
在 Thinking 开关中选择 Custom 会显示一个 JSON 文本框。直接粘贴提供商选项 — Kodus 会自动把它们包裹在当前提供商的命名空间下。您无需了解 Vercel AI SDK 的路由规则。 在以下情况使用:- 您需要为 Claude 设置特定的
budgetTokens值(而不是预设的 effort 映射) - 您希望针对 OpenAI-compatible 提供商按模型启用/禁用 thinking
- 您想设置推理之外的字段 — 缓存、服务档位、安全设置、
user标签等。覆盖会被合并进providerOptions,因此任何适配器字段都可以透传 - 提供商发布了一个 Kodus 尚未包裹的新字段
示例(直接粘贴 — 无需命名空间)
- Anthropic
- Google Gemini
- OpenAI
- OpenRouter
- OpenAI-compatible(Kimi、GLM 等)
将 Claude 的思考预算精确覆盖为 20,000 tokens:启用提示缓存(非推理示例):
手动指定命名空间(进阶用户)
如果您的 JSON 顶层已经以一个已知的命名空间键开头(即下方映射表中的任意键),Kodus 会保持原样不动。当您想混合多个提供商命名空间或希望显式书写时很有用:注意事项
- 仅支持有效的 JSON。 遗漏逗号或尾随逗号会破坏解析,Kodus 会忽略覆盖。
- 优先级:JSON 覆盖会完全替换 effort 预设对应的命名空间块 — 如果您覆盖了
anthropic.thinking但漏掉anthropic.effort,那个字段就不会被发送。OpenRouter routing(固定提供商 / 允许回退)是唯一例外:它会与您在openrouter下的覆盖进行深度合并。 - 未知提供商 = 不自动包裹。 如果您的 BYOK 提供商不在上表中,Kodus 会原样透传 JSON。
温度
温度位于高级设置下,该字段会根据模型的规则自适应 — 规则由提供商设定,而非表单猜测:在聊天探测类提供商上,Test 会根据这些规则验证您设置的温度,并在保存前返回错误 — 这样您就永远不会持久化一个模型不会遵守的值。
固定 OpenRouter 上游提供商
OpenRouter 是一个路由器 — 当您请求某个模型(例如moonshotai/kimi-k2)时,它会将调用转发到若干上游提供商之一(Moonshot 直连、Together、Groq、Fireworks、Novita……)。每次调用都可能落到不同的后端。这很方便,但会引入隐性的差异:
- 质量漂移 — 上游以不同精度运行(FP8、INT4、完整),对相同提示会给出微妙不同的输出
- 工具调用不一致 — 一些后端对函数调用的支持方式不同,会导致格式错误的工具使用
- 推理格式差异 — 一个上游支持
reasoning_effort,另一个只支持thinking.enabled,还有的两者都忽略 - 延迟波动 — 随着路由变化,p50 可能在两次调用之间从 800ms 跳到 4s
- 速率限制意外 — 您会在自己未显式选择的后端上撞到配额
如何固定
当您的 BYOK 提供商是 OpenRouter 时,Advanced settings 面板会显示一个 OpenRouter routing 区块,包含两个字段:- Pin providers (in order) — 上游名称的逗号分隔列表(例如
moonshot, together)。OpenRouter 会按顺序尝试,并使用第一个可用的。 - Allow fallbacks — 关闭时,若没有任何被固定的提供商可用,请求会硬失败。开启时(默认),OpenRouter 可以回退到任意其他服务该模型的上游。
进阶:原始 JSON 覆盖
如果您需要order 和 allow_fallbacks 之外的字段(例如 ignore、data_collection、require_parameters),请在 Advanced settings 中将 Thinking 切换到 Custom,并粘贴完整的路由 payload — 它会与任何推理配置一起被合并进 providerOptions:
并发与速率限制
maxConcurrentRequests 字段(高级设置下)限制 Kodus 并行向您的提供商发送的未完成请求数。多数情况下默认值即可 — 但有严格并发限制的订阅方案需要显式设置。
应设置的值
何时调整
上调
- Moonshot/OpenRouter 上有高档位充值,并希望在大型 PR 上获得更高吞吐
- 把 GLM Coding Plan 升到了 Max 并希望用满 30 并发预算
- 多文件 PR 上审查感觉被串行化,而您并未看到 429
下调
- 您在审查日志中看到
429或Too much concurrency错误 - 提供商仪表板提示速率限制警告
- 希望在更多 PR 之间节省 Coding Plan 窗口(5 小时/每周)
与备用模型的交互。 当任务的模型撞到 429 并且 Kody 故障转移到路由备用模型时,备用模型自身的
maxConcurrentRequests 生效。将备用配置到不同提供商上并设一个宽松的值,是在主模型使用紧张订阅时吸收突发流量的好办法。最佳实践
安全
专用密钥
为 Kodus 创建独立的 API 密钥,便于审计使用情况和轮换密钥。
定期轮换
定期轮换密钥,并在 BYOK 设置中更新。
监控使用
检查您的提供商仪表板是否有异常模式。
安全存储
切勿将密钥提交到代码仓库。Kodus 对密钥进行静态和传输中加密存储。
路由策略
- 为默认和备用使用不同的提供商(例如默认用 Anthropic,备用用 Google)。可防止提供商特定的中断。
- 带有紧张并发限制的订阅(GLM Coding Plan Lite/Pro、Kimi Code Plan)不适合单独使用 — 请配对一个按 token 付费的备用,避免突发 PR 把资源吃光。
- 在按 agent 下,把繁重任务(深度代码审查)路由到您最强的模型,把轻量任务(摘要、聊天)路由到更便宜的模型。
故障排查
点击 Test 时出现 'Invalid API key'
点击 Test 时出现 'Invalid API key'
- 复制密钥时不要带多余的空格、引号或尾随换行。
- 确认计费已启用且账户有余额。
- 对于 GLM Coding Plan / Kimi Code Plan 密钥,请确认基础 URL 与方案匹配 — 订阅密钥不适用于开发者 API 端点,反之亦然。
点击 Test 时出现 'Model not found'
点击 Test 时出现 'Model not found'
- 对于聊天探测类提供商(Anthropic-compatible、OpenAI-compatible、Novita),Test 会向模型发送一次真实请求,因此错误或拼写有误的模型 ID 会在这里失败 — 这是预期行为,也比在审查时才失败更好。
- 请从提供商的仪表板复制精确的模型 ID。有些提供商使用深层路径(例如 Fireworks
accounts/fireworks/models/kimi-k2p7-code)或对版本有不同拼法(k2p7与k2.7)。
点击 Test 时出现 'Endpoint not found'
点击 Test 时出现 'Endpoint not found'
- 验证基础 URL 与提供商完全匹配(对某些提供商来说,尾部斜杠很重要)。
- 对于 OpenAI-compatible 提供商,端点通常是
{baseURL}/chat/completions(Kodus 会补上该路径)。
Test 拒绝我设置的温度或推理
Test 拒绝我设置的温度或推理
- 有些模型固定温度或始终推理(Kimi
k2p7-code/k3、GLM-5.3;Claude 4.7+/GPT-5 则完全移除温度)。Test 会根据模型的规则验证您的调优参数并返回具体消息 — 请照做(让温度保持未设置或使用要求的值;不要在始终推理的模型上把推理设为 Off)。参见温度。
'Rate limited' 或 'Too much concurrency'
'Rate limited' 或 'Too much concurrency'
- 在高级设置中降低最大并发请求数。
- 在 GLM Coding Plan Lite/Pro 上,保持 1 个并发。如果需要更高吞吐,升级到 Max(30 并发)。
- 在 Kimi Code Plan 上,文档上限为 30 并发。
自托管环境变量未显示
自托管环境变量未显示
- 如果 Kodus 通过
.env(自托管固定模式)配置,BYOK 界面会显示一个蓝色信息横幅,标明当前活动的提供商/模型 — 出于安全考虑,密钥不会显示。 - 连接一个模型并保存会覆盖
.env配置。
高或意外的成本
高或意外的成本
- 推理会增加 token 消耗。如果成本飙升,将 Thinking 从 Medium 降到 Low,或在按 agent 下把繁重任务路由到更便宜的模型。
- 查看提供商仪表板中的按模型分解,并在预算标签页下设置上限。
常见问题
我可以随时切换提供商吗?
我可以随时切换提供商吗?
可以。更改会在下一次审查生效 — 无需重新部署。
如果我的 API 密钥用完积分会怎样?
如果我的 API 密钥用完积分会怎样?
如果配置了路由备用模型,审查会自动切换到备用。没有备用时审查会失败并返回错误。请始终配置备用模型。
默认 / 备用系统如何工作?
默认 / 备用系统如何工作?
每个任务都使用默认模型,除非您在路由中按 agent 覆盖它。如果任务的模型失败(速率限制、5xx、超时、密钥错误),Kody 会在备用模型上重试一次。您只为真正处理调用的那个提供商付费。
不同任务可以使用不同模型吗?
不同任务可以使用不同模型吗?
可以 — 这正是路由 → 按 agent 的用途。把深度代码审查路由到强模型,把摘要或聊天路由到更便宜的模型。要让路由有意义,您至少需要连接两个模型。
你们是否安全存储我们的 API 密钥?
你们是否安全存储我们的 API 密钥?
是的。密钥在静态和传输中加密,从不以明文记录。BYOK 状态端点从不返回原始密钥。
我可以使用自托管 LLM(例如 Ollama、vLLM)吗?
我可以使用自托管 LLM(例如 Ollama、vLLM)吗?
可以 — 通过 OpenAI Compatible 提供商(位于自定义下)。输入端点的基础 URL、它暴露的模型 ID,以及占位 API 密钥(多数自托管运行时忽略密钥请求头,但仍要求提供)。