TaskWeaver
微软开源的代码优先AI Agent框架,让AI直接写Python代码执行数据分析任务
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
微软开源的代码优先AI Agent框架,让AI直接写Python代码执行数据分析任务
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:TaskWeaver 架构图 — Planner 负责任务规划,Code Interpreter 执行代码,多角色协作完成复杂数据分析
想象这样一个场景:你手头有一份销售数据报表,想知道「去年第四季度华南区毛利率为什么下滑了3个百分点」。传统做法是你把数据丢给 AI,AI 给出一段分析思路,然后你去 Excel 里自己算——来回折腾,效率低下。
TaskWeaver 解决的就是这个问题。它是微软推出的一款「代码优先」(Code-First)的 AI Agent 框架,核心思路是:让 AI 直接写 Python 代码去分析真实数据,而不是在脑子里「模拟」分析过程。就像给 AI 配了一个精通 Python 的实习生——你只管提需求,它自己动手写代码、跑代码、出结果。
大多数 AI Agent 在处理数据分析时面临一个根本矛盾:LLM 擅长语言推理,但不擅长精确的数值计算。当数据量达到数万行、多表关联、需要统计检验时,纯文本推理的错误率会显著上升。
微软 TaskWeaver 团队的解法是:不追求 AI「学会」数据分析,而是让 AI 借助专业的代码执行环境来完成这项工作。整个框架的设计哲学是「AI 负责决策,代码负责执行」——Planner 将用户请求拆解为子任务,Code Interpreter 负责在隔离的 Python 环境中实际运行分析代码,两者通过消息总线和状态管理紧密配合。
这种架构的灵感部分来自微软内部的数据分析工作流——当分析工具本身就需要写 Python 脚本时,为什么不让 AI 也用同样的方式工作?
TaskWeaver 采用角色(Role)机制来组织 Agent 行为。默认包括:
这套多角色协作机制的优势在于职责单一、易于扩展。每个角色只做一件事,通过共享内存(Shared Memory)交换上下文,避免了单一 Agent 上下文窗口膨胀的问题。
这是 TaskWeaver 与其他 Agent 框架最显著的差异。大多数 Agent 的对话是「无状态的」——每轮对话独立理解用户请求,无法自然地延续之前的分析过程。TaskWeaver 则保持了完整的执行状态:
这意味着当你问「再看看毛利率和营销费用的相关性」时,Agent 知道之前已经做过什么分析、产生了哪些中间数据,不需要重新开始。
安全是数据分析 Agent 的核心考量。TaskWeaver 默认使用容器模式(Container Mode)运行用户生成的代码:每次代码执行都在独立的子进程中运行,与主进程隔离。这意味着即使用户请求被恶意构造,代码也无法访问 TaskWeaver 自身的文件系统或敏感数据。
同时,框架还支持本地内核模式(Local Kernel Mode),适合信任代码来源、追求更快执行速度的场景。
TaskWeaver 提供插件机制,允许用户将自定义算法封装为函数,注册到框架中供 Agent 调用。内置插件包括:文档检索(RAG-based)、网页浏览器视觉探索等。插件以 Python 函数的形式编写,通过 YAML 配置暴露给 LLM 调用。
TaskWeaver 不绑定特定 LLM 服务商,支持:OpenAI GPT 系列、Google Gemini、Ollama(本地模型)、Qwen(阿里通义)、Zhipu(智谱)等。通过统一的消息格式和模型抽象层,用户可以在配置文件中切换后端,无需修改业务代码。
TaskWeaver 提供两种部署路径:
方式一:pip 安装(推荐)
git clone https://github.com/microsoft/TaskWeaver.git
cd TaskWeaver
pip install -r requirements.txt
# 配置 LLM API Key(支持 .env 文件)
python -m taskweaver start
依赖项明确,Python 3.10+ 即可运行,不需要 GPU。
方式二:Docker 一键部署(all-in-one 镜像)
项目提供了完整的 Dockerfile,基于 python:3.10-slim,内置 Chainlit Web UI,支持网页端对话交互。镜像还预装了 DuckDuckGo 网页搜索、LangChain FAISS 向量库、Sentence-Transformers 等组件,开箱即用。
Dockerfile 为单阶段构建,10 分钟内可完成从拉取镜像到启动 Web UI 全流程。
TaskWeaver 最适合的场景:
局限性也需要正视:
TaskWeaver 代表了 AI Agent 领域的一个分支方向:不是让 AI「学会」专业技能,而是让 AI 借助专业工具完成任务。这种「AI 指挥、代码执行」的范式,与 LangChain 的工具调用(Tool Calling)理念一脉相承,但在数据分析和代码执行的有状态管理上做得更为深入。
从 GitHub 6162 颗星和持续的版本更新(最近一次 2025年3月支持视觉输入)来看,TaskWeaver 已经度过了「概念验证」阶段,正在向更稳定的生产可用性演进。对有数据分析需求的团队而言,这是一个值得跟踪的框架。
图2:TaskWeaver 项目概览