天眼深度丨2023年dApp行业增
微软TaskWeaver开源框架:携手数据分析与行业定制,打造顶级Agent解决方案
文章来源:机器之心
图片来源:由无界 AI生成
数据分析一直是现代社会中的重要工具,它帮助我们洞察本质、发现规律并指导决策。然而,数据分析过程往往复杂且费时,因此我们期望存在一个智能助手助力用户直接 “与数据对话 “。得益于大语言模型(LLM)的发展,虚拟助手和 Copilot 等智能 Agent 纷纷涌现,它们在自然语言理解和生成方面的表现令人叹为观止。但遗憾的是,在处理复杂数据结构(如 DataFrame, ndarray 等)和引入领域知识方面,现有的 Agent 框架仍然举步维艰,而这恰恰是数据分析和专业领域中的核心需求。
为了突破这一瓶颈,微软推出了 TaskWeaver—— 一款代码优先的 Agent 框架。TaskWeaver 能够将用户的自然语言请求巧妙地转化为可执行代码,并支持丰富的数据结构、动态插件选择以及专业领域适应的规划过程。作为开源框架,TaskWeaver 充分发挥了大语言模型的潜力,通过可定制的示例和插件融入特定领域知识,让用户能够轻松打造个性化虚拟助手。
论文:TaskWeaver: A Code-First Agent Framework 论文地址:https://export.arxiv.org/abs/2311.17541TaskWeaver 项目已在 GitHub上开源,并于发布当日登上 GitHub 趋势榜,目前已收获 2.9k 个 star,在领英等社交平台上也有一些实用案例(例如用 TaskWeaver 进行 SAP 数据分析)。
项目主页:https://microsoft.github.io/TaskWeaver/ 项目地址:https://github.com/microsoft/TaskWeaver故事示例
追踪销售数据中的隐藏秘密
作为商业分析师的小雅,她的日常工作之一就是从近期的销售数据中找出异常现象,从而指导公司调整销售策略。所有销售数据都安全地存储在一个 SQL 数据库中。她渴望通过与 AI 助手的自然语言交流来轻松提取和分析数据。更重要的是,在销售领域,异常现象有其独特性,因此她希望 AI 助手能采用定制的异常检测算法来解决问题。图 1 生动地展示了小雅与 AI 助手的聊天实录。在收到小雅的求助信息后,AI 助手首先从数据库中提取出相应数据,并汇报给小雅进行确认。随后,该 AI 助手运用专属异常检测算法进行分析,并最终向小雅展示出一份直观的可视化结果。
图 1. 故事示例中的对话实录
Agent 框架需要具备哪些技能?
通过上述小雅的故事,我们梳理了 Agent 框架应具备的几大核心能力:
1. 插件支持:在上面的故事中,Agent 需要从数据库中获取数据,然后使用指定的异常检测算法。为了完成这些任务,智能助手需要能够定义和调用自定义插件,如 “query_database” 插件和 “anomaly_detection” 插件。
2. 丰富的数据结构支持:Agent 需要处理复杂的数据结构,如数组、矩阵、表格数据等,从而顺利进行高级数据处理,如预测、聚类等。此外,这些数据应能在不同插件间无缝传递。然而,现有的大多数 Agent 框架会将数据分析的中间结果转换为 Prompt 中的文本,或者先将它们保存为本地文件,然后需要时再读取。然而,这些做法容易出错和超过 Prompt 的字数限制。
3. 有状态执行:Agent 往往需要与用户进行多轮迭代交互,并根据用户输入,生成并执行代码。因此,这些代码的执行状态应在整个会话期间保留,直到会话结束。
4. 先推理后行动(ReAct):Agent 应该拥有 ReAct 的能力,即先观察推理后再采取行动,这在一些存在有不确定性的场景中非常有必要。例如,在上述样例中,由于数据库中的数据模式(schema)通常比较多样,因而 Agent 必须首先获取数据模式信息并了解哪些列是合适的(且与用户确认),然后才可以将相应的列名输入到异常检测算法中。
5. 生成任意代码:有时候,预定义的插件无法满足用户的请求,Agent 应能够生成代码以应对用户的临时需求。在上述示例中,Agent 需要生成代码来可视化检测到的异常,而这个过程是不借助于任何插件来实现的。