Kilo Code 免费 OpenRouter 模型:筛选、工具验收与限额排查
先筛选候选,再验收工具调用闭环
首次在 Kilo Code 中检查免费模型,可以从 cohere/north-mini-code:free 开始。其公开端点声明输入、输出价格为零,并支持 tools 与 tool_choice。这些字段让它具备参加小型工具调用测试的资格,尚不能证明它最适合你的仓库。
我们于 2026 年 10 月 23 日查阅官方文档并读取 OpenRouter 公开目录,验证了下文的元数据命令。我们没有发送推理请求、运行 Kilo 工具调用、测量延迟或比较代码质量。先用这份带日期的快照定位候选,再选择能在你安装的 Kilo 版本中完成同一测试任务的模型。
选模型前,先确认提供商
Kilo 内置提供商与直接连接 OpenRouter 使用不同的账户、路由和限额。排查免费模型失败前,先检查当前配置的提供商名称。
| 连接方式 | 账户与控制范围 | 免费的含义 |
|---|---|---|
| Kilo 提供商,经由 Kilo Gateway | Kilo 账户,Kilo 管理路由 | kilo-auto/free 等 Kilo 免费项目,遵循其当前条件。 |
| OpenRouter 提供商,使用自己的 OpenRouter 密钥 | OpenRouter 账户、用量记录、路由与限额 | 目录中准确的免费条目,或 openrouter/free。 |
将自己的 OpenRouter 密钥接入 Kilo,有时也称为 BYOK。它与 OpenRouter 的上游提供商 BYOK不同。后者通过上游提供商密钥调用,另有计费规则。Kilo 免费额度、上游提供商额度都不会转移给直接连接的 OpenRouter 账户。参见官方连接方式比较与 Kilo 提供商文档。
复现免费候选筛选
请在安装了 curl 和 jq 的 Bash 或 Zsh 中运行以下命令。它读取公开模型目录,不发送凭据或仓库内容,也不调用推理接口。30 秒仅限制这次元数据下载,不是 Kilo 任务的超时设置。
set -o pipefail
curl -fsS --max-time 30 https://openrouter.ai/api/v1/models |
jq -er '
.data
| if type == "array" then . else error("missing data array") end
| map(select(.id | endswith(":free")))
| map(select((.pricing.prompt | tonumber?) == 0
and (.pricing.completion | tonumber?) == 0))
| map(select((.supported_parameters // []) | index("tools")))
| if length > 0 then . else error("no matching candidates") end
| sort_by(.id)[]
| [.id, .pricing.prompt, .pricing.completion,
.context_length, .top_provider.max_completion_tokens] | @tsv'
每行依次输出完整 ID、输入价格、输出价格、上下文长度,以及目录首选提供商的最大输出 token 数。价格缺失或不能解析为数值时,不会通过筛选。HTTP 失败、JSON 无效或没有候选时,命令以失败状态退出。遇到失败,应先检查原因,不能继续把旧截图当成当前模型目录。
本次快照共包含 468 个目录条目,其中 17 个 ID 以 :free 结尾,输入、输出价格均为零,16 个同时列出 tools。nvidia/nemotron-3.5-content-safety:free 未列出 tools,因此被排除。这个完整变体筛选也排除了付费 ID 与路由器 ID。openrouter/free 是另一种路由选择,下文单独说明。
以下是 16 个候选中的两个例子,用于说明最大输出长度也值得核对。这是元数据示例,不是性能排名。
| 完整模型 ID | 上下文长度,单位为 token | 首选提供商最大输出,单位为 token | Kilo 工具调用验收 |
|---|---|---|---|
cohere/north-mini-code:free |
256000 | 64000 | 未运行 |
nvidia/nemotron-3-super-120b-a12b:free |
262144 | 235929 | 未运行 |
这些上限不是建议的输入长度,也不保证长请求能成功。系统指令、工具定义、文件内容和之前的工具结果都会占用上下文。免费变体的限制可能与付费模型不同。重新接手项目时,再运行一次命令。
检查目录条目背后的端点
模型层面的 tools 字段,不保证每条提供商路由都支持你的请求。固定提供商前,先检查端点元数据。下面这个公开 GET 请求输出第一个示例当前的端点记录。
set -o pipefail
curl -fsS --max-time 30 \
'https://openrouter.ai/api/v1/models/cohere/north-mini-code:free/endpoints' |
jq '.data.endpoints[] | {provider_name, pricing, context_length,
max_completion_tokens, supported_parameters, supports_tool_choice}'
本次查询返回一个 Cohere 端点,token 价格为零,同时包含两个工具参数。这仍然只是端点声明的能力,不能证明 Kilo 已发送有效参数、正确接收工具结果。
OpenRouter 的提供商路由文档说明,默认情况下,tools 是路由偏好。有支持该参数的提供商时,路由会优先使用兼容端点;如果没有任何提供商支持,参数可能被忽略。require_parameters: true 则要求提供商支持请求中的全部参数,因此也可能导致没有符合条件的端点。
对于 Kilo OpenRouter 文档所述版本,将以下模型配置合并进 kilo.json,保留原有连接配置。Kilo 会直接转发模型 options,不校验其中的取值。
{
"provider": {
"openrouter": {
"models": {
"cohere/north-mini-code:free": {
"options": {
"provider": { "require_parameters": true }
}
}
}
}
}
}
数据政策需要另行核查。Nemotron 免费端点说明明确表示会记录使用情况,禁止上传机密信息或个人数据。如果隐私限制排除了唯一兼容端点,应停止使用这条路由。
做一次人工文件读取验收
在 Kilo 设置中打开 Providers,使用 OpenRouter 密钥页创建的密钥连接 OpenRouter,选中刚核查过的完整 ID。在一个仅含无敏感信息的 probe.txt 的文件夹里新建任务,文件中写一行独特内容。不要把这行内容放进提示词,也不要提前作为上下文附加。
使用以下提示词。
用文件读取工具读取 probe.txt,返回文件中的完整原文一行。
不要修改文件、执行命令、浏览网页或调用外部工具。
返回这一行后停止。
- 仅批准预期的文件读取,确认出现真实工具事件,且路径正确。
- 检查返回内容是否与文件一致,任务是否结束。猜出答案、只解释如何读文件,都不算通过。
- 达到五次模型请求或两分钟时取消,以先到者为准。这是本文建议的测试边界,不是提供商限额。
- 在 OpenRouter 用量记录中核对实际模型、提供商、请求次数和扣费金额。模型或费用偏离预期免费路由时,立即停止。
- 按下面的模板记录结果。读取通过后,再用另一个临时任务测试一处小修改,检查差异后再接入真实仓库。
日期与 Kilo 版本:
所选提供商/请求的模型 ID/实际模型与提供商:
目录价格与路由选项:
观察到的读取工具事件/原文一致/任务结束:
请求次数/扣费金额/错误正文:
结论:未运行、通过或失败
我们的人工验收记录为未运行。本次仅核查通过了目录与端点元数据。实际 Kilo 兼容性、扣费、编辑质量和延迟均未测量。读取通过,只能验证当前连接的工具调用往返,不能当成编程性能评测。即使用相同 OpenRouter ID,Cline 等仍在维护的客户端也需要单独验收。Roo Code 配置仅作历史参考,其扩展、Cloud 和 Router 已于2026 年 5 月 15 日关闭。
分开处理免费选择与费用控制
准确的 :free ID 必须真实存在。给付费 ID 加后缀,并不会创建免费条目。openrouter/free会按能力筛选,再随机选择免费模型,单独使用时仅在免费模型中路由。使用它时,要记录实际返回的模型;需要复现比较结果时,选用完整模型 ID。
免费变体规则明确提醒,models 回退列表可能继续尝试付费模型,每个回退模型按自己的价格计费。需要保持免费时,整个列表都应使用免费模型,另外核查付费插件和服务。赠金只能抵扣账单,不会改变模型价格。费用上限限制允许产生的扣费,也不会把付费路由变成免费路由。
当前公布规则为免费模型每分钟 20 次、每天 50 次请求。符合条件的累计额度购买后,每日上限提高到 1000 次,公开宣传门槛为 10 美元。购买额度是可选的付费行为。通过带身份验证的 GET /api/v1/key 查看 free_model_daily_requests,确认账户实际每日计数与档位;再查看 limit_remaining、effective_budget,确认适用费用限制。限额文档说明了豁免与门槛调整,不应仅凭 is_free_tier 推断限额。失败尝试可能占用每日次数,一个代理任务也可能产生多次模型请求。
先判断错误,再按边界停止
保留错误正文、请求标识、所选模型与提供商。结合 OpenRouter 错误文档判断,包括以 HTTP 200 开始、却在流式响应过程中报错的情况。
| 现象 | 判别步骤 | 停止条件 |
|---|---|---|
429 |
检查 X-RateLimit-*、Retry-After、提供商元数据与账户每日计数。OpenRouter 账户额度与上游负载需要分别处理。 |
每日额度耗尽时停止。短期限流应按提示等待,最多人工重试一次,重复失败即停止。换模型不会重置账户限额。 |
404,提及模型或没有端点 |
对照实时目录检查完整 ID,再检查端点与路由限制。ID 存在,也可能没有符合条件的路由。 | ID 修正或出现允许的路由前停止。重试不能创造端点,不能为跑通请求而删除隐私规则。 |
402,或预算相关 403 |
调整限制前,先看 error.metadata.limit_source 与账户用量页,核对付费回退、余额、密钥上限和工作区预算。 |
纯免费测试遇到意外计费路由时停止。查明究竟由哪一层限制后,再决定是否充值。 |
| 上下文错误,或只输出文字而不调用工具 | 检查准确端点、工具参数、批准设置和上下文预算,缩减为单文件验收。 | 最多进行一次修正后的测试。工具执行仍失败或达到请求边界时停止。 |
地域限制也可能产生 404,参见官方地域路由说明。只有状态码,还不足以判断原因。
代理背景见本站 Kilo Code 工具页,客户端差异见 Kilo Code 与 Cline 对比。