当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > 合作打造最佳Agent解决方案:微软TaskWeaver开源框架助力数据分析与行业定制

合作打造最佳Agent解决方案:微软TaskWeaver开源框架助力数据分析与行业定制

来源:51CTO.COM 2024-02-05 14:19:20 0浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《合作打造最佳Agent解决方案:微软TaskWeaver开源框架助力数据分析与行业定制》,聊聊,我们一起来看看吧!

数据分析一直是现代社会中的关键工具,帮助我们深入了解本质、发现规律并指导决策。然而,数据分析过程常常复杂且耗时,因此我们期望有一个智能助手可以直接与数据进行交互。随着大语言模型(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 框架方案,其设计符合数据分析和行业定制场景的需要。通过将用户语言转成程序语言,「与数据对话」将不再是梦想,而是现实。

本篇关于《合作打造最佳Agent解决方案:微软TaskWeaver开源框架助力数据分析与行业定制》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于科技周边的相关知识,请关注golang学习网公众号!

版本声明
本文转载于:51CTO.COM 如有侵犯,请联系study_golang@163.com删除
解析绝对定位的多重用途解析绝对定位的多重用途
上一篇
解析绝对定位的多重用途
三星发布会前爆出最新消息,S24系列即将搭载人工智能技术!
下一篇
三星发布会前爆出最新消息,S24系列即将搭载人工智能技术!
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 笔灵AI生成答辩PPT:高效制作学术与职场PPT的利器
    笔灵AI生成答辩PPT
    探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
    24次使用
  • 知网AIGC检测服务系统:精准识别学术文本中的AI生成内容
    知网AIGC检测服务系统
    知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
    38次使用
  • AIGC检测服务:AIbiye助力确保论文原创性
    AIGC检测-Aibiye
    AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
    37次使用
  • 易笔AI论文平台:快速生成高质量学术论文的利器
    易笔AI论文
    易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
    48次使用
  • 笔启AI论文写作平台:多类型论文生成与多语言支持
    笔启AI论文写作平台
    笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
    41次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码