AI Agent 的拆解是指如果单次请求不能很好地遵循并完成所有事情,就将其拆分为一步一步的子任务。比如用户表达目标后,让大模型根据目标拆分出逐步的子任务,再通过工程方式循环请求子任务(可能会插入新任务),直至所有子任务完成。例如去年的 AutoGPT 就是这种方式(Planning and excute),但它只是学术界的探索,难以落地,除了一些 demo 产品,只在实在智能的 RPA 上见过。难以落地的原因有很多,如计划赶不上变化,提前规划的任务难以保证正确执行;大模型并非全知全能,规划的任务不一定正确;工程化执行时,循环的进入和退出时机也是问题。后来大家都在解决这些问题,思路和解法不同,比如 OpenAI 搞 Tools,FastGPT 搞可视化的 workflow 编排,大家逐渐意识到 workflow 是短期最优解,于是纷纷开始做。
判断自己的任务/Prompt 是否需要拆解为工作流,构建稳定可用的 AI Agent 是不断调试和迭代的过程,通常从性能最强的 LLM 着手,先用单条 Prompt 或 Prompt Chain 测试任务执行质量和稳定性,再根据实际情况和最终使用的 LLM 逐步拆解子任务。一般对于场景多样、结构复杂、输出格式要求严格的内容,基本可预见需要拆解为工作流。此外,鉴于 LLM 只能处理文本输入输出,涉及多媒体内容生成或从网络自主获取额外信息等能力时,必然需要通过工作流调用相应插件。只用一段 Prompt 的 Agent 也算 AI Agent。
拆!如果单次请求里面不能很好地遵循且完成所有的事情,那麽拆出来,一步一步去做。比如用户表达了自己想要达成的目标,接着就是让大模型去根据这个目标去拆分出来step by step的子任务,再利用工程的方式循环去请求子任务,(中间可能会插入新的任务),直到所有的子任务都被执行完成。这就是去年轰动一时的AutoGPT(Planning and excute)。但是AutoGPT其实只是学术界的一种探索,这东西很难落地,除了一些demo产品,我只在一个叫实在智能的RPA上见过。原因有非常非常多,之前的文章里我也提了很多次。这里只讲几个最难解的。1.计划赶不上变化,提前规划的任务如何保证都能正确执行?2.大模型也不是全知全能,如何保证规划的任务就是对的?3.既然是工程化执行,那何时进入到循环,何时退出循环又是一个问题。下面是当时在实在智能RPA Agent上的截图。或者有兴趣的也可以自己去搜AgentGPT,自己试着跑几个case就知道了。其实大家后来都有在解这些问题,只是思路、解法都不太一样。比如OpenAI开始搞Tools,FastGPT搞了可视化的workflow编排,后面大家都开始意识到好像workflow是一个短期最优解,于是各家都开始做。
拆!如果单次请求里面不能很好地遵循且完成所有的事情,那麽拆出来,一步一步去做。比如用户表达了自己想要达成的目标,接着就是让大模型去根据这个目标去拆分出来step by step的子任务,再利用工程的方式循环去请求子任务,(中间可能会插入新的任务),直到所有的子任务都被执行完成。这就是去年轰动一时的AutoGPT(Planning and excute)。但是AutoGPT其实只是学术界的一种探索,这东西很难落地,除了一些demo产品,我只在一个叫实在智能的RPA上见过。原因有非常非常多,之前的文章里我也提了很多次。这里只讲几个最难解的。1.计划赶不上变化,提前规划的任务如何保证都能正确执行?2.大模型也不是全知全能,如何保证规划的任务就是对的?3.既然是工程化执行,那何时进入到循环,何时退出循环又是一个问题。下面是当时在实在智能RPA Agent上的截图。或者有兴趣的也可以自己去搜AgentGPT,自己试着跑几个case就知道了。其实大家后来都有在解这些问题,只是思路、解法都不太一样。比如OpenAI开始搞Tools,FastGPT搞了可视化的workflow编排,后面大家都开始意识到好像workflow是一个短期最优解,于是各家都开始做。
1.如何判断自己的任务/Prompt是否需要拆解为工作流?构建稳定可用的AI Agent是一个需要不断调试和迭代的过程。Agent工程的终极目标是打造出流程尽量简洁、Prompt尽量精炼、生成结果最稳定的智能体。我们通常从当前性能最强的LLM(如ChatGPT-4和Claude 3.5 sonnet)着手,先用单条Prompt或Prompt Chain(可以简单理解为与LLM连续对话,引导LLM逐步完成复杂的任务)来测试任务的执行质量和稳定性。然后,根据实际执行情况、最终投产使用的LLM,逐步拆解子任务,降低LLM执行单任务的难度,直到达成工程目标。一般而言,对于类似文中这种场景多样、结构复杂、对输出格式要求严格的内容,我们基本可以预见到需要将其拆解为工作流。此外,鉴于LLM只能处理文本输入输出的特性,如果涉及生成多媒体内容或从网络自主获取额外信息等能力,必然需要通过工作流来调用相应的插件。2.只用了一段Prompt的Agent,还算AI Agent吗?算。详见[关于LLM、Prompt、Agent的概念理解](https://zkv549gmz8.feishu.cn/wiki/KhXkwqngAitUufkHNUUcPP57nDb?from=from_copylink)