TaskWeaver for Analytical AI Agents (Microsoft)
TaskWeaver — фреймворк Microsoft Research для построения аналитических агентов, специализирующихся на выполнении кода. Ключевая концепция: агент генерирует Python-код для решения задачи, выполняет его в sandbox, анализирует результат и итерирует. Это делает TaskWeaver особенно эффективным для задач анализа данных, работы с датасетами и численных расчётов.
Базовая настройка TaskWeaver
# pip install taskweaver
# Или из репозитория
git clone https://github.com/microsoft/TaskWeaver.git
cd TaskWeaver
pip install -r requirements.txt
// project/taskweaver_config.json
{
"llm.api_base": "https://api.openai.com/v1",
"llm.api_key": "sk-...",
"llm.model": "gpt-4o",
"planner.example_base_path": "${AppBaseDir}/examples",
"code_interpreter.use_local_uri": true,
"code_interpreter.allowed_modules": ["pandas", "numpy", "matplotlib", "sklearn", "scipy"]
}
Запуск аналитической сессии
from taskweaver.app.app import TaskWeaverApp
app = TaskWeaverApp(app_dir="./project")
session = app.get_session()
# Анализ данных
response = session.chat(
"Загрузи файл sales_2024.csv, проведи EDA: "
"базовую статистику, распределения, выявление аномалий. "
"Создай визуализации ключевых паттернов."
)
# TaskWeaver:
# 1. Сгенерирует код pandas/matplotlib
# 2. Выполнит его
# 3. Вернёт результаты и графики
print(response.post_list[-1].get_artifact()) # Артефакты (изображения, данные)
print(response.post_list[-1].get_text()) # Текстовые выводы
Кастомные плагины (инструменты)
# project/plugins/db_query.py
from taskweaver.plugin import Plugin, register_plugin
import pandas as pd
@register_plugin
class DatabaseQueryPlugin(Plugin):
"""Плагин для запросов к корпоративной БД"""
def execute(self, query: str, database: str = "analytics") -> pd.DataFrame:
"""
Выполняет SQL-запрос к корпоративной базе данных.
Args:
query (str): SQL-запрос
database (str): База данных (analytics, sales, hr)
Returns:
pd.DataFrame: Результат запроса
"""
conn = get_db_connection(database)
return pd.read_sql(query, conn)
# project/plugins/db_query.yaml
name: db_query
enabled: true
required: false
description: Execute SQL queries against corporate databases
examples:
- "db_query('SELECT * FROM monthly_sales WHERE year=2024', 'sales')"
Мульти-шаговый анализ
# TaskWeaver поддерживает многошаговые аналитические задачи
# Шаг 1: Загрузка и очистка данных
session.chat(
"Загрузи данные продаж из БД за 2024 год и очисти: "
"удали дубликаты, обработай пропуски, нормализуй форматы дат"
)
# Шаг 2: Анализ трендов (агент помнит контекст)
session.chat(
"На очищенных данных проведи анализ сезонности: "
"декомпозиция временного ряда, STL-разложение"
)
# Шаг 3: Прогноз
session.chat(
"Построй прогноз на Q1 2025 с помощью Prophet. "
"Оцени точность на последних 3 месяцах (backtesting)"
)
# Шаг 4: Отчёт
result = session.chat(
"Сформируй markdown-отчёт с ключевыми находками, "
"встроенными графиками и таблицей прогноза"
)
Практический кейс: автоматизация финансового анализа
Задача: финансовый аналитик ежемесячно тратил 2 дня на подготовку отчёта: загрузка данных из 3 источников, расчёт 15 KPI, построение 8 графиков, выявление аномалий.
TaskWeaver-агент выполнял весь цикл автономно:
- Запросы к PostgreSQL (выручка, затраты)
- Загрузка Excel-файлов (бюджет)
- Расчёт KPI через pandas
- Построение графиков (matplotlib/plotly)
- Генерация markdown-отчёта с выводами
Результаты:
- Время подготовки отчёта: 2 дня → 25 минут автономной работы + 40 минут ревью
- Ошибки в формулах расчёта KPI: 0 (vs 2–3/квартал вручную при копировании Excel)
- Аналитик: тратит время на интерпретацию, а не на рутинные расчёты
Сроки
- Базовая настройка и первые аналитические задачи: 2–3 дня
- Разработка кастомных плагинов для корпоративных источников: 1 неделя
- Настройка sand box и безопасного выполнения кода: 3–5 дней
- Production-интеграция с планировщиком: 1 неделя







