搜索
首页科技周边人工智能TaskWeaver:开源框架助力数据分析和行业定制,构建卓越的Agent解决方案

数据分析一直是现代社会中的关键工具,帮助我们深入了解本质、发现规律并指导决策。然而,数据分析过程常常复杂且耗时,因此我们期望有一个智能助手可以直接与数据进行交互。随着大语言模型(LLM)的发展,虚拟助手和Copilot等智能代理纷纷出现,它们在自然语言理解和生成方面的表现令人惊叹。然而,遗憾的是,现有的代理框架在处理复杂数据结构(如DataFrame、ndarray等)和引入领域知识时仍然面临困难,而这恰恰是数据分析和专业领域中的核心需求。

为了更好地解决语音助手在执行任务时的瓶颈问题,微软推出了一款名为TaskWeaver的Agent框架。该框架以代码为优先,能够智能地将用户的自然语言请求转化为可执行的代码,同时支持多种数据结构和动态插件选择。此外,TaskWeaver还可以根据不同领域的规划过程进行专业适应,充分发挥了大语言模型的潜力。作为一款开源框架,TaskWeaver提供了可定制的示例和插件,可以融入特定领域的知识,让用户能够轻松打造个性化的虚拟助手。TaskWeaver的推出将有效地提高语音助手的智能化水平,满足用户对于虚拟助手个性化需求的不断增长。

TaskWeaver:开源框架助力数据分析和行业定制,构建卓越的Agent解决方案

  • 论文:TaskWeaver: A Code-First Agent Framework
  • 论文地址:https://export.arxiv.org/abs/2311.17541

TaskWeaver 项目已在 GitHub 上开源,并于发布当日登上 GitHub 趋势榜。目前,该项目已获得 2.9k 个 star,取得了很好的反响。此外,在领英等社交平台上也有一些实用案例,例如用 TaskWeaver 进行 SAP 数据分析。这些案例证明了 TaskWeaver 的实用性和价值。

TaskWeaver:开源框架助力数据分析和行业定制,构建卓越的Agent解决方案


  • 项目主页:https://microsoft.github.io/TaskWeaver/
  • 项目地址:https://github.com/microsoft/TaskWeaver

故事示例

追踪销售数据中的隐藏秘密

小雅是一位商业分析师,她的工作之一是从最近的销售数据中寻找异常情况,并根据这些异常情况指导公司调整销售策略。所有销售数据都被安全地存储在一个SQL数据库中。她希望能够通过与AI助手进行自然语言交流来轻松地提取和分析数据。特别重要的是,在销售领域,异常情况具有独特性,因此她希望AI助手能够采用定制的异常检测算法来解决这个问题。以下是小雅与AI助手的聊天记录(图1),展示了他们之间的互动。 小雅:你好,我需要帮助从数据库中提取销售数据并进行分析。 AI助手:好的,我会马上从数据库中提取相应的数据。稍后我会将提取的数据呈现给您确认。 小雅:非常感谢。 (经过一段时间) AI助手:我已经从数据库中提取了销售数据,以下是数据的概览,请您确认一下。 (AI助手展示数据的概览) 小雅:数据看起来不错,请继续进行异常检测和分析。 AI助手:明白了。我将使用我们定制的异常检测算法进行分析,并尽快向您展示直观的可视化结果。 (经过一段时间) AI助手:分析完成了。请您查看以下可视化结果。 (AI助手展示可视化结果) 小雅:非常感谢你的帮助!这些结果对我来说非常有价值。 AI助手:很高兴能帮到您。如果您还有其他问题或需要进一步的分析,随时告诉我。 小雅:当然,谢谢你的支持。

TaskWeaver:开源框架助力数据分析和行业定制,构建卓越的Agent解决方案

图 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 需要生成代码来可视化检测到的异常,而这个过程是不借助于任何插件来实现的。

6. 融入领域知识:Agent 应提供一种系统性的方案来融入特定领域的知识。这将帮助 LLM 进行更好的规划和准确地调用工具,从而产生可靠的结果,尤其是在行业定制的场景中。

揭秘 TaskWeaver 的核心架构

图 2 展示了 TaskWeaver 的总体架构,包括规划器(Planner),代码解释器(Code Interpreter),以及记忆模块(Memory)。

