Kimi CLI Prompt Flow:Mermaid 流程图驱动对话技术分析
一、新闻概述
1. 标题
Kimi KLIP-10:Mermaid Prompt Flow (--prompt-flow) 提案技术分析
2. 发布时间
2026 年 1 月 15 日
3. 来源
MoonshotAI/kimi-cli 仓库 KLIP 提案
二、核心内容
1. 事件摘要
A. 主要内容
Kimi CLI 项目提出 KLIP-10 提案,计划新增 --prompt-flow 功能,允许用户使用 Mermaid 流程图描述对话流程,实现可视化的 AI 对话编排。
B. 核心亮点
- 使用 Mermaid flowchart 语法定义对话流程
- 支持分支决策节点,LLM 可通过选择标签决定下一节点
- 提供 Ralph 模式自动迭代功能
- 与现有 UI 模式完全兼容
2. 关键信息
A. 提案编号
KLIP-10(Kimi CLI Improvement Proposal)
B. 实现状态
已实现(Implemented)
C. 涉及产品
Kimi CLI - 月之暗面推出的命令行 AI 工具
3. 背景介绍
A. 前置版本
当前 Kimi CLI 仅支持交互式输入或 --command 单次输入驱动对话。
B. 相关上下文
该提案属于 Kimi CLI 的 KLIP(Kimi CLI Improvement Proposal)改进提案系列,旨在通过可视化方式增强 CLI 工具的交互能力。
三、详细报道
1. 主要内容
A. 功能更新
该提案引入了 Prompt Flow 机制,允许用户使用 Mermaid 流程图定义对话流程。核心特性包括:
- 流程图驱动:用 Mermaid flowchart 描述对话流程,每个节点对应一次对话轮次
- 分支决策:支持决策节点,根据 LLM 输出的选择标签走向不同分支
- 可视化编排:通过 BEGIN/END 节点包裹流程,中间节点为 prompt
- 上下文共享:在同一 session/context 中持续推进直到 END
B. 技术改进
核心数据结构:
FlowNodeKind = Literal["begin", "end", "task", "decision"]
@dataclass(frozen=True, slots=True)
class FlowNode:
id: str
label: str | list[ContentPart] # 支持富文本内容
kind: FlowNodeKind
@dataclass(frozen=True, slots=True)
class FlowEdge:
src: str
dst: str
label: str | None
@dataclass(slots=True)
class PromptFlow:
nodes: dict[str, FlowNode]
outgoing: dict[str, list[FlowEdge]]
begin_id: str
end_id: str执行机制:
新增 FlowRunner 类处理 flow 执行逻辑,KimiSoul 通过持有 _flow_runner 实例来支持 prompt flow。
graph TB
User[用户] -->|1. 加载 .mmd 文件| CLI[CLI --prompt-flow]
CLI -->|2. 解析 Mermaid| Parser[流程图解析器]
Parser -->|3. 构建 PromptFlow| Flow[PromptFlow 实例]
Flow -->|4. 创建 FlowRunner| Runner[FlowRunner]
Runner -->|5. /begin 触发| Soul[KimiSoul]
Soul -->|6. 执行节点| LLM[LLM API]
LLM -->|7. 返回 <choice>| Parser2[选择解析器]
Parser2 -->|8. 匹配边| NextNode[下一节点]
NextNode -->|9. 继续执行| Soul
Soul -->|10. 到达 END| End[结束]C. Mermaid 语法支持
支持的语法子集:
- Header:flowchart TD / flowchart LR / graph TD
- 注释行:%% ...
节点类型:
- ID[文本] - 普通节点
- ID([文本]) - 开始/结束节点
- ID{文本} - 分支节点
边定义:
- A --> B
- A -->|label| B
- A -- label --> B
- 引号包裹:ID["含特殊字符的文本"]
不支持:子图、链式多节点、复杂连线形态、label 中包含 |
2. 技术细节
A. 分支节点处理
分支节点的 prompt 组装示意:
{node.label}
Available branches:
- 是
- 否
Reply with a choice using <choice>...</choice>.选择解析规则:
- 从 assistant message 最后一条读取文本
- 使用正则 r"
(1*) " 抽取最后一个 choice 标签 - 不强制 choice 在末尾,LLM 可在 choice 后追加解释
- 若缺失或无匹配:自动重试
B. Ralph 模式
Ralph 模式是一种特殊的自动迭代模式,流程结构为:
BEGIN → R1(执行用户 prompt) → R2(决策节点)
→ CONTINUE(回到 R2) / STOP → END通过 --max-ralph-iterations 参数启用,会自动将用户输入包装成带 CONTINUE/STOP 分支的循环流程。
graph LR
BEGIN([BEGIN]) --> R1[R1: 执行用户 prompt]
R1 --> R2{R2: 决策节点}
R2 -->|CONTINUE| R2
R2 -->|STOP| END([END])C. 校验规则
- BEGIN/END 通过节点 label 匹配,大小写不敏感
- 必须且只能有一个 BEGIN、一个 END
- BEGIN 只允许 1 条出边;END 不允许出边
- 非分支节点要求恰好 1 条出边(除非它是 END)
- 分支节点要求出边 label 全部非空且唯一
- 未显式声明的节点允许隐式创建
D. 错误处理
异常层次结构:
class PromptFlowError(ValueError):
"""Prompt flow 解析/验证基类错误"""
class PromptFlowParseError(PromptFlowError):
"""Mermaid flowchart 解析失败"""
class PromptFlowValidationError(PromptFlowError):
"""Flowchart 校验失败"""3. 数据与事实
A. 文件大小
10.5 KB,305 行(239 行代码)
B. 提交信息
- 作者:stdrc
- 提交:e082795
- 时间:2026-01-15
C. 兼容性
- 与 Ralph 模式互斥
- 与所有 UI 模式兼容(shell/print/wire/acp)
- 与 --continue/--session 兼容
四、影响分析
1. 行业影响
A. 技术趋势
- CLI 工具向可视化、可编程方向发展
- AI 交互模式从简单问答转向复杂流程编排
- Mermaid 等标准化图表语言在工程领域应用扩展
B. 竞争格局
- 相较于传统 CLI 工具,Kimi CLI 通过 Prompt Flow 提供了更灵活的交互方式
- 与 Claude Code、GitHub Copilot CLI 等 AI 工具形成差异化竞争
2. 用户影响
A. 现有用户
- 可视化流程降低复杂任务编排门槛
- Ralph 模式支持自动迭代,减少重复输入
B. 潜在用户
- 对可视化编程感兴趣的开发者
- 需要结构化 AI 工作流的用户
C. 学习曲线
- 需要掌握 Mermaid 基础语法
- 理解 Prompt Flow 执行模型
3. 技术趋势
A. 技术方向
- AI 交互工具从命令式转向声明式
- 流程编排与 AI 能力深度结合
- 标准化图表语言成为 DSL 的一种形态
B. 生态影响
- 可能催生更多基于 Mermaid 的工具链
- 推动 CLI 工具的可视化编程范式
五、各方反应
1. 官方回应
该提案已标记为 Implemented 状态,表明 MoonshotAI 团队已认可并完成实现。
2. 业内评价
A. 技术亮点
- Mermaid 语法子集的选择体现了实用主义设计哲学
- 分支节点的 choice 标签机制巧妙地解决了 LLM 输出结构化问题
- Ralph 模式提供了自动迭代的便捷方式
B. 设计考量
- 仅支持最小子集,避免复杂度爆炸
- 与现有 UI 和 session 机制兼容,保证平滑升级
- 内置 max_moves 防止死循环
3. 潜在挑战
A. 限制
- 不支持完整 Mermaid 语法,可能限制复杂场景
- 从 prompt flow 中断处恢复功能未实现
- 分支 label 要求短且稳定
B. 扩展性
- 当前实现可能难以处理超大规模流程图
- 循环依赖和复杂分支逻辑可能需要更强大的验证机制
六、相关链接
1. 官方资源
- KLIP-10 提案文档
- Kimi CLI GitHub 仓库
- Mermaid 官方文档
2. 相关技术
- Mermaid 图表语言
- LLM 结构化输出
- CLI 工具设计模式
3. 参考实现
- src/kimi_cli/flow.py - 流程解析与数据结构
- src/kimi_cli/soul/kimisoul.py - FlowRunner 与 KimiSoul 扩展
- src/kimi_cli/cli/__init__.py - CLI 集成
参考资料
- < ↩