TaskWeaver  by microsoft

Agent framework for data analytics task automation

created 1 year ago
5,839 stars

Top 9.0% on sourcepulse

GitHubView on GitHub
Project Summary

TaskWeaver is a code-first agent framework designed for data analytics tasks, enabling seamless planning and execution through a plugin-based system. It targets developers and researchers who need to orchestrate complex data workflows, offering stateful execution and rich data structure handling beyond simple text history.

How It Works

TaskWeaver preserves both chat and code execution history, including in-memory data, to manage complex data analytics tasks statefully. This approach allows for richer interactions with data structures like DataFrames, unlike frameworks that only track text-based chat history. It supports task decomposition, reflective execution, code verification, and the encapsulation of custom algorithms into plugins.

Quick Start & Requirements

  • Installation: pip install -r requirements.txt after cloning the repository. Requires Python >= 3.10.
  • Configuration: Requires LLM API keys and model names configured in taskweaver_config.json.
  • Execution: Run via CLI: python -m taskweaver -p ./project/. Docker is the default for code execution, requiring Docker installation.
  • Documentation: TaskWeaver Website

Highlighted Details

  • Supports vision input for the Planner role.
  • Integrates with AgentOps for observability.
  • Introduces shared memory for inter-role information sharing.
  • Optimized for locally served, not-that-large language models.
  • Offers an all-in-one Docker image for simplified setup.

Maintenance & Community

  • Active development with recent updates (vision input, Recepta role, AgentOps integration).
  • Community support via Discord and GitHub Issues.
  • Contributions are welcomed.

Licensing & Compatibility

  • License: MIT License.
  • Compatibility: Permissive MIT license allows for commercial use and integration with closed-source projects.

Limitations & Caveats

The framework's planning relies on LLM models, meaning execution outcomes can vary. Some examples require specific plugin configurations (e.g., sql_pull_data) and additional package installations (langchain, tabulate, yfinance, statsmodels).

Health Check
Last commit

2 weeks ago

Responsiveness

Inactive

Pull Requests (30d)
1
Issues (30d)
1
Star History
175 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.