Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/media/provider-manager.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
159 changes: 80 additions & 79 deletions docs/zh/configuration/config-files.md

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions docs/zh/configuration/data-locations.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 数据路径

Kimi Code CLI 把所有运行时数据——配置文件、会话历史、登录凭据、诊断日志——集中存放在 `~/.kimi-code/` 下。本页帮你搞清楚每类数据在哪里、用来做什么,以及需要时怎么清理或搬迁。
Kimi Code CLI 把配置文件、会话历史、登录凭据、诊断日志等运行时数据集中存放在 `~/.kimi-code/` 下。本页帮你搞清楚每类数据在哪里、用来做什么,以及需要时怎么清理或搬迁。

## 数据根目录

Expand Down Expand Up @@ -61,7 +61,7 @@ $KIMI_CODE_HOME (默认 ~/.kimi-code)
数据根下的顶层文件各有用途,大部分由 CLI 自动管理:

- **`config.toml`**:主运行时配置,存放供应商、模型、循环控制等用户级设置。详见[配置文件](./config-files.md)。
- **`tui.toml`**:终端界面客户端偏好,包括 `[upgrade].auto_install`(自动更新,默认开启)。可在 `/settings` 关闭,或手动设为 `auto_install = false`。
- **`tui.toml`**:终端界面客户端偏好,包括自动更新开关 `[upgrade].auto_install`(默认开启)。可在 `/settings` 关闭,或手动设为 `auto_install = false`。
- **`AGENTS.md`**:全局 Kimi 专属 Agent 指令。该文件会随 `KIMI_CODE_HOME` 移动;跨工具通用指令仍可放在 `~/.agents/AGENTS.md`。
- **`mcp.json`**:用户级 MCP server 声明,启动时与项目内的 `.kimi-code/mcp.json` 合并加载。详见 [MCP](../customization/mcp.md)。
- **`skills/`**:Kimi 专属用户级 Skills。该目录会随 `KIMI_CODE_HOME` 移动;跨工具通用 Skills 仍可放在 `~/.agents/skills/`。详见 [Agent Skills](../customization/skills.md)。
Expand All @@ -80,7 +80,7 @@ $KIMI_CODE_HOME (默认 ~/.kimi-code)
- **`agents/main/plans/`**:Plan 模式下写入的计划文件,按计划 id 命名(`<id>.md`)。
- **`agents/agent-0/` 等**:subagent 实例目录,各自含 `wire.jsonl`。
- **`logs/kimi-code.log`**:该会话的诊断日志,只有发生诊断事件时才存在。
- **`tasks/`**:后台任务持久化——`tasks/<task_id>.json` 保存状态/pid/退出码,`tasks/<task_id>/output.log` 保存输出。
- **`tasks/`**:后台任务持久化。`tasks/<task_id>.json` 保存状态/pid/退出码,`tasks/<task_id>/output.log` 保存输出。
- **`cron/`**:定时任务持久化,用 `kimi --session` 恢复会话时重新加载到调度器。详见[定时任务](../reference/tools.md#定时任务)。

## 内置工具缓存
Expand Down
88 changes: 47 additions & 41 deletions docs/zh/configuration/env-vars.md

Large diffs are not rendered by default.

28 changes: 14 additions & 14 deletions docs/zh/configuration/overrides.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,49 @@
# 配置覆盖

Kimi Code CLI 有三个地方可以影响运行参数:配置文件、命令行选项、环境变量。它们不是简单的"谁优先级高谁赢"——三者面向不同场景,作用范围互不相同:
Kimi Code CLI 有三个地方可以影响运行参数:配置文件、命令行选项、环境变量。三者并非简单的优先级叠加,而是面向不同场景、作用范围互不相同:

- **配置文件** 保存长期偏好(模型、密钥、循环控制等),每次启动都生效
- **命令行选项** 做本次启动的临时切换,退出后失效
- **环境变量** 主要负责数据目录定位、OAuth 端点切换,以及少数运行时开关——**不是配置字段的通用后备来源**
- **环境变量** 主要负责数据目录定位、OAuth 端点切换,以及少数运行时开关。它**不是配置字段的通用后备来源**

这个区别很关键:很多人会在 shell 里 `export KIMI_API_KEY=xxx`,以为 CLI 会自动取到,但实际上不会。原因见下文[供应商凭证](#供应商凭证)。
凭证解析不读取 shell 环境变量:在终端 `export KIMI_API_KEY=xxx` 不会生效。原因见下文[供应商凭证](#供应商凭证)。

## 环境变量的三类作用

环境变量按作用分三类,不能合并成一条线性优先级:

1. **定位配置文件**:`KIMI_CODE_HOME` 决定数据根目录,配置文件路径因此变为 `$KIMI_CODE_HOME/config.toml`。这一步先于其他所有解析,不是普通参数的后备来源。
2. **运行时开关**:`KIMI_DISABLE_TELEMETRY` 等少量变量直接关闭对应子系统——即使 `config.toml` 里 `telemetry = true`,只要这个变量是真值,遥测就会被禁用。语义是"额外禁用",不是"普通覆盖"。
2. **运行时开关**:`KIMI_DISABLE_TELEMETRY` 等少量变量直接关闭对应子系统。即使 `config.toml` 里 `telemetry = true`,只要这个变量是真值,遥测就会被禁用。语义是"额外禁用",不是"普通覆盖"。
3. **运行端点与诊断**:`KIMI_CODE_OAUTH_HOST`、`KIMI_CODE_BASE_URL`、`KIMI_LOG_LEVEL` 等在 OAuth 或日志子系统初始化时读取。完整列表见[环境变量](./env-vars.md)。

## 普通运行参数的优先级

对模型别名、Plan 模式、权限模式、Skills 目录等普通运行参数,优先级从高到低:
对模型别名、[Plan 模式](../guides/interaction.md#plan-模式)、[yolo 模式](../guides/interaction.md#yolo-auto-模式)、Skills 目录等普通运行参数,优先级从高到低:

1. **命令行选项**(`-m`、`--plan`、`--yolo` 等):仅对本次启动生效
2. **用户配置文件**(`~/.kimi-code/config.toml`):保存长期偏好

少数环境变量明确覆盖特定配置字段,例如 `KIMI_CODE_BACKGROUND_KEEP_ALIVE_ON_EXIT` 的优先级高于 `[background].keep_alive_on_exit`。这类例外在[环境变量](./env-vars.md)和[配置文件](./config-files.md)对应字段里都有标注。

::: warning
**普通运行参数不会从 shell 环境变量取后备值。** 供应商的 `api_key` / `base_url` 只从 `config.toml`(包括 `[providers.<name>.env]` 子表)读取,不会回退到 shell 里 `export` 的变量。唯一的例外是显式的 `KIMI_MODEL_*` 通道——详见[用环境变量定义模型](./env-vars.md#用环境变量定义模型-kimi-model)。
**普通运行参数不会从 shell 环境变量取后备值。** 供应商的 `api_key` / `base_url` 只从 `config.toml`(包括 `[providers.<name>.env]` 子表)读取,不会回退到 shell 里 `export` 的变量。唯一的例外是显式的 `KIMI_MODEL_*` 通道,详见[用环境变量定义模型](./env-vars.md#用环境变量定义模型-kimi-model)。
:::

目前 CLI 只读取一份用户级配置文件,没有项目级配置文件机制。需要在不同项目间隔离配置时,用 `KIMI_CODE_HOME` 指向不同的数据目录——见下文[典型场景](#典型场景)。
目前 CLI 只读取一份用户级配置文件,没有项目级配置文件机制。需要在不同项目间隔离配置时,用 `KIMI_CODE_HOME` 指向不同的数据目录,见下文[典型场景](#典型场景)。

## 供应商凭证

供应商凭证(`api_key`、`base_url`)有独立的解析规则,不走普通参数的优先级链。

对单个供应商,凭证按以下顺序解析:

1. `[providers.<name>].api_key` — 配置文件里直接写的密钥,优先级最高
2. `[providers.<name>.env]` 子表里的对应键(`KIMI_API_KEY`、`ANTHROPIC_API_KEY` 等)— `api_key` 为空时才读这里
1. `[providers.<name>].api_key`:配置文件里直接写的密钥,优先级最高
2. `[providers.<name>.env]` 子表里的对应键(`KIMI_API_KEY`、`ANTHROPIC_API_KEY` 等):`api_key` 为空时才读这里
3. 两者都缺 → 启动报错,提示该供应商缺少凭证

`base_url` 的解析方式相同:先读 `[providers.<name>].base_url`,再读 `[providers.<name>.env]` 里的 `*_BASE_URL` 键。

> `[providers.<name>.env]` 子表只是配置文件里的一段 TOML,不会真正写入 shell 环境变量。仅当对应的直接字段(`api_key` / `base_url`)为空时,CLI 才会查这里。
> `[providers.<name>.env]` 子表只是配置文件里的一段 TOML,不会真正写入 shell 环境变量。仅当对应的直接字段(`api_key` / `base_url`)为空时,CLI 才会读取该子表。

完整的凭证键名列表见[环境变量:供应商凭证键](./env-vars.md#供应商凭证键-写在-config-toml-里)。

Expand All @@ -55,8 +55,8 @@ Kimi Code CLI 有三个地方可以影响运行参数:配置文件、命令行
| --- | --- |
| `-S, --session [id]` | 恢复指定会话;不带 id 时进入交互式选择 |
| `-c, --continue` | 续上当前目录的上一次会话 |
| `-y, --yolo` | "Ask When Needed" 模式:常规修改和命令自动完成,Agent 仍可能提问 |
| `--auto` | "Never Ask" 模式:完全不打断,Agent 不会向用户提问 |
| `-y, --yolo` | 自动批准普通工具调用,Agent 仍可能提问 |
| `--auto` | 以 auto 权限模式启动:完全自主,Agent 不会向用户提问 |
| `--plan` | 以 Plan 模式启动 |
| `-m, --model <model>` | 指定本次使用的模型别名 |
| `-p, --prompt <prompt>` | 非交互模式:执行单条提示词后退出 |
Expand All @@ -76,13 +76,13 @@ Kimi Code CLI 有三个地方可以影响运行参数:配置文件、命令行

## 典型场景

**隔离测试环境**——用单独的数据目录,避免污染主配置和会话:
**隔离测试环境**:用单独的数据目录,避免污染主配置和会话:

```sh
KIMI_CODE_HOME="$PWD/.kimi-sandbox" kimi
```

**一次性使用测试密钥**——由于供应商凭证只从配置文件读,把测试密钥写进 `env` 子表:
**一次性使用测试密钥**:由于供应商凭证只从配置文件读,把测试密钥写进 `env` 子表:

```toml
[providers.kimi.env]
Expand Down
25 changes: 12 additions & 13 deletions docs/zh/configuration/providers.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,30 @@
# 平台与模型

Kimi Code CLI 支持同时接入多家 LLM 平台——用 Kimi Code 托管服务一键登录、用 Anthropic API key 接 Claude、用 OpenAI 兼容协议连接第三方推理服务。每个供应商对应一种 API 协议,模型在供应商之上声明自己的名称、上下文长度和能力。本页介绍如何在 `config.toml` 里配置各种供应商。
Kimi Code CLI 支持同时接入多家模型供应商服务,模型在供应商之上声明自己的名称、上下文长度和能力。本页介绍如何在 `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 |
| [`kimi`](#kimi) | OpenAI 兼容 | Kimi Code 托管服务、Kimi Platform API 密钥 |
| [`anthropic`](#anthropic) | Anthropic Messages | Claude 系列模型 |
| [`openai`](#openai) | OpenAI Chat Completions | OpenAI 及兼容服务、DeepSeek、Qwen 等 |
| [`openai_responses`](#openai-responses) | OpenAI Responses API | OpenAI 较新的 Responses 接口 |
| [`google-genai`](#google-genai) | Google GenAI | Gemini API |
| [`vertexai`](#vertexai) | Google GenAI on Vertex | Google Cloud Vertex AI |

所有供应商默认以流式方式与模型交互。thinking、视觉、工具调用等能力按模型名前缀自动匹配,通常不需要手动声明。

**凭证优先级**:`api_key` 直接字段 > `[providers.<name>.env]` 子表键 > 两者都缺时启动报错。CLI 不会从 shell 环境变量自动取凭证——详见[配置覆盖:供应商凭证](./overrides.md#供应商凭证)。
**凭证优先级**:`api_key` 直接字段 > `[providers.<name>.env]` 子表键 > 两者都缺时启动报错。CLI 不会从 shell 环境变量自动取凭证,详见[配置覆盖:供应商凭证](./overrides.md#供应商凭证)。

## `/provider` — 交互式供应商管理

不想手动编辑 TOML?在 TUI 里输入 `/provider` 打开**供应商管理器**,可以以交互方式添加或删除供应商。

![/provider 供应商管理器](../../media/provider-manager.jpg)

管理器按来源把供应商显示为一行行条目。操作方式:

- ↑/↓ 移动光标,←/→ 翻页
Expand Down Expand Up @@ -134,7 +136,7 @@ base_url = "https://your-gateway.example"

与 `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 读取。
认证走 Google Cloud 标准 ADC 流程(`gcloud auth application-default login` 或 `GOOGLE_APPLICATION_CREDENTIALS` 服务账号 JSON),这部分与 Kimi Code 无关。**项目 ID 和区域必须写在 `[providers.vertexai.env]` 子表里**。直接在 shell 里 `export GOOGLE_CLOUD_PROJECT` 不会被 CLI 读取。

```toml
[providers.vertexai]
Expand All @@ -150,11 +152,8 @@ 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 与凭证注入
如需让 Vertex 请求走自定义(如代理)端点,可设置 `base_url`(或 `GOOGLE_VERTEX_BASE_URL` 环境变量);不填时使用 SDK 默认的区域化 `*-aiplatform.googleapis.com` 地址。与 `google-genai` 一样,只填主机根地址。SDK 会自行追加 `/v1beta1/publishers/google/models/…`。

Kimi Code 托管服务使用 OAuth 而非静态 API 密钥。运行 `/login` 后,内置的认证工具链会自动写入并刷新凭证,`config.toml` 里无需手动配置这部分内容。

## 下一步

Expand Down
Loading
Loading