OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  TaskWeaver — 微软出品的面向代码的 Agent 框架

TaskWeaver — 微软出品的面向代码的 Agent 框架

 
  chatbot ·  2026-01-13 22:31:19 · 10 次点击  · 0 条评论  

TaskWeaver

![Python Version](https://img.shields.io/badge/Python-3776AB?&logo=python&logoColor=white-blue&label=3.10%20%7C%203.11)  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)  ![Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)

TaskWeaver 是一个代码优先的智能体框架,用于无缝规划和执行数据分析任务。该创新框架通过代码片段解释用户请求,并以函数形式高效协调各类插件,以有状态的方式执行数据分析任务。

与许多仅以文本形式跟踪与 LLM 聊天历史的智能体框架不同,TaskWeaver 同时保留了聊天历史代码执行历史,包括内存中的数据。这一特性增强了智能体框架的表达能力,使其非常适合处理复杂的数据结构,如高维表格数据。

🆕 最新动态

  • 📅2025-03-13: TaskWeaver 现在支持规划器(Planner)角色的视觉输入。请查看 视觉输入 了解更多详情。👀
  • 📅2025-01-16: TaskWeaver 增强了一个名为 Recepta 的实验性角色,以提升其推理能力。🧠
  • 📅2024-12-23: TaskWeaver 已集成 AgentOps,以实现更好的可观测性和监控。🔍
  • 📅2024-09-13: 我们引入了共享内存,用于存储 TaskWeaver 中不同角色之间共享的信息。请查看 内存 了解更多详情。🧠
  • 📅2024-09-13: 我们增强了经验特性,支持静态和动态经验选择。请查看 经验 了解更多详情。📚
  • 📅2024-07-02: 我们优化了 TaskWeaver,以支持在本地运行的非超大型语言模型。请查看此 文章 了解更多详情。🔗
  • 📅2024-05-07: 我们在文档中添加了两篇关于 评估 LLM 智能体为 TaskWeaver 添加新角色 的博客文章。📝
  • 📅2024-03-28: TaskWeaver 现在提供一体化 Docker 镜像,为用户提供便捷的一站式体验。请查看 Docker 了解更多详情。🐳
  • 📅2024-03-27: TaskWeaver 现在默认切换到 container 模式执行代码。请查看 代码执行 了解更多详情。🐳
  • ......
  • 📅2023-11-30: TaskWeaver 在 GitHub 上发布🎈。

💥 核心亮点

  • [x] 复杂任务规划 - TaskWeaver 具备任务分解和进度跟踪功能,专为解决复杂任务而设计。
  • [x] 反思式执行 - TaskWeaver 支持反思式执行,允许智能体在执行过程中进行反思并做出调整。
  • [x] 丰富的数据结构 - TaskWeaver 允许您在 Python 中使用丰富的数据结构,如 DataFrame,而无需处理字符串。
  • [x] 自定义算法 - TaskWeaver 允许您将自己的算法封装成插件并进行编排。
  • [x] 融入领域知识 - TaskWeaver 设计上易于融入领域特定知识,以提高可靠性。
  • [x] 有状态执行 - TaskWeaver 旨在支持生成代码的有状态执行,以确保一致且流畅的用户体验。
  • [x] 代码验证 - TaskWeaver 旨在在执行前验证生成的代码。它可以检测生成代码中的潜在问题并提供修复建议。
  • [x] 易于使用 - TaskWeaver 易于使用,提供示例插件、示例和教程帮助您入门。TaskWeaver 提供开箱即用的体验,用户安装后即可立即运行。
  • [x] 易于调试 - TaskWeaver 易于调试,提供详细透明的日志,帮助您理解整个过程,包括 LLM 提示、代码生成和执行过程。
  • [x] 安全考量 - TaskWeaver 支持基本的会话管理,以隔离不同用户的数据。代码执行被分离到不同的进程中,以避免相互干扰。
  • [x] 易于扩展 - TaskWeaver 易于扩展,可以通过多个智能体角色和插件来完成更复杂的任务。

📚 寻求贡献

仍然有许多功能和改进可以实现。但由于我们资源有限,无法全部实现,或者进展会很慢。我们期待您的贡献,让 TaskWeaver 变得更好。
- [ ] 易于使用和维护的 UX/UI
- [ ] 支持提示模板管理
- [ ] 更好的插件体验,例如显示更新、在插件运行中间停止、运行插件前用户确认等
- [ ] 与 LLM 的异步交互
- [ ] 支持远程代码执行

✨ 快速开始

🛠️ 步骤 1:安装

TaskWeaver 要求 Python >= 3.10。可以通过运行以下命令安装:

# [可选创建 conda 环境]
# conda create -n taskweaver python=3.10
# conda activate taskweaver

# 克隆仓库
git clone https://github.com/microsoft/TaskWeaver.git
cd TaskWeaver
# 安装依赖
pip install -r requirements.txt

如果您想安装 TaskWeaver 的早期版本,可以查看 发布 页面,找到标签(例如 v0.0.1),然后通过以下命令安装:

pip install git+https://github.com/microsoft/TaskWeaver@<TAG>

🖊️ 步骤 2:配置 LLM

在运行 TaskWeaver 之前,您需要提供您的 LLM 配置。以 OpenAI 为例,您可以按如下方式配置 taskweaver_config.json 文件。

OpenAI

{
  "llm.api_key": "您的 API 密钥",
  "llm.model": "模型名称,例如 gpt-4"
}

💡 TaskWeaver 也支持其他 LLM 和高级配置,请查看 文档 了解更多详情。

🚩 步骤 3:启动 TaskWeaver

💡 TaskWeaver 已默认切换到 container 模式执行代码,这意味着代码在容器中运行。您可能需要安装 Docker 并处理容器中的依赖项。请查看 代码执行 了解更多详情。

⌨️ 命令行界面 (CLI)

# 假设您在克隆的 TaskWeaver 文件夹中
python -m taskweaver -p ./project/

这将启动 TaskWeaver 进程,您可以通过命令行界面与其交互。如果一切顺利,您将看到以下提示:

=========================================================
 _____         _     _       __
|_   _|_ _ ___| | _ | |     / /__  ____ __   _____  _____
  | |/ _` / __| |/ /| | /| / / _ \/ __ `/ | / / _ \/ ___/
  | | (_| \__ \   < | |/ |/ /  __/ /_/ /| |/ /  __/ /
  |_|\__,_|___/_|\_\|__/|__/\___/\__,_/ |___/\___/_/
=========================================================
TaskWeaver: 我是 TaskWeaver,一个 AI 助手。要开始使用,请您输入您的请求好吗?
Human: ___

或者 💻 Web 界面

TaskWeaver 也支持用于演示目的的 WebUI,请参考 Web UI 文档 了解更多详情。

或者 📋 作为库导入

TaskWeaver 可以作为库导入,以集成到您现有的项目中,更多信息可以在 文档 中找到。

📖 文档

更多文档可以在 TaskWeaver 网站 上找到。

❓ 获取帮助

  • ❔ GitHub Issues (首选)
  • 💬 Discord 用于讨论
  • 其他沟通事宜,请联系 taskweaver@microsoft.com

🎬 演示示例

演示基于 Web UI 制作,该界面更适合展示生成的工件,如图像。演示也可以在命令行界面中进行。

1️⃣📉 示例 1:从数据库拉取数据并应用异常检测算法

在此示例中,我们将向您展示如何使用 TaskWeaver 从数据库拉取数据并应用异常检测算法。

异常检测

如果您想复现此示例,需要在 project/plugins/sql_pull_data.yaml 文件中配置 sql_pull_data 插件。您需要提供以下信息:

api_type: azure 或 openai
api_base: ...
api_key: ...
api_version: ...
deployment_name: ...
sqlite_db_path: sqlite:///../../../sample_data/anomaly_detection.db

sql_pull_data 插件是一个从数据库拉取数据的插件。它以自然语言请求作为输入,并返回一个 DataFrame 作为输出。

此插件基于 Langchain 实现。如果您想复现此示例,需要安装 Langchain 包:

pip install langchain
pip install tabulate

2️⃣🏦 示例 2:预测 QQQ 未来 7 天的价格

在此示例中,我们将向您展示如何使用 TaskWeaver 预测 QQQ 未来 7 天的价格。

纳斯达克 100 指数价格预测

如果您想复现此示例,需要确保已安装以下两个依赖项:

pip install yfinance
pip install statsmodels

更多示例,请参考我们的 论文

💡 TaskWeaver 的规划基于 LLM 模型。因此,如果您想复现示例,执行过程可能与您在视频中看到的不同。例如,在第二个演示中,助手可能会询问用户应使用哪种预测算法。通常,更具体的提示将有助于模型生成更好的计划和代码。

📚 引用

我们的论文可以在此 找到。如果您在研究中使用了 TaskWeaver,请引用我们的论文:

@article{taskweaver,
  title={TaskWeaver: A Code-First Agent Framework},
  author={Bo Qiao, Liqun Li, Xu Zhang, Shilin He, Yu Kang, Chaoyun Zhang, Fangkai Yang, Hang Dong, Jue Zhang, Lu Wang, Minghua Ma, Pu Zhao, Si Qin, Xiaoting Qin, Chao Du, Yong Xu, Qingwei Lin, Saravan Rajmohan, Dongmei Zhang},
  journal={arXiv preprint arXiv:2311.17541},
  year={2023}
}

商标

此项目可能包含项目、产品或服务的商标或徽标。授权使用 Microsoft 商标或徽标必须遵守并遵循 Microsoft 商标和品牌指南。在此项目的修改版本中使用 Microsoft 商标或徽标不得引起混淆或暗示 Microsoft 的赞助。任何第三方商标或徽标的使用均受该第三方的政策约束。

免责声明

此仓库中推荐的模型仅为示例,用于探索 TaskWeaver: A Code-First Agent Framework 论文中智能体系统的潜力。用户可以根据自己的需求替换此仓库中的模型。使用此仓库中推荐的模型时,您需要分别遵守这些模型的许可。Microsoft 对您使用此仓库导致的任何第三方权利侵权概不负责。用户同意就因使用此仓库引起的任何索赔,为 Microsoft 辩护、赔偿并使 Microsoft 免受所有损害、成本和律师费。如果有人认为此仓库侵犯了您的权利,请通知项目所有者邮箱。

10 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私政策 ·  服务条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 22 ms
Developed with Cursor