dify作为一个LLM工作流的编排平台,上手还是有难度的。首先要熟悉各种节点,然后基于流程进行编排,使得可以符合一个自动化的操作的标准流程
基于这个理解,我们可以对一些繁琐的简单的流程进行编排入大模型,代替部分的手工操作。
鉴于这个是一个使用指南,不再花费大篇幅来讲述如何构建一个工作流,我们会基于一个搭建好的工作流前端部分,进行讲解。侧重于工作流的使用。

我们以小红书文案生成这个工作流来当例子:
在这个流程里面,我们将人手工的查看新闻--编写文案--格式化发送,这些步骤自动化为大模型来进行操作,大大节省了人工的使用。
当搭建好一个工作流之后,我们会有一个前端的交互式的调用入口。在这个页面上,我们有在开始节点编写的输入框和按钮等。

当我们输入好需要输入的内容的时候,点击执行按钮,就会根据编排好的工作流一步步的执行下去,当然也可以批量执行。
右边会显示执行的步骤(进度),最后会输出执行的结果,我们可以一键复制执行的结果。
在当下,不论是国外的AI工具如ChatGPT、Claude、谷歌的Gemini,还是国内的Kimi、通义千问和文心一言,我们大多数人的使用方式还是以“zero-shot prompt”直接对话的形式,也就是我们直接抛给ChatGPT一个问题,比如“写一篇关于xx主题的论文”,让它一次性给出回复。在这个过程中,LLM模型只会执行“生成”这一个动作。
然而,这与我们在真实世界中完成工作任务的流程是截然不同的。还是以写论文为例,一般我们会起草一个初稿,然后评估、分析、修订,迭代出第二、第三个版本,直到我们满意为止。其他工作和学习任务也是如此,我们通常会将其分解为一个一个的流程,然后按照流程来操作,以保证结果的质量。LLM模型也理应如此为我们服务。
Agent是什么?
Agent可以类比为一个机器人或虚拟助手,它可以自主地感知环境、做出决策并执行任务。Agent通常具有以下特征:
自主性: Agent可以独立行动,不需要人类的持续干预。
社交性: Agent可以与其他Agent或人类进行交流和互动。
反应性: Agent可以感知环境的变化并做出相应的反应。
主动性: Agent可以主动地采取行动以实现其目标。
也就是说Agent就可以作为一个应用,它是可以独立存在的。
Planning是什么?
Planning是指Agent制定执行计划的过程。

通常包括以下步骤:
任务拆分: 复杂任务不是一次性就能解决的,需要拆分成多个并行或串行的子任务来进行求解,任务规划的目标是找到一条最优的、能够解决问题的路线
自我反省: 自我反思是一个重要的方面,它允许自主代理通过完善过去的行动决策和纠正以前的错误来迭代改进。它在不可避免地会出现试错的现实任务中发挥着至关重要的作用。
思想链: 模型被指示“一步一步思考”,以利用更多的测试时间计算将困难任务分解为更小、更简单的步骤。
那么,可以理解为Planning是Agent的一种能力。
Workflow是什么?
Workflow是串联一系列单元,使它们能够按照开发者目标完成动作的有效方式。通过工作流,把看上去松散的单元组织在一起,有效的分配任务,就可以实现我们自己的目标。通常包括以下元素:
任务: 需要执行的具体工作。
步骤: 执行任务所需的各个阶段。
依赖关系: 规定每个步骤之间的先后顺序。
条件: 触发下一步行动的条件。
那么,疑问从这里产生了。workflow可以很小,指单个Agent中的针对于某一种需求的工作流程。
假设我们要开发一个送餐机器人。Agent是送餐机器人本身,planning是送餐机器人制定送餐路线的过程,workflow是送餐机器人的送餐流程。
Agent: 送餐机器人可以感知周围的环境,如道路、行人、障碍物等。它可以根据这些信息做出决策,如避开障碍物、选择最优路线等。
Planning: 送餐机器人需要在出发前制定送餐路线。它可以根据地图信息、交通状况等因素,生成一个或多个送餐路线。
Workflow: 送餐机器人的送餐流程包括以下步骤:
1.从餐厅取餐
2.送餐到顾客指定地点
3.完成送餐
好了,当我们知道这两种的区别之后,我们可以选择合适自己的应用或者流程去使用。
当我们可能需要研究某个东西的时候,我们希望ai自己帮我去网上搜索,自己总结给出我一个完善的答案,这时候我们就需要用到agent。
当我们对于某一种流程较为确定的时候,我们就可以使用工作流进行编排。
dify平台其实也可以进行简单的agent的开发操作,例如公司的RAG助手和经济类的新闻的搜索提取助手:

这是一个简单的新闻搜索的提取助手,我们要求使用搜索工具进行搜索,会结合关键字在谷歌上进行搜索操作,然后自己阅读搜索结果,最后进行总结返回。
在这个场景,我们只需要对他说“我需要今天的跨境电商的经济类的新闻”,这个输入,他就会自己思考拆解任务,生成搜索的关键词,然后自己进行搜索操作,输出的结果是排版好的表格的经济类的新闻标题和内容的总结。
使用方法类似于chat模式,我们可以用自然语言的输入来对agent进行任务的分配。