首页 › LLM大语言模型 › Kimi专栏 › Kimi 进阶 › kimi acp 子命令

kimi acp 子命令

kimi acp 把 Kimi Code CLI 切换到 ACP (Agent Client Protocol) 模式:在标准输入/输出上以 JSON-RPC 形式与 ACP 客户端(如 Zed、JetBrains AI Chat 等)对话,让 IDE 直接驱动 kimi 的会话、prompt 与工具调用。​

​

代码块​

Plain Text

kimi acp​

​

启动后命令不会打印任何 banner,立刻等待 ACP 客户端在 stdin 上发出 initialize 请求。日志会写到标准错误(以及 ~/.kimi-code/logs/ 下的诊断日志),所以 ACP 通道本身保持干净。​

谁会调用它?​

你通常不需要手动跑 kimi acp——这个命令是给 IDE 的子进程入口准备的。IDE 端的配置见在 IDE 中使用。​

能力矩阵​

下表列出当前 ACP 适配层声明的能力。agentCapabilities 字段在 initialize 响应里完整返回,IDE 端可据此调整 UI。​

​

#yzAIrfWRHcUf text { white-space: pre; }#yzAIrfWRHcUf .fb0 { stroke: var(--N900-FG, 0.15); }#yzAIrfWRHcUf .fb0 {stroke: rgba(31,35,41, 0.15)}#yzAIrfWRHcUf .fx0 { stroke-miterlimit: 10; }#yzAIrfWRHcUf .fx0 {stroke-miterlimit: 10}#yzAIrfWRHcUf .fa1 { fill: rgb(187, 191, 196); }#yzAIrfWRHcUf .fa1 {fill: rgb(187, 191, 196)}#yzAIrfWRHcUf .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#yzAIrfWRHcUf .fx1 {font-style: normal}#yzAIrfWRHcUf .fx2 { text-anchor: middle; }#yzAIrfWRHcUf .fx2 {text-anchor: middle}#yzAIrfWRHcUf .fx3 { dominant-baseline: central; }#yzAIrfWRHcUf .fx3 {dominant-baseline: central}#yzAIrfWRHcUf .fx4 { stroke: none; }#yzAIrfWRHcUf .fx4 {stroke: none}#yzAIrfWRHcUf .fc0 { fill: var(--text-caption); }#yzAIrfWRHcUf .fc0 {fill: #646a73}#yzAIrfWRHcUf .fa2 { fill: var(--text-link-disabled); }#yzAIrfWRHcUf .fa2 {fill: rgb(187, 191, 196)}#yzAIrfWRHcUf .fa3 { fill: rgb(246, 246, 247); }#yzAIrfWRHcUf .fa3 {fill: rgb(246, 246, 247)}#yzAIrfWRHcUf .fx5 { font: 400 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#yzAIrfWRHcUf .fx5 {font-style: normal}#yzAIrfWRHcUf .fx6 { text-anchor: start; }#yzAIrfWRHcUf .fx6 {text-anchor: start}#yzAIrfWRHcUf .fx7 { dominant-baseline: alphabetic; }#yzAIrfWRHcUf .fx7 {dominant-baseline: alphabetic}#yzAIrfWRHcUf .fc1 { fill: rgb(103, 103, 108); }#yzAIrfWRHcUf .fc1 {fill: rgb(103, 103, 108)}#yzAIrfWRHcUf .fx8 { font: 400 12px LarkHackSafariFont, LarkEmojiFont, ui-monospace, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Noto Sans", Tahoma, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", STHeiti, SimHei, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", system-ui; }#yzAIrfWRHcUf .fx8 {font-style: normal}#yzAIrfWRHcUf .fc2 { fill: rgb(52, 81, 178); }#yzAIrfWRHcUf .fc2 {fill: rgb(52, 81, 178)}#yzAIrfWRHcUf .fc3 { fill: rgb(60, 60, 67); }#yzAIrfWRHcUf .fc3 {fill: rgb(60, 60, 67)}#yzAIrfWRHcUf .fb1 { fill: var(--N900-FG, 0.15); }#yzAIrfWRHcUf .fb1 {fill: rgba(31,35,41, 0.15)}#yzAIrfWRHcUf .fb2 { fill: rgb(226, 226, 227); }#yzAIrfWRHcUf .fb2 {fill: rgb(226, 226, 227)}#yzAIrfWRHcUf .fa4 { fill: var(--bg-body); }#yzAIrfWRHcUf .fa4 {fill: #fff}ABC12345678能力取值说明promptCapabilities.imagepromptCapabilities.audiopromptCapabilities.embeddedContextmcpCapabilities.httpmcpCapabilities.sseloadSessionsessionCapabilities.listTRUEFALSETRUETRUETRUETRUE{}imageresourceresource_link...session/loadsession/list支持 ACP 内容块(base64 + mimeType)暂不支持音频 prompt客户端可发送 / 嵌入式资源块,文本内容会以 形式注入 prompt;blob 资源被丢弃并写 warn转发 IDE 配置的 HTTP MCP 服务转发 IDE 配置的旧式 SSE MCP 服务支持 续接已有会话,加载时会同步回放历史支持 枚举当前用户的会话

​

ACP 方法覆盖​

