* fix(provider): honor base_url for google-genai and vertexai providers The google-genai and vertexai provider types silently ignored a configured base_url and always hit generativelanguage.googleapis.com (e.g. a Gemini- compatible proxy URL + key could not be used). Plumb the endpoint through to the @google/genai SDK via httpOptions.baseUrl: - kosong: add baseUrl to GoogleGenAIOptions and inject it into the client's httpOptions alongside the existing headers (the SDK merges headers and overrides the base host). - agent-core: forward provider.baseUrl in the google-genai and vertexai branches, with GOOGLE_GEMINI_BASE_URL / GOOGLE_VERTEX_BASE_URL env fallback. vertexai keeps deriving location from an aiplatform host. - docs: document base_url for both providers, noting the host root only must be given because the SDK appends the API version itself. Covered by unit tests asserting the URL reaches the kosong config and the SDK client's httpOptions. * fix(provider): use the effective base_url for vertex location detection The vertexai branch forwarded the endpoint from config `base_url` OR the GOOGLE_VERTEX_BASE_URL env fallback, but service-account detection (`hasVertexAIServiceEnv` / `vertexAILocation`) still derived the region from `provider.baseUrl` only. Supplying the regional endpoint via the env fallback (with a project but no explicit GOOGLE_CLOUD_LOCATION) therefore left location undefined and silently downgraded Vertex ADC to API-key Gemini routing. Resolve the effective base URL once and use it for both forwarding and location derivation, so the env fallback behaves exactly like `base_url`. Add a changeset for the kosong + agent-core patch release.
6.7 KiB
平台与模型
Kimi Code CLI 支持同时接入多家 LLM 平台——用 Kimi Code 托管服务一键登录、用 Anthropic API key 接 Claude、用 OpenAI 兼容协议连接第三方推理服务。每个供应商对应一种 API 协议,模型在供应商之上声明自己的名称、上下文长度和能力。本页介绍如何在 config.toml 里配置各种供应商。
支持的供应商类型
providers 表里的 type 字段决定使用哪种协议实现:
| 类型 | 协议 | 典型用途 |
|---|---|---|
kimi |
OpenAI 兼容 | Kimi Code 托管服务、Kimi Platform API 密钥 |
anthropic |
Anthropic Messages | Claude 系列模型 |
openai |
OpenAI Chat Completions | OpenAI 及兼容服务、DeepSeek、Qwen 等 |
openai_responses |
OpenAI Responses API | OpenAI 较新的 Responses 接口 |
google-genai |
Google GenAI | Gemini API |
vertexai |
Google GenAI on Vertex | Google Cloud Vertex AI |
所有供应商默认以流式方式与模型交互。thinking、视觉、工具调用等能力按模型名前缀自动匹配,通常不需要手动声明。
凭证优先级:api_key 直接字段 > [providers.<name>.env] 子表键 > 两者都缺时启动报错。CLI 不会从 shell 环境变量自动取凭证——详见配置覆盖:供应商凭证。
/provider — 交互式供应商管理
不想手动编辑 TOML?在 TUI 里输入 /provider 打开供应商管理器,可以以交互方式添加或删除供应商。
管理器按来源把供应商显示为一行行条目。操作方式:
- ↑/↓ 移动光标,←/→ 翻页
d键删除当前供应商(有[y/N]确认)- 在
[ Add New Platform ]行按 Enter 添加新供应商
添加时有两条路径:
- Known third-party provider:从 models.dev 拉取模型目录,选供应商 → 输入 API 密钥 → 选默认模型
- Custom registry (api.json):粘贴自定义 registry 地址和 Bearer token,CLI 自动创建
providers/models条目。后续启动时,同一个 registry 地址下的供应商会一起刷新,因此上游新增、删除供应商以及模型元数据变化都会同步。
::: warning
通过 /login 登录的 Kimi Code OAuth 托管账号不会在 /provider 里显示,请用 /login 和 /logout 管理。
:::
非交互环境下也可以用 shell 命令完成同样操作:kimi provider。
kimi
用于对接 Moonshot AI 的 OpenAI 兼容接口,包括 Kimi Code 托管服务和 Kimi Platform API 密钥。
- 默认
base_url:https://api.moonshot.ai/v1 - 凭证键名:
KIMI_API_KEY、KIMI_BASE_URL - 额外能力:支持视频上传
[providers.kimi]
type = "kimi"
base_url = "https://api.moonshot.ai/v1"
api_key = "sk-xxxxx"
使用 Kimi Code 托管服务时,
/login登录后会自动配置base_url和凭证,无需手动填写。
anthropic
用于对接 Claude API。标准 Claude 模型自动启用视觉、工具调用及 Thinking(如支持);自定义或未覆盖的模型需在 [models.<alias>] 里显式声明 capabilities。
- 默认
base_url:跟随 Anthropic SDK 默认值 - 凭证键名:
ANTHROPIC_API_KEY、ANTHROPIC_BASE_URL - 默认
max_tokens:按模型自动推断。如需覆盖,在模型别名上设max_output_size
[providers.anthropic]
type = "anthropic"
api_key = "sk-ant-xxxxx"
[models."claude-opus-4-7"]
provider = "anthropic"
model = "claude-opus-4-7"
max_context_size = 200000
# max_output_size = 32000 # 可选,省略时使用模型推断的默认值
openai
用于对接 OpenAI Chat Completions 协议,也可连接任何兼容该协议的第三方服务(覆盖 base_url 即可)。
第三方推理模型(DeepSeek、Qwen、One API 等)开箱即用:CLI 自动处理 reasoning_content 字段和 reasoning_effort 注入。如果你的网关用非标准字段名返回推理内容,在模型别名上设 reasoning_key 覆盖。
- 默认
base_url:https://api.openai.com/v1 - 凭证键名:
OPENAI_API_KEY、OPENAI_BASE_URL
[providers.openai]
type = "openai"
base_url = "https://api.openai.com/v1"
api_key = "sk-xxxxx"
openai_responses
对应 OpenAI 较新的 Responses API,始终以流式方式工作。配置方式与 openai 相同。
- 默认
base_url:https://api.openai.com/v1 - 凭证键名:
OPENAI_API_KEY、OPENAI_BASE_URL
[providers.openai-responses]
type = "openai_responses"
base_url = "https://api.openai.com/v1"
api_key = "sk-xxxxx"
google-genai
用于直连 Google Gemini API。thinking、视觉及多模态能力按模型名自动识别。
- 凭证键名:
GOOGLE_API_KEY
[providers.gemini]
type = "google-genai"
api_key = "xxxxx"
如需经由兼容 Gemini 协议的代理/网关访问,可设置 base_url(或 GOOGLE_GEMINI_BASE_URL 环境变量);不填时使用 SDK 默认地址 https://generativelanguage.googleapis.com。
只填主机根地址。Google GenAI SDK 会自行追加 API 版本与路径(如
/v1beta/models/<model>:generateContent),所以结尾带/v1beta会导致路径重复成/v1beta/v1beta/…。
[providers.gemini]
type = "google-genai"
api_key = "xxxxx"
base_url = "https://your-gateway.example"
vertexai
与 google-genai 共用实现,type = "vertexai" 时切换到 Vertex AI 访问路径。
认证走 Google Cloud 标准 ADC 流程(gcloud auth application-default login 或 GOOGLE_APPLICATION_CREDENTIALS 服务账号 JSON),这部分与 Kimi Code 无关。项目 ID 和区域必须写在 [providers.vertexai.env] 子表里——直接在 shell 里 export GOOGLE_CLOUD_PROJECT 不会被 CLI 读取。
[providers.vertexai]
type = "vertexai"
[providers.vertexai.env]
GOOGLE_CLOUD_PROJECT = "my-gcp-project"
GOOGLE_CLOUD_LOCATION = "us-central1"
gcloud auth application-default login # 一次性完成认证
kimi
如需让 Vertex 请求走自定义(如代理)端点,可设置 base_url(或 GOOGLE_VERTEX_BASE_URL 环境变量);不填时使用 SDK 默认的区域化 *-aiplatform.googleapis.com 地址。与 google-genai 一样,只填主机根地址——SDK 会自行追加 /v1beta1/publishers/google/models/…。
OAuth 与凭证注入
Kimi Code 托管服务使用 OAuth 而非静态 API 密钥。运行 /login 后,内置的认证工具链会自动写入并刷新凭证,config.toml 里无需手动配置这部分内容。