iFlow CLI上线workflow功能了,workflow是将业务的流程通过自然语言描述,将command、sub agent等有机结合起来,可以让AI做的事情更规范。

如何安装

新建一个目录,然后 cd 进到这个目录之后,复制下面这个命令直接执行。

iflow workflow add "ppt-generator-v3-OzctqA"

运行过程:

通过 /ppt-generator 启动, 他会先了解当前的工作目录

接着通过阅读 core-config.yaml 了解整个 workflow 的运转机制

接着阅读 coordinator.md 了解这个 agent 的职责、性格、任务,然后启用这个 agent 到上下文。coordinator 会使用 sub agent 的方式来反问我一些问题,包括 ppt 的主题、阅读观众、长度等。

这里,我想做一个关于亲子旅游的 PPT,然后在回复框里面回复了一下,因为给孩子看,需要做 3-5 页即可:

杭州西湖哪里好玩,给家庭出游建议,3-5页ppt,给出元旦出游选项,活泼可爱,没有技术限制

接着,他就开始了整个工作流,全程自动化。

  • 首先会创建待办事项,然后将需求按照工作流描述的格式写入到文档中。

  • 启用 analyst 这个 sub agent 去收集数据,最后页整理到文档中。

  • 启用 UX-Expert 这个 sub agent 去设计 ui 风格

  • 使用 ppt-designer 这个 sub agent 去根据内容做分页设计

  • 最后交给 developer 去做 html 编辑

最后展示的成品,上下翻页有点问题,让 AI 再调整一下

最后的成品:

工作流详细解释

当前 workflow 在设计样式以及流程上还有一些空间,每个 agent 产生的文件,都在 docs 文件夹下,你可以仔细阅读产生的文件内容,然后给对应的 agent 提需求,所有的 prompt 都在.iflow 文件夹下,可以按需修改。

整个流程设计:

收集需求(人机交互) → 内容大纲生成 → 生成分镜方案 → 生成视觉模版 → 生成演示 slides → 验证

项目文档

/Users/ron/workspace/ppt-demo2/

├── .iflow/ # iFlow框架配置
│ ├── IFLOW.md             # 工作流核心运行机制说明
│ ├── agents/
│ │ ├── analyst.md         # 分析师
│ │ ├── coordinator.md     # 协调员
│ │ ├── ppt-designer.md    # PPT设计师
│ │ ├── ppt-developer.md   # PPT开发员
│ │ └── ux-expert.md       # UX专家
│ ├── commands/            # 工作流启动,通过slash command启动
│ │ └── ppt-generator.md   # PPT生成器,入口
│ ├── tasks/               # 任务说明,agent可以制定的任务定义
│ │ ├── create-deep-research-prompt.md
│ │ ├── create-doc.md
│ │ ├── document-project.md
│ │ └── execute-checklist.md
│ └── templates/           # 输出文档模板
│ ├── competitor-analysis-tmpl.yaml
│ ├── front-end-spec-tmpl.yaml
│ ├── market-research-tmpl.yaml
│ └── project-brief-tmpl.yaml

首先,在IFLOW.md中声明整个workflow运转机制

核心定义了资源加载策略:从.iflow目录里面去加载资源,通过功能区分

When you need to reference a resource mentioned in your instructions:  

- Look for files in .iflow folder

- The format is always the full path with dot prefix (e.g., `.iflow/personas/analyst.md`, `.iflow/tasks/create-story.md`)

- If a section is specified (e.g., `{root}/tasks/create-story.md#section-name`), navigate to that section within the file

加载资源是比较核心的指令,通过它,就可以让工作流在需要的时候加载agent、data等概念到上下文中。

分为tasks、templates、data、personas、agents等bundle,根据上下文,如yaml定义的模块,通过路径拼接的方式加载:

- `utils: template-format` → Look for `.iflow/utils/template-format.md`

- `tasks: create-story` → Look for `.iflow/tasks/create-story.md`

- `data: brainstorming-techniques.md` → Look for `.iflow/data/brainstorming-techniques.md`

- `checklists: brainstorming-checklist.md` → Look for `.iflow/checklists/brainstorming-checklist.md`

- `templates: brainstorming-output-tmpl.yaml` → Look for `.iflow/templates/brainstorming-output-tmpl.yaml`

接下来,定义详细的 PPT 制作工作流

工作流是定义在command里面,通过slash command来启动加载,通过yaml方式来表示的 。当然也可以用其他方式表示,比如纯自然语言。

PPT 制作工作流里面核心定义了两个事情:

  1. agent的集合,以及各自的输入和输出

  2. 整个流程,通过sequence表示,mermaid强调,agents之间handoff再次强调

是整体流程表示如下:

这个工作流里面设计了5个agent:

  • coordinator:主要用于和用户沟通,明确ppt创造的需求,然后生成一个简要的需求文档

  • analyst:根据需求文档,进行材料的补充,会利用查找工具去做深度搜索

  • ux-expert:UI/UX的专家,主要做PPT配色方案,以及母版设计

  • ppt-designer:ppt分镜设计,以及内容大纲设计

  • developer:研发,利用之前的信息,进行ppt的研发。

然后是每个agent的定义

Agent 定义存放在agents文件夹,举ux-expert这个agent为例,第一段主要讲了这个agent是什么,何时使用,以及他能用的工具,使用的模型等

每个 agent 需要定义他的 person,workflow,tasks,以及dependences。

举ux-expert这个agent为例,这个文件里面定义(强调)了工作流的一些数据。而在步骤5-7定义了他的工作事项。

- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Load and read `.iflow/core-config.yaml` (project configuration) before any greeting
- STEP 4: Greet user with your name/role and immediately
- STEP 5: Analyze docs/research.md file.
- STEP 6: Create a UX spec and save it in docs/ux-spec.md.
- STEP 7: Create a PPT master template and save it in docs/ppt-template.html.

agent和persona模块定义了agent的描述、个性、专注点、core principal,是个role play说明

skills模块描述了这个agent能做哪些事情,他由data、tasks、template组织而成。比如create-front-end-spec 这个任务,他的描述是run task create-doc.md with template front-end-spec-tmpl.yaml , 则当需要agent去运行create-front-end-spec任务的时候,AI去加载create-doc.md文件,以及模版文件front-end-spec-tmpl.yaml作格式输出。 完成一个task,还需要一些静态知识,这部分定义在data文件夹。完成后要做一些检查,定义在checklist文件夹。

最后,定义了这个工作流需要的依赖,如上所述,主要包括:data, checklist, template, tasks说明组成, 整个文件大概组成如下

欢迎大家加入心流AI社区一起讨论交流

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