Описание
TaskWeaver — это инновационный framework для агентов, работающий по принципу "сначала код" (code-first), что обеспечивает бесшовное планирование и выполнение задач анализа данных. Он интерпретирует запросы пользователей с помощью фрагментов кода и эффективно координирует различные плагины, которые по сути являются функциями, для выполнения анализа данных в состоянии (stateful manner). Ключевым отличием TaskWeaver является его способность сохранять не только историю чатов с большими языковыми моделями (LLM), но и историю выполнения кода, включая данные в оперативной памяти. Такой всесторонний учет истории значительно повышает выразительность framework'а, делая его особенно подходящим для обработки сложных структур данных, таких как высокоразмерные табличные данные.
Framework разработан для решения сложных задач благодаря своим встроенным возможностям декомпозиции задач и отслеживания прогресса. Он поддерживает рефлексивное выполнение, позволяя агенту анализировать собственный процесс выполнения и вносить необходимые коррективы. TaskWeaver позволяет пользователям работать с богатыми структурами данных в Python, такими как DataFrames, выходя за рамки простых текстовых взаимодействий. Пользователи также могут инкапсулировать свои собственные алгоритмы в плагины и оркестрировать их в рамках framework'а. Кроме того, TaskWeaver разработан для легкого включения предметно-ориентированных знаний для повышения надежности и обеспечивает выполнение с сохранением состояния (stateful execution) сгенерированного кода для обеспечения согласованного пользовательского опыта. Он включает механизмы проверки кода для обнаружения и предложения исправлений потенциальных проблем перед выполнением.
TaskWeaver уделяет первостепенное внимание простоте использования и отладки. Он поставляется с примерами плагинов, примерами кода и учебными пособиями для облегчения быстрого старта, предлагая "открытый" (open-box) опыт, который можно запустить сразу после установки. Предоставляются подробные и прозрачные журналы, помогающие пользователям понять весь процесс, от запросов к LLM до генерации и выполнения кода. Меры безопасности включают базовое управление сессиями для изоляции пользовательских данных и разделение выполнения кода на разные процессы для предотвращения вмешательства. Framework также разработан для легкого расширения, поддерживая несколько агентов в качестве ролей и плагинов для более сложных задач. Приветствуются вклады для дальнейшего улучшения таких функций, как UX/UI, управление шаблонами запросов и асинхронные взаимодействия с LLM.
Основные функции TaskWeaver
Framework для агентов с кодовым подходом для анализа данных
Бесшовное планирование и выполнение задач
Интерпретирует запросы пользователей через фрагменты кода
Оркестрирует плагины (функции) для выполнения задач
Сохраняет историю чатов и историю выполнения кода
Поддерживает данные в памяти для выполнения с сохранением состояния
Поддерживает богатые структуры данных, такие как DataFrames
Декомпозиция задач и отслеживание прогресса
Рефлексивное выполнение для корректировки процессов
Инкапсулирует пользовательские алгоритмы в плагины
Включает предметно-ориентированные знания
Проверка кода перед выполнением
Прост в использовании с примерами и учебными пособиями
Подробное и прозрачное логирование для отладки
Меры безопасности для разделения данных и изоляции процессов
Начало работы с TaskWeaver
Установка: Клонируйте репозиторий и установите зависимости с помощью pip.
Конфигурация: Настройте конфигурации LLM, например, создав файл taskweaver_config.json.
Выполнение: Запустите TaskWeaver через интерфейс командной строки или интегрируйте его как библиотеку.
Взаимодействие: Взаимодействуйте с TaskWeaver через командную строку или его веб-интерфейс.
Разработка: Расширьте TaskWeaver, добавляя новые роли и плагины для сложных задач.
Варианты использования TaskWeaver
- Планирование анализа данных
- Оркестрация выполнения кода
- Разработка агентов с сохранением состояния
- Выполнение задач на основе плагинов
- Обработка сложных структур данных
- Предметно-ориентированные AI-агенты
- Инкапсуляция алгоритмов








