文档
Mistral Vibe CLI
Vibe CLI 通过手动编辑的 TOML 配置块连接第三方端点,而 Mistral 官方文档以网关作为示例。只需在 [[providers]] 下添加五行,agent 就可以使用你的密钥运行 Claude 或 GPT。
在 .vibe/config.toml 中添加五行 [[providers]] 配置块 — api_base、api_key_env_var、api_style — 将 Vibe CLI 指向 Kunavo,密钥保存在环境变量而非文件中。
# ./.vibe/config.toml (project) or ~/.vibe/config.toml (user).
# "Project-level configuration takes precedence over user-level
# configuration", and the project file loads only in a trusted folder.
active_model = "sonnet-kunavo"
[[providers]]
name = "kunavo"
api_base = "https://api.kunavo.com/v1"
api_key_env_var = "KUNAVO_API_KEY"
api_style = "openai"
backend = "generic"
[[models]]
name = "claude-sonnet-5"
provider = "kunavo"
alias = "sonnet-kunavo"
# Optional, and documented on the api-keys-profiles page:
# temperature sampling temperature
# input_price indicative per-input cost, fed to --max-price
# output_price indicative per-output cost, fed to --max-price
# Take the two prices from the table further down this page if you want
# --max-price to mean anything.
# The key never goes in config.toml. api_key_env_var names the variable:
# export KUNAVO_API_KEY="sk-kn-..."api_base 应保留 /v1。 Mistral 的参考文档仅将该字段描述为“服务商 API 的 Base URL”,并未说明后缀规则;能确定这一点的是它自己在两处文档操作示例中使用的值:api_base = "https://openrouter.ai/api/v1",以及 v2.25.5 源码中的实现:openai 适配器只会向 api_base 追加 /chat/completions,不会追加其他内容;CLI 内置的 Mistral 服务商也出于相同原因默认使用 /v1 基础地址。去掉该后缀后,请求会访问根路径上的 /chat/completions,产生 404,而不是身份验证错误。curl 可以让你在十秒内确认;之后客户端的行为则需要你通过 Vibe 验证。temperature 字段,而一些 Claude ID——包括 claude-sonnet-5 和 claude-opus-5——在上游对整个三个采样参数组都会返回 400。Kunavo 会在发送请求前,为拒绝这些参数的特定 ID 删除这些参数,因此客户端无条件添加该字段也不会导致请求被直接拒绝。因此,在 [[models]] 预设中使用 temperature 键在此处不会造成问题,但对这些 ID 也不会产生效果。sk-kn- 开头),并充值 $10 起——调用费用从该余额中扣除,失败的调用不会收费。随后,控制台会打开 Mistral Vibe CLI 设置页面。分步操作
- 在
/app/keys创建密钥并复制——它只会显示一次。 - 打开
~/.vibe/config.toml(或在你希望应用此配置的代码库中创建./.vibe/config.toml),然后粘贴上面的配置块。没有可供点击的服务商添加流程:Mistral 文档说明此文件需要手动编辑,而/config和/model只能在已有预设之间切换。 - 导出你在
api_key_env_var中指定的变量——export KUNAVO_API_KEY="sk-kn-..."。Mistral 的凭据页面说明,CLI 启动时会从~/.vibe/.env文件加载凭据;其第三方服务商示例则通过 shellexport提供非 Mistral 密钥。 - 为你需要的每个 ID 添加一个
[[models]]预设,并为每个预设配置独立的alias,然后将active_model指向其中一个别名。别名仅在本地使用——/model会列出该别名,而实际发送到端点的是name中的 ID。 - 在受信任的文件夹中运行
vibe,并交给它一个会操作文件的任务,而不是打个招呼。首次运行时读取并编辑文件,可以验证工具调用是否正常;服务商配置错误通常会在这一步显现。
已于 2026年9月21日 对照 Mistral 的 Vibe Code CLI 配置页面 检查。第三方设置会发生变化;如果这里的字段名称不再与你看到的内容一致,应以该页面为准,而不是本页。
调试客户端前先验证
一个请求即可确定故障来自端点、密钥还是配置文件。如果返回 JSON,则相同的基础 URL 和密钥可以在 Mistral Vibe CLI 中使用。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."字段中应填写哪个模型 ID
每个文本模型都可通过模型 ID 访问——实时列表见 GET /v1/models,包含价格的目录见模型页面。费率单位为每 1M token 的美元,格式为输入 / 输出。
| 模型 ID | Kunavo 输入 / 输出 | 它在 Mistral Vibe CLI 中的位置 |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | 日常最常用的工作别名——大多数时候 active_model 指向它 |
claude-opus-5 | $3.50 / $17.50 | 用于规划模式的第二个预设,因为错误的计划代价最高 |
claude-haiku-4-5 | $0.70 / $3.50 | 用于低成本轮次和快速文件分类的独立别名,方便切换 |
gpt-5-6-sol | $2.00 / $12.00 | 在同一个服务商配置块下使用不同模型系列,并沿用同一密钥 |
并非所有流量都会发往此服务商
这是配置块无法说明的部分,而且它与 Vibe 有关,并非 Kunavo 特有。在 v2.25.5 中,只要 Mistral 服务商可用,CLI 就会将后台“utility”补全请求——用于命名对话和工作树的小型调用——发送给 Mistral 自己的 mistral-vibe-cli-fast 模型;随附的默认配置始终会配置该模型,即使会话当前使用的是你的活动模型。源码明确说明了优先选择方式和回退行为:如果没有可用的 Mistral 服务商,utility 调用就会转而使用会话的活动模型。
因此,如果你希望会话中的每个请求都发往你配置的服务商,则必须满足以下条件之一:
- 未设置
MISTRAL_API_KEY,因此无法解析快速模型的凭据,实用程序调用便会回退;或者 - 通过
allowed_models将快速模型的别名排除在外,从而通过允许列表而非密钥产生相同效果。
Smart Approve 分类器的行为更进一步——其 2.25.1 版变更日志指出,无论会话的活动模型是什么,它都会使用快速 Mistral 模型运行——因此,实际上仅使用 Kunavo 的会话应使用 accept-edits 或 plan,而不是 Smart Approve。这些情况不会影响上面的配置;只是说明服务商配置块控制的是模型轮次,而非二进制程序发送的每个数据包。
其他 api_style 值
文档列出 api_style 的一个值,并将其作为示例介绍:"openai"。v2.25.5 源代码还包含另外四个值——"anthropic"、"openai-responses"、"reasoning" 和 "vertex-anthropic"——它们位于一个普通字典中,没有验证机制,因此拼写错误只会在发出请求时出现,而不会在加载文件时提示。请将这些值视为已通过源代码确认、但未记载于文档中的选项;如果尝试 Anthropic 风格,还要注意一个陷阱:其适配器的端点为 /v1/messages,因此这里的 api_base 必须是无后缀的源站地址 https://api.kunavo.com,不能带 /v1——这与上面的配置块恰好相反。对于以 claude- 开头的 ID,Kunavo 确实会响应 /v1/messages。本页展示 openai 风格,因为这是 Mistral 文档中介绍的选项。
常见问题
如何在 Mistral Vibe CLI 中添加自定义服务商?
在 config.toml 中手动配置——没有添加服务商的界面。Mistral 配置页面说明,工作目录中的 ./.vibe/config.toml 和主目录中的 ~/.vibe/config.toml 都可使用,且项目文件优先;其示例包含一个 [[providers]] 表,其中设置 name、api_base、api_key_env_var、api_style 和 backend;还包含一个 [[models]] 表,其中设置 name、provider 和 alias;active_model 则指向相应别名。密钥本身不会写入文件:api_key_env_var 指定存储密钥的环境变量。
Vibe CLI 的 api_base 末尾需要加 /v1 吗?
对于 api_style “openai”,需要。Mistral 配置参考文档只将 api_base 描述为服务商 API 的基础 URL,并未规定后缀;但其两个页面的示例都使用以 /v1 结尾的值,v2.25.5 源代码也解释了原因:OpenAI 风格的适配器只会将 /chat/completions 附加到 api_base,不会附加其他内容;CLI 内置的 Mistral 服务商也默认使用以 /v1 结尾的基础 URL。因此,Kunavo 应使用 https://api.kunavo.com/v1。省略该后缀会导致 404,而不是身份验证失败。未记载于文档中的 “anthropic” 风格则相反——其端点为 /v1/messages,因此 api_base 不得带有 /v1。
Mistral Vibe CLI 能运行 Claude 模型吗?
可以,通过服务商预设实现,而不是切换开关。api_style 指定的是传输协议,而非供应商;模型预设的 name 字段会按原样发送到端点,因此 Claude ID 会由你配置的端点解析,而不是由 CLI 内部解析。Mistral 官方文档通过第三方网关展示了这种模式,因此这属于有文档说明的路径,而非变通方法。
配置了自己的服务商后,为什么 Vibe CLI 仍会调用 Mistral?
因为后台实用程序补全请求会单独路由。在 v2.25.5 中,只要 Mistral 服务商可用,CLI 就会优先使用 Mistral 自己的 mistral-vibe-cli-fast 模型处理命名对话和工作树等后台小型调用;随附的默认配置始终会设置该服务商,即使会话的活动模型是其他模型。没有可用的 Mistral 服务商时,CLI 会回退到活动模型;实际上,这意味着 MISTRAL_API_KEY 未设置,或通过 allowed_models 排除了该别名。Smart Approve 分类器的限制更严格:其变更日志说明,无论会话的活动模型是什么,它都会使用快速 Mistral 模型运行。
Kunavo 测试过 Mistral Vibe CLI 吗?
没有。2026 年 9 月 21 日核对的是 Mistral 自己的文档;字段名称、顺序以及是否需要 /v1 的问题均据此整理,基础 URL 的判断则通过 mistral-vibe 软件包 v2.25.5 的源代码进行了确认。Kunavo 尚未通过其端点运行 Vibe 会话,也未对流式传输、工具往返调用或客户端在长任务中的行为作出任何声明。你可以单独使用本页中的 curl 命令确认端点和密钥;其余部分则需要你与客户端自行处理。
Vibe CLI 从哪里读取 API 密钥?
从 api_key_env_var 中指定的环境变量读取;对于 Kunavo 提供商配置块,无论你将该变量命名为何,例如 KUNAVO_API_KEY。Mistral 的凭据页面按优先级列出了其自有密钥的三个来源:交互式设置流程会将密钥写入 ~/.vibe/.env;已导出的环境变量优先于该文件;也可以直接编辑 ~/.vibe/.env,CLI 会在启动时加载它。其第三方配置示例使用 shell export。该页面还指出,.env 仅用于存放凭据,常规配置应放在 config.toml 中。