规划器就像是系统的大脑,它有两个核心职责:1)制定计划,即把用户的需求拆分成子任务,将这些子任务逐个发送给代码解释器,并在整个计划执行过程中根据需要自我调整计划方案;2)回应用户,它会将代码解释器的反馈结果转换成用户容易理解的答案并发送给用户。

代码解释器主要由两个组件组成:代码生成器(Code Generator)会收到规划器发送的子任务,结合现有可用的插件以及领域特有的任务示例,来生成相应的代码块;代码执行器(Code Executor)则负责执行生成的代码,并在整个会话过程中保持执行状态。正因为此,复杂数据结构可以在内存中传递而无需通过 Prompt 或者文件系统。这就像在 Jupyter Notebook 中用 Python 编程,用户在单元格中输入代码片段,程序的内部状态会按顺序执行保留下来并且可被后续过程被引用。在实现上,每个会话中,代码执行器都会有一个独立的 Python 进程来执行代码,从而支持同时服务多用户。

记忆模块主要存储了整个系统运行过程中的有用信息,如执行结果等,可以被不同的模块写入和读取。短期记忆主要包括当前会话中用户和 TaskWeaver 之间的通信记录,以及各模块之间的通信记录。长期记忆则包括了用户可预先定制的领域知识,以及在交互过程中总结出的一些经验等等。

TaskWeaver:开源框架助力数据分析和行业定制,构建卓越的Agent解决方案

图 2. TaskWeaver 整体架构示意图

除了基本架构之外,TaskWeaver 还具有许多独特的设计。例如,会话压缩功能可以减小文本大小,从而允许更多的对话轮数;动态插件选择功能能够根据用户请求自动挑选合适的插件,从而允许集成更多的定制插件。此外,TaskWeaver 还支持经验保存功能,用户在使用过程中通过输入命令即可触发该功能,它将总结用户在当前会话中的经验教训,避免在下次会话中重复错误,实现真正的个性化。在安全性方面,TaskWeaver 也进行了精心设计,例如用户可以指定一个 Python 模块的白名单列表,如果生成的代码中引用了白名单之外的模块,将触发错误,从而降低安全风险。

TaskWeaver 的具体流程

图 3 向我们展示了 TaskWeaver 在完成前述样例任务的部分流程。

首先,规划器接收用户的输入,结合各模块功能描述和规划示例生成具体规划。该规划包含四个子任务,而其中第一个子任务是从数据库中提取数据并描述数据模式。

然后,代码生成器根据其能力描述和所有相关插件的定义生成一段代码。这段代码调用了 sql_pull_data 插件,将数据保存到 DataFrame 中,并提供数据模式的描述。

最后,生成的代码会被发送到代码执行器中执行,完成后的结果将被发送到规划器中以更新规划或者进行下一个子任务。图中执行结果显示 DataFrame 中有两个列,即日期和数值。规划器可以进一步与用户确认这些列是否正确,或者直接进行下一步的 anomaly_detection 插件的调用。

TaskWeaver:开源框架助力数据分析和行业定制,构建卓越的Agent解决方案

图 3. TaskWeaver 内部工作流

TaskWeaver 中如何注入领域知识?

在大模型应用中,整合特定领域知识的主要目的是提高 LLM 在行业定制中的泛化性能。TaskWeaver 提供了三种将领域知识注入模型的方法:

  • 使用插件进行定制:用户可以通过自定义插件的形式整合领域知识。插件可以有多种形式,如调用 API,从特定数据库中抓取数据,或运行特定的机器学习算法或模型等。插件定制相对直观,只需提供插件的基本信息(包括插件名称、功能描述、输入参数和返回值)以及 Python 实现。
  • 使用示例进行定制:TaskWeaver 还为用户提供了一个系统化的接口(以 YAML 格式)来配置示例,从而教导 LLM 如何响应用户请求。具体而言,示例可以分为两种类型,分别用于规划器中的规划制定和代码生成器中的代码编程。
  • 进行经验保存:TaskWeaver 支持用户将当前会话过程总结并存储为长期记忆。用户可以将专业领域知识作为对话内容对 TaskWeaver 进行 “教学”,随后保存对话为经验。在后续的使用过程中就可以通过动态加载经验,更好地完成专业领域问题。

如何使用  TaskWeaver?

