AI 文摘

AIGC应用中Agent、Planning、Workflow的关系和区别





作者: 爱吃西瓜的褚岩 来源: 爱吃西瓜的褚岩

本文字数:1884字

阅读时间:8分钟

背景

(干货可直接看下一章节)

最近正在做一款AI应用,应用的主要内容是扮演一个助理的工作,对于用户提出的问题,以适合的格式来展示回答。

例如,用户提问的是技术,那么生成的回答应该像一篇技术调研报告;用户提问的是学术问题,那么生成的回答也应该是一篇学术综述的形式。总之,要让大模型能够揣摩出用户真正想要的回答形式,而不是对任何问题都千篇一律的回答格式。

这个应用的关键在于两个方面:

一是对于用户的问题,识别出真实的需求,知道用户想要什么回答格式。

二是对于用户的问题用相应的角色搜索总结后,以用户想要的格式展示回答。

我交由同事去做,最后交付的效果很好,我审核他的制作方法,发现他是用Multi-Agent的模式去做的。但是我回想,如果我去做的话,大概是会用workflow的方式去做。

如果对于这样的AI应用的需求,可以实现的方式有很多。那么我们常常见到的Agent、planning、Workflow这三个词汇,在AI应用中的关系和区别是什么呢?

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.完成送餐

“小”工作流

也可以很大,在多Agent项目中,来表达多个Agent的组合关系和顺序的,类似于像“CTO-产品经理-项目经理-开发者-测试人员”这样的工作流。还可以根据项目的管理理论,设计“瀑布式”“环式”“树状式”工作流。

“大”工作流

以上是我个人的一些开发理解,其实无论是我的开发思路,还是同事的开发思路都是一种工作流。不必纠结,工具本就是帮助开发的。这两种方式各有优劣。

多个Agent的优势:

提高效率: 多个Agent可以同时工作,缩短完成任务的时间。

提高鲁棒性: 如果一个Agent出现故障,其他Agent可以继续工作,不会影响整体任务的完成。

提高灵活性: 多个Agent可以根据不同的情况采取不同的行动,更灵活地完成任务。

多个Agent的劣势:

增加复杂性: 多个Agent之间的协作需要额外的设计和开发工作,增加了系统的复杂性。

增加成本: 多个Agent需要更多的硬件和软件资源,增加了系统的成本。

难以调试: 多个Agent之间的交互可能导致难以发现和解决的错误。

单个Agent的优势:

简单易用: 单个Agent的系统设计和开发相对简单,易于理解和维护。

成本低: 单个Agent只需要较少的硬件和软件资源,降低了系统的成本。

易于调试: 单个Agent的系统更容易调试,因为只需要考虑一个Agent的行为。

单个Agent的劣势:

效率低: 单个Agent需要花费更多的时间来完成任务。

鲁棒性差: 如果Agent出现故障,整个任务将无法完成。

灵活性差: 单个Agent无法根据不同的情况采取不同的行动,完成任务的灵活性较差。

总的来说,多个Agent适合需要高效率、高鲁棒性和高灵活性的任务,而单个Agent适合需要简单易用、低成本和易于调试的任务。

我是爱吃西红柿的褚岩,希望我的思考对你有些许的帮助,期待和你的交流!

我的公众号私信接入了一个AI客服Agent,欢迎各位体验或提出宝贵的意见

1

END

1

更多AI工具,参考Github-AiBard123国内AiBard123

可关注我们的公众号:每天AI新工具