Loading... # 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 流程图定义对话流程。核心特性包括: 1. **流程图驱动**:用 Mermaid flowchart 描述对话流程,每个节点对应一次对话轮次 2. **分支决策**:支持决策节点,根据 LLM 输出的选择标签走向不同分支 3. **可视化编排**:通过 BEGIN/END 节点包裹流程,中间节点为 prompt 4. **上下文共享**:在同一 session/context 中持续推进直到 END ### B. 技术改进 **核心数据结构**: ```python 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。 ```mermaid 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 语法支持 **支持的语法子集**: 1. Header:flowchart TD / flowchart LR / graph TD 2. 注释行:%% ... 3. 节点类型: - ID[文本] - 普通节点 - ID([文本]) - 开始/结束节点 - ID{文本} - 分支节点 4. 边定义: - A --> B - A -->|label| B - A -- label --> B 5. 引号包裹:ID["含特殊字符的文本"] **不支持**:子图、链式多节点、复杂连线形态、label 中包含 | ## 2. 技术细节 ### A. 分支节点处理 分支节点的 prompt 组装示意: ``` {node.label} Available branches: - 是 - 否 Reply with a choice using <choice>...</choice>. ``` **选择解析规则**: 1. 从 assistant message 最后一条读取文本 2. 使用正则 r"<choice>([^<]*)</choice>" 抽取最后一个 choice 标签 3. 不强制 choice 在末尾,LLM 可在 choice 后追加解释 4. 若缺失或无匹配:自动重试 ### B. Ralph 模式 Ralph 模式是一种特殊的自动迭代模式,流程结构为: ``` BEGIN → R1(执行用户 prompt) → R2(决策节点) → CONTINUE(回到 R2) / STOP → END ``` 通过 --max-ralph-iterations 参数启用,会自动将用户输入包装成带 CONTINUE/STOP 分支的循环流程。 ```mermaid graph LR BEGIN([BEGIN]) --> R1[R1: 执行用户 prompt] R1 --> R2{R2: 决策节点} R2 -->|CONTINUE| R2 R2 -->|STOP| END([END]) ```  ### C. 校验规则 1. BEGIN/END 通过节点 label 匹配,大小写不敏感 2. 必须且只能有一个 BEGIN、一个 END 3. BEGIN 只允许 1 条出边;END 不允许出边 4. 非分支节点要求恰好 1 条出边(除非它是 END) 5. 分支节点要求出边 label 全部非空且唯一 6. 未显式声明的节点允许隐式创建 ### D. 错误处理 异常层次结构: ```python 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 集成 *** ## 参考资料 1. [KLIP-10: Mermaid Prompt Flow (--prompt-flow)](https://github.com/MoonshotAI/kimi-cli/blob/main/klips/klip-10-prompt-flow.md) 2. [Kimi CLI GitHub Repository](https://github.com/MoonshotAI/kimi-cli) 3. [Mermaid Documentation](https://mermaid.js.org/) 最后修改:2026 年 01 月 17 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