0


TaskWeaver创建超级AI Agent

大语言模型(LLM),例如GPT、Claude、Palm和Llama等,在自然语言理解和生成方面展示了非凡的能力。这些模型已被广泛应用于各种应用中,包括聊天机器人、虚拟助手和内容生成系统。LLM有潜力彻底改变人类与机器的互动方式,提供更自然、更直观的体验。特别是那些利用大型语言模型(LLM)或其他人工智能技术的Agent,被视为具有规划任务、观察周围环境并相应执行适当行动的自主实体。几个现有的框架,包括Langchain、Semantic Kernel、Transformers Agent、Agents、AutoGen和JARVIS,已努力利用LLM进行面向任务的对话。这些框架使用户能够通过发出自然语言请求并接收回应来与LLM驱动的Agent进行交互。**然而,这些框架存在限制,限制了它们在处理特定领域场景和数据分析任务时的有效性。**

前言

** 复杂Agent**。现在各种应用方案都要蹭一下Agent的热度,其中大部分的实现仅是简单Agent,甚至是通过LLM prompt或RAG的方案实现的。这里期望实现的Agent能力要明显强于基座LLM的直接调用和各种工具的简单组合。复杂Agent的单次运行中可能涉及【至少】数十次、数百次的LLM API调用。在这个标准下,包括New Bing Chat在内的所有RAG方案都还不够“复杂”。

** 规划能力**。从原理上来说,LLM的训练目标只是记住训练集中的经验,甚至只是其中共性的部分,而非所有细节。从LLM的模型结构上来说,也没有任何更适合于规划的结构设计。什么样的方式才算是规划呢?这里举个例子:最简单的规划问题抽象是应用数学中的各种规划问题(运筹问题),例如线性规划、混合整数线性规划、非线性规划。解决规划问题有几个要求:1.给出的方案是可行的。对于序列规划问题来说,从起点到终点的每步都要是可行的。2.将问题拆分为几个子问题时,应确保能从子问题的求解结果完整的得到原问题的解决方案。3.解决方案的成本是合适的,最好能有某种最优性或近似最优性,至少也得是成本可接受得。LLM与目前基于LLM的复杂Agent能够满足这些要求么?基本不行。

AutoGPT、ChatDEV、AutoGEN 和 MetaGPT 是今年发布的一些Multi-Agent框架库。大多数现有框架的一个主要限制是缺乏处理丰富数据结构的原生支持。基于LLM的Agent经常需要处理复杂的数据结构,如嵌套列表、字典或数据框架,用于数据分析应用和许多其他商业场景。然而,许多现有框架在有效处理这些结构方面存在困难,特别是在将信息在聊天轮次之间或不同插件之间传输时。在这种情况下,这些框架要么将数据持久化到磁盘,要么将复杂结构编码为字符串或JSON对象作为提示。尽管这些方法是可行的,但它们可能导致不切实际和增加错误率,特别是在处理大型数据集时。 

现有方法的另一个限制是缺乏配置以融入领域知识。虽然这些框架提供了提示工程的工具和示例,但它们未能提供一种系统化的方式将特定领域知识嵌入到规划和代码生成过程中。因此,这种限制使得在特定领域要求下控制规划和代码生成过程变得具有挑战性。 

许多现有框架中遇到的另一个问题是它们的不灵活性,这阻碍了满足用户多样化需求的能力。虽然插件可以解决常见需求,但在处理特定查询时可能会不足。为每个特定查询编写单独的插件是不切实际的。在这些情况下,Agent能够编写自定义代码来执行用户查询变得必要。因此,有必要提出一种解决方案,无缝地将插件执行与自定义代码执行结合起来,以解决这个问题。 

微软最近推出了TaskWeaver,是AutoGen的升级版本,用户仅用几条命令就将可以将想法转化为代码。TaskWeaver不仅仅是一个工具,更是一个复杂的系统,能够解释命令,将它们转换为代码,并精确地执行任务。 

在这篇文章中,我们将讨论什么是 TaskWeaver,TaskWeaver 的特点是什么,Autogen 和 TaskWeaver 之间的区别,以及如何使用 TaskWeaver 创建一个超级 AI Agent,最后分析TaskWeaver的设计考量。

认识 TaskWeaver

TaskWeaver 是一个以代码为先的Agent框架,用于无缝规划和执行Agent任务。这个创新框架通过编码片段解释用户请求,并有效地协调各种以函数形式存在的插件来执行各种任务。

本文转载自: https://blog.csdn.net/2401_82452722/article/details/135934198
版权归原作者 神州问学 所有, 如有侵权,请联系我们删除。

“TaskWeaver创建超级AI Agent”的评论:

还没有评论