规范把方法分为稳定面和仍在演化的不稳定面(@agentclientprotocol/sdk@0.23.0 中以 unstable_* 前缀挂载的 handler)。两部分稳定性保证完全不同——稳定面是任何生产 ACP 客户端都会用到的方法,不稳定面覆盖实验性扩展(inline-edit 预测、document 缓冲区同步、provider 管理、elicitation 等),因此分开追踪。​

概览:稳定面 agent-side 实现 10/12(83%)+ client reverse-RPC 实现 4/9(44%);不稳定面只接入了 session/set_model(1/19)。 任何正常 agent 流程所需的方法(initialize → auth → new/load/resume → prompt → cancel + 文件 I/O + 工具审批)都已实现。​

稳定面 agent-side — IDE → agent(10 / 12)​

​

​

稳定面 client-side reverse-RPC — agent → IDE(4 / 9)​

​

#GVlWBkRQsUdZ text { white-space: pre; }#GVlWBkRQsUdZ .fb0 { stroke: var(--N900-FG, 0.15); }#GVlWBkRQsUdZ .fb0 {stroke: rgba(31,35,41, 0.15)}#GVlWBkRQsUdZ .fx0 { stroke-miterlimit: 10; }#GVlWBkRQsUdZ .fx0 {stroke-miterlimit: 10}#GVlWBkRQsUdZ .fa1 { fill: rgb(187, 191, 196); }#GVlWBkRQsUdZ .fa1 {fill: rgb(187, 191, 196)}#GVlWBkRQsUdZ .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#GVlWBkRQsUdZ .fx1 {font-style: normal}#GVlWBkRQsUdZ .fx2 { text-anchor: middle; }#GVlWBkRQsUdZ .fx2 {text-anchor: middle}#GVlWBkRQsUdZ .fx3 { dominant-baseline: central; }#GVlWBkRQsUdZ .fx3 {dominant-baseline: central}#GVlWBkRQsUdZ .fx4 { stroke: none; }#GVlWBkRQsUdZ .fx4 {stroke: none}#GVlWBkRQsUdZ .fc0 { fill: var(--text-caption); }#GVlWBkRQsUdZ .fc0 {fill: #646a73}#GVlWBkRQsUdZ .fa2 { fill: var(--text-link-disabled); }#GVlWBkRQsUdZ .fa2 {fill: rgb(187, 191, 196)}#GVlWBkRQsUdZ .fa3 { fill: rgb(246, 246, 247); }#GVlWBkRQsUdZ .fa3 {fill: rgb(246, 246, 247)}#GVlWBkRQsUdZ .fx5 { font: 400 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#GVlWBkRQsUdZ .fx5 {font-style: normal}#GVlWBkRQsUdZ .fx6 { text-anchor: start; }#GVlWBkRQsUdZ .fx6 {text-anchor: start}#GVlWBkRQsUdZ .fx7 { dominant-baseline: alphabetic; }#GVlWBkRQsUdZ .fx7 {dominant-baseline: alphabetic}#GVlWBkRQsUdZ .fc1 { fill: rgb(103, 103, 108); }#GVlWBkRQsUdZ .fc1 {fill: rgb(103, 103, 108)}#GVlWBkRQsUdZ .fx8 { font: 400 12px LarkHackSafariFont, LarkEmojiFont, ui-monospace, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Noto Sans", Tahoma, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", STHeiti, SimHei, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", system-ui; }#GVlWBkRQsUdZ .fx8 {font-style: normal}#GVlWBkRQsUdZ .fc2 { fill: rgb(52, 81, 178); }#GVlWBkRQsUdZ .fc2 {fill: rgb(52, 81, 178)}#GVlWBkRQsUdZ .fc3 { fill: rgb(60, 60, 67); }#GVlWBkRQsUdZ .fc3 {fill: rgb(60, 60, 67)}#GVlWBkRQsUdZ .fb1 { fill: var(--N900-FG, 0.15); }#GVlWBkRQsUdZ .fb1 {fill: rgba(31,35,41, 0.15)}#GVlWBkRQsUdZ .fb2 { fill: rgb(226, 226, 227); }#GVlWBkRQsUdZ .fb2 {fill: rgb(226, 226, 227)}#GVlWBkRQsUdZ .fa4 { fill: var(--bg-body); }#GVlWBkRQsUdZ .fa4 {fill: #fff}ABC123456方法状态说明session/updatesession/request_permissionfs/read_text_filefs/write_text_fileterminal/createoutputreleasekillwait_for_exitagent_message_chunktool_call*planconfig_option_updateavailable_commands_updatefsCapabilities · · · · 是是是是否流式推送 / / / / 工具审批和问题 elicitation 共用此通道kaos 层文件读取路由到客户端(通过 公告)kaos 层文件写入路由到客户端终端 reverse-RPC 未接,shell 命令走本地执行

​

上述未列出的方法一律返回 methodNotFound。​

MCP 转发​

ACP 客户端在 session/new 或 session/load 中提供 mcpServers 时,适配层做如下转换:​

•

http → kimi 的 transport: 'http' 配置​

•

stdio → kimi 的 transport: 'stdio' 配置​

不稳定面(1 / 19)​

•

sse → kimi 的 transport: 'sse' 配置​

​

​

•

acp → 丢弃并写一条 warn 日志​