TaskWeaver 的完整代码目前已在 GitHub 上开源。目前支持三种方案进行使用,分别是命令行启动,网页服务,以及以 Python 库的形式导入。在简单安装后,用户只需要配置几项关键参数,如 LLM API 地址、密钥和模型名称,即可轻松启动 TaskWeaver 服务。

TaskWeaver:开源框架助力数据分析和行业定制,构建卓越的Agent解决方案

图 4. 命令行启动界面

TaskWeaver:开源框架助力数据分析和行业定制,构建卓越的Agent解决方案

图 5. TaskWeaver 运行样例

TaskWeaver 是一款全新的 Agent 框架方案,其设计符合数据分析和行业定制场景的需要。通过将用户语言转成程序语言,「与数据对话」将不再是梦想,而是现实。

以上是TaskWeaver:开源框架助力数据分析和行业定制,构建卓越的Agent解决方案的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:51CTO.COM。如有侵权,请联系admin@php.cn删除
阅读AI索引2025:AI是您的朋友,敌人还是副驾驶?阅读AI索引2025:AI是您的朋友,敌人还是副驾驶?Apr 11, 2025 pm 12:13 PM

斯坦福大学以人为本人工智能研究所发布的《2025年人工智能指数报告》对正在进行的人工智能革命进行了很好的概述。让我们用四个简单的概念来解读它:认知(了解正在发生的事情)、欣赏(看到好处)、接纳(面对挑战)和责任(弄清我们的责任)。 认知:人工智能无处不在,并且发展迅速 我们需要敏锐地意识到人工智能发展和传播的速度有多快。人工智能系统正在不断改进,在数学和复杂思维测试中取得了优异的成绩,而就在一年前,它们还在这些测试中惨败。想象一下,人工智能解决复杂的编码问题或研究生水平的科学问题——自2023年

开始使用Meta Llama 3.2 -Analytics Vidhya开始使用Meta Llama 3.2 -Analytics VidhyaApr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移动AI的飞跃 Meta最近公布了Llama 3.2,这是AI的重大进步,具有强大的视觉功能和针对移动设备优化的轻量级文本模型。 以成功为基础

AV字节:Meta' llama 3.2,Google的双子座1.5等AV字节:Meta' llama 3.2,Google的双子座1.5等Apr 11, 2025 pm 12:01 PM

本周的AI景观:进步,道德考虑和监管辩论的旋风。 OpenAI,Google,Meta和Microsoft等主要参与者已经释放了一系列更新,从开创性的新车型到LE的关键转变

与机器交谈的人类成本:聊天机器人真的可以在乎吗?与机器交谈的人类成本:聊天机器人真的可以在乎吗?Apr 11, 2025 pm 12:00 PM

连接的舒适幻想:我们在与AI的关系中真的在蓬勃发展吗? 这个问题挑战了麻省理工学院媒体实验室“用AI(AHA)”研讨会的乐观语气。事件展示了加油

了解Python的Scipy图书馆了解Python的Scipy图书馆Apr 11, 2025 am 11:57 AM

介绍 想象一下,您是科学家或工程师解决复杂问题 - 微分方程,优化挑战或傅立叶分析。 Python的易用性和图形功能很有吸引力,但是这些任务需要强大的工具

3种运行Llama 3.2的方法-Analytics Vidhya3种运行Llama 3.2的方法-Analytics VidhyaApr 11, 2025 am 11:56 AM

Meta's Llama 3.2:多式联运AI强力 Meta的最新多模式模型Llama 3.2代表了AI的重大进步,具有增强的语言理解力,提高的准确性和出色的文本生成能力。 它的能力t

使用dagster自动化数据质量检查使用dagster自动化数据质量检查Apr 11, 2025 am 11:44 AM

数据质量保证:与Dagster自动检查和良好期望 保持高数据质量对于数据驱动的业务至关重要。 随着数据量和源的增加,手动质量控制变得效率低下,容易出现错误。

大型机在人工智能时代有角色吗?大型机在人工智能时代有角色吗?Apr 11, 2025 am 11:42 AM

大型机:AI革命的无名英雄 虽然服务器在通用应用程序上表现出色并处理多个客户端,但大型机是专为关键任务任务而建立的。 这些功能强大的系统经常在Heavil中找到

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器