johnlindquist/mdflow

Multi-backend CLI for executable markdown prompts. Run .md files against Claude, Codex, Gemini, or Copilot.

解决的问题

mdflow 是一种面向智能体工作流的 Git 原生控制平面。它通过允许用户将特定任务(如代码审查或发布说明)定义为版本控制的 Markdown 文件,解决了 AI 智能体任务不一致、不可重复的问题。这使得提示词成为一等的 CLI 命令,可以被管道化、链式调用,并通过行为评估进行保护。

工作原理

  • Markdown 作为命令:以特定模式命名的文件(如 task.claude.md)会自动映射到 CLI 引擎(如 Claude、Codex 或 Gemini)。Markdown 正文作为提示词,YAML 前置元数据则转换为 CLI 标志。
  • 引擎解析:使用解析优先级链来确定运行哪个 AI 引擎,优先级高于默认值:显式 CLI 标志、环境变量和文件名。
  • 上下文隔离:默认情况下,会移除环境上下文(如用户配置或会话持久化),以确保运行是隔离且可重复的,但可通过 _isolated: false 选项禁用此行为。
  • 生命周期钩子:用户可将 TypeScript 文件(钩子)附加到流程中,以在特定事件(如 userPromptSubmit)期间注入上下文或阻止操作。
  • 行为评估:包含 md eval 命令,可在隔离的工作区中运行行为测试用例,确保提示词修改不会引入回归问题。
  • 演化协议md evolve 命令允许用户基于反馈提出并验证提示词改进方案,而无需立即覆盖源文件。

适用人群

希望将 AI 智能体提示词当作代码来处理的开发者和团队,支持版本控制、回归测试,并以标准化方式在不同基于 CLI 的 LLM 引擎上执行 AI 任务。

核心亮点

  • Git 原生:流程存储在 ./flows 目录中,可在拉取请求中进行差异对比。
  • Unix 哲学:支持 stdin/stdout,允许将智能体通过管道连接(例如 git diff | md review.md)。
  • 流程工作台:提供交互式 CLI 界面,用于搜索和运行项目、全局及已安装的流程。
  • 引擎无关:支持多种引擎,包括 piclaudecodexcopilotgeminiagy
  • 模板变量:支持通过前置元数据变量、CLI 标志和交互式表单提示实现动态输入。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目