> 很多人以为 Kimi Code CLI 只能用 Kimi 模型, 其实它原生支持 OpenAI, Claude, Gemini 等多种模型. 本文手把手教你配置.
---
## 前言: 打破认知误区
Kimi Code CLI 是月之暗面开源的 AI 编程助手, 名字里带 "Kimi" 让很多人误以为它只能调用 Kimi API.
**事实并非如此.**
从源码可以看到, Kimi CLI 通过 `kosong` 库抽象了 LLM 层, 原生支持:
- **OpenAI 兼容 API** (包括 OpenRouter, OneAPI, 本地 Ollama 等)
- **Anthropic Claude**
- **Google Gemini**
- **Kimi 原生 API**
---
## 为什么需要换模型?
虽然 Kimi K2.5 很强, 但以下场景你可能需要其他模型:
| 场景 | 推荐替代方案 |
|------|-------------|
| 需要 Claude 的代码能力 | Claude 3.5 Sonnet |
| 想用 GPT-4 的某些特性 | OpenAI GPT-4 |
| 预算有限, 想用第三方代理 | OpenRouter, OneAPI |
| 完全离线, 本地运行 | Ollama, vLLM, llama.cpp |
| 需要 Gemini 的长上下文 | Gemini 1.5 Pro (200万 tokens) |
---
## 配置方法详解
### 方法一: 配置文件 (推荐)
编辑 `~/.kimi/config.toml`:
#### 1. OpenAI 官方 API
```toml
[providers.openai]
type = "openai_legacy"
base_url = "https://api.openai.com/v1"
api_key = "sk-your-openai-key"
[models.gpt4]
provider = "openai"
model = "gpt-4o"
max_context_size = 128000
capabilities = ["thinking", "image_in"]
default_model = "gpt4"
```
#### 2. OpenRouter (一个 Key 调用多家模型)
```toml
[providers.openrouter]
type = "openai_legacy"
base_url = "https://openrouter.ai/api/v1"
api_key = "sk-or-your-openrouter-key"
[models.claude_via_openrouter]
provider = "openrouter"
model = "anthropic/claude-3.5-sonnet"
max_context_size = 200000
default_model = "claude_via_openrouter"
```
#### 3. 本地 Ollama
```toml
[providers.ollama]
type = "openai_legacy"
base_url = "http://localhost:11434/v1"
api_key = "ollama" # Ollama 不需要真实 key, 但不能为空
[models.local_llama]
provider = "ollama"
model = "codellama:13b"
max_context_size = 16000
default_model = "local_llama"
```
#### 4. Claude 原生 API
```toml
[providers.anthropic]
type = "anthropic"
base_url = "https://api.anthropic.com"
api_key = "sk-ant-your-claude-key"
[models.claude]
provider = "anthropic"
model = "claude-3-5-sonnet-20241022"
max_context_size = 200000
capabilities = ["thinking", "image_in"]
default_model = "claude"
```
#### 5. Google Gemini
```toml
[providers.gemini]
type = "gemini"
base_url = "https://generativelanguage.googleapis.com"
api_key = "your-gemini-key"
[models.gemini_pro]
provider = "gemini"
model = "gemini-1.5-pro"
max_context_size = 2000000 # 200万 tokens!
capabilities = ["thinking", "image_in", "video_in"]
default_model = "gemini_pro"
```
---
### 方法二: 环境变量 (适合临时切换)
**重要提示**: 环境变量只对 `type="kimi"` 或 `type="openai_legacy"` 生效, 且需要匹配对应前缀.
#### 对于 OpenAI 兼容 API:
```bash
export OPENAI_BASE_URL="https://api.openai.com/v1"
export OPENAI_API_KEY="sk-your-key"
```
**但是!** 这有个坑: 如果你没有在配置文件中定义 `type="openai_legacy"` 的 provider, 这些环境变量**不会生效**.
Kimi CLI 默认创建的 provider 是 `type="kimi"`, 它只读取 `KIMI_*` 前缀的环境变量.
#### 正确的环境变量用法:
```bash
# 如果你在用 Kimi provider, 但想换端点
export KIMI_BASE_URL="https://your-openai-compatible-endpoint.com/v1"
export KIMI_API_KEY="your-key"
export KIMI_MODEL_NAME="gpt-4"
```
---
## 常见问题排查
### Q1: 配置了但报错 "LLM not set"
检查:
1. 配置文件路径是否正确: `~/.kimi/config.toml`
2. `default_model` 是否指向存在的模型
3. 模型的 `provider` 是否指向存在的 provider
### Q2: 配置了 OpenAI 但还在调用 Kimi
检查 provider type:
```toml
[providers.something]
type = "openai_legacy" # 必须是这个, 不是 "kimi"
```
### Q3: 本地模型连不上
检查:
1. Ollama 是否运行: `ollama list`
2. 端口是否正确: 默认 11434
3. base_url 是否带 `/v1` 后缀
### Q4: 怎么确认当前用的哪个模型?
启动 kimi 后看日志, 或运行:
```
/model
```
会显示当前模型信息.
---
## 进阶: 多模型切换
你可以在配置中定义多个模型, 启动时切换:
```toml
[providers.openai]
type = "openai_legacy"
base_url = "https://api.openai.com/v1"
api_key = "sk-xxx"
[providers.anthropic]
type = "anthropic"
base_url = "https://api.anthropic.com"
api_key = "sk-ant-xxx"
[models.gpt4]
provider = "openai"
model = "gpt-4o"
max_context_size = 128000
[models.claude]
provider = "anthropic"
model = "claude-3-5-sonnet-20241022"
max_context_size = 200000
default_model = "gpt4" # 默认用 GPT-4
```
启动时切换:
```bash
# 使用 Claude
kimi --model claude
# 使用 GPT-4
kimi --model gpt4
```
---
## 总结
Kimi Code CLI 的架构设计是开放的, 不要被名字误导. 通过简单的配置, 你可以:
- 使用任何 OpenAI 兼容的 API
- 接入 Claude, Gemini 等主流模型
- 本地运行开源模型
- 通过 OpenRouter 等代理降低成本
**核心要点**:
1. 在 `config.toml` 中定义 provider (指定 type, base_url, api_key)
2. 定义 model (指定 provider, model 名称, 上下文大小)
3. 设置 default_model 指向你想用的模型
4. 环境变量只能覆盖已有 provider 的参数, 不能创建新 provider
---
*希望这篇指南能帮你解锁 Kimi CLI 的全部潜力!*
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!