交付面:单二进制 TUI、CLI、SDK 与编辑器(ACP)
30 秒导读: 前五章(见 index)讲的是引擎——回合循环、Agent 主机、工具、provider、v2 再工程化。这一章讲引擎怎么被人和程序摸到:装一个
kimi命令后,同一个二进制里其实塞了好几副"皮套"——终端交互界面(TUI)、跑一句就退的无头 模式(kimi -p)、给外部程序调用的 TypeScript SDK、以及让 Zed/JetBrains 直接驱动的编辑器协议(ACP)。本章只讲这些接触面,不重复引擎内部。
1. 这是什么(零基础也能懂)
1.1 先说清楚"交付面"这个词
交付面(delivery surface)= 用户或外部程序接触这套 agent 引擎的那层皮。 引擎本身(会读代码、会调工具、会跟大模型对话)是一个内核;但内核不能直接被人用——人要么在终端里敲字看它干活,要么写脚本让它跑一句就吐结果,要么在编辑器里点两下就用上。每一种"用法"就是一个交付面。
一句类比:引擎是发动机,交付面是方向盘、油门、和车载 App——同一台发动机,可以装进轿车(TUI)、装进赛车(无头 CLI)、也可以把接口暴露给别的车厂(SDK)。
1.2 Kimi Code 一共有几个面
主交付面全部由一个可执行文件 kimi 提供(单二进制,见 §4),按"谁在用、怎么用"分成 四类:
| 交付面 | 谁在用 | 长什么样 | 入口 |
|---|---|---|---|
| TUI(终端 UI) | 人,交互式长会话 | 敲 kimi,进一个全屏终端界面 | apps/kimi-code/src/tui/ |
| CLI 无头模式 | 脚本 / CI / 管道 | kimi -p "...",跑完打印就退 | apps/kimi-code/src/cli/run-prompt.ts |
| SDK 门面 | 外部 TS 程序 | import { createKimiHarness } | packages/node-sdk/ |
| ACP 编辑器桥 | Zed / JetBrains 等 | kimi acp,走 stdio JSON-RPC | packages/acp-adapter/ |
外围还有三个独立应用级交付面(不在 kimi 二进制里,§6):浏览器 Web UI(apps/kimi-web)、VS Code 插件(apps/vscode)、调试检查器(apps/kimi-inspect)。
1.3 用起来什么样
最小三种触法,直观感受一下:
# 1. 交互式 TUI —— 进全屏界面,像聊天一样干活
$ cd my-project
$ kimi
# 2. 无头模式 —— 跑一句,把回答打到 stdout 就退(可进管道 / CI)
$ kimi -p "解释这个仓库的主要目录" --output-format stream-json
# 3. 编辑器集成 —— 让 Zed 通过 stdio 驱动一个 kimi 会话
$ kimi acp
1.4 一句话直觉
把 kimi 想成一个"多头插座":插座内部是同一套电(引擎),但面板上开了 TUI、CLI、SDK、ACP 四个不同形状的孔,谁需要哪种就插哪个。 本章就是把这四个孔各自怎么接线讲清楚。