AutoGen 2.0:微软发布代码优先的Agent框架TaskWeaver-AI.x-AIGC专属社区-51CTO.COM

AutoGen 2.0:微软发布代码优先的Agent框架TaskWeaver 精华

发布于 2024-6-7 11:26
浏览
0收藏

进入大模型时代,微软在推动大模型应用落地动作频频,先后发布了Semantic Kernel,PromptFlow,AutoGen等框架,最近又发布了一款Agent框架:TaskWeaver。它被作为一个代码优先框架,用于构建LLM Agent。它将用户需求转换为可执行代码,并将用户定义的插件视为可调用函数。TaskWeaver 支持丰富的数据结构(支持本地 Python 数据结构,如 DataFrames )、灵活的插件使用和动态插件选择,并利用 LLM 编码功能实现复杂逻辑。用户可提供示例,注入专业领域知识来指导规划和代码生成,并确保生成代码的安全执行,包括执行前验证代码,及将会话隔离到受限进程,后期还会提供沙箱机制。在模型调用成本上,允许不同模块采用不同的 LLM 模型 ,还纳入一定规则以便跳过不必要的调用 。

AutoGen 2.0:微软发布代码优先的Agent框架TaskWeaver-AI.x社区

​https://arxiv.org/pdf/2311.17541v1.pdf​

TaskWeaver 由三个主要组件组成:计划器、代码生成器和代码执行器。这些组件共同创建了一个双层计划系统。首先,高阶计划概述了总体战略。然后,详细执行计划指导框架完成每项任务,确保效率和准确性。

下面是该框架的工作流程。

AutoGen 2.0:微软发布代码优先的Agent框架TaskWeaver-AI.x社区

它还可以很方便的应用在mutiagent场景中,不仅可以将agent作为插件被集成,也可以把它放到AutoGen等多agent框架中使用。

AutoGen 2.0:微软发布代码优先的Agent框架TaskWeaver-AI.x社区

官方提到的亮点特性:

  • 丰富的数据结构--TaskWeaver 允许你在 Python 中使用丰富的数据结构(如 DataFrames),而不必使用文本字符串。
  • 自定义算法--TaskWeaver 允许你将自己的算法封装到插件中(以 Python 函数的形式),并协调它们来完成复杂的任务。
  • 融入特定领域的知识--TaskWeaver 的设计可轻松融入特定领域的知识,如执行流程知识,以提高AI copilot的可靠性。
  • 有状态对话--TaskWeaver 支持有状态对话。它可以记住对话的上下文,并利用它来改善用户体验。
  • 代码验证--TaskWeaver 可在执行前验证生成的代码。它可以检测生成代码中的潜在问题,并提供修复建议。
  • 易于使用--TaskWeaver 的设计宗旨是易于使用。提供了一套示例插件和教程,可帮助用户轻松上手。用户可以在示例插件的基础上轻松创建自己的插件。TaskWeaver 提供开箱即用的体验,允许用户在安装后立即运行服务。
  • 易于调试--TaskWeaver 的设计易于调试。有详细的日志记录,帮助你了解在调用 LLM、代码生成和执行过程中发生了什么。
  • 安全考虑--TaskWeaver 支持基本的会话管理,将不同用户的数据分开。代码执行被分成不同的进程,以避免相互干扰。
  • 易于扩展--TaskWeaver 的设计易于扩展,以完成更复杂的任务。可以创建多个copilot来扮演不同的角色,并编排它们来完成复杂的任务。

笔者认为,它还有一个比较大的亮点是,它易于集成,可以把它当作一个library使用,方便的、渐进式地集成到现有的系统。

app_dir = "/path/to/project/"
app = TaskWeaverApp(app_dir=app_dir)
session = app.get_session()


user_query = "hello, what can you do?"
response_round = session.send_message(user_query,
                                      event_handler=lambda _type, _msg: print(f"{_type}:\n{_msg}"))
print(response_round.to_dict())

这将带来很大的编程范式改变,开发者不用花心思去具体进行数据处理等琐碎需求,交给agent帮你实现,这样既提高灵活性,又减少了工作量,这算不算是AI时代的高阶“策略模式”呢?

本文转载自 AI工程化​,作者: ully

收藏
回复
举报
回复
相关推荐