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 界面,用于搜索和运行项目、全局及已安装的流程。
- 引擎无关:支持多种引擎,包括
pi、claude、codex、copilot、gemini和agy。 - 模板变量:支持通过前置元数据变量、CLI 标志和交互式表单提示实现动态输入。
相关
- 项目
- 项目
- 项目
- 项目
- 项目