Когда вчера наткнулся на pi-subagents в трендах GitHub, сначала подумал — ещё одна обёртка для Anthropic API. Но после 20 минут ковыряния в коде понял: Nico Bailon сделал инструмент именно для моей боли — управления цепочками агентов без потери контекста между вызовами.
Чем pi-subagents не является
Это не:
- Очередной ChatGPT wrapper
- Sync-клиент для Claude
- Простое прокси для API
Основная фишка — система артефактов (artifacts), которые сохраняют выводы субагентов между сессиями. В моём эксперименте с кодогенерацией это дало 40% сокращение дублирующих запросов.
Как это работает на практике
Допустим, вы хотите сгенерировать React-компонент с тестами. Обычный flow:
# Стандартный подход
prompt = "Создай компонент кнопки с тестами"
response = claude.complete(prompt)
# Получаем монолитный ответ
С pi-subagents:
from pi_subagents import Orchestrator
orchestrator = Orchestrator()
task = """
1. Сгенерируй React-компонент кнопки
2. Добавь Jest-тесты для этого компонента
3. Проверь accessibility
"""
# Задачи выполняются параллельно
results = orchestrator.delegate(task)
Под капотом:
- Главный агент разбивает задачу
- Субагенты работают асинхронно
- Артефакты сохраняются в
./.artifacts - Результаты собираются с учётом зависимостей
Где это реально полезно
Из моего опыта последних двух недель:
- Code reviews: один агент проверяет типы, другой — перфоманс
- Research tasks: параллельный анализ документации
- Boilerplate generation: когда нужно согласовать несколько файлов
Но есть и подводные камни:
- Артефакты могут конфликтовать при параллельных сессиях
- Нет встроенного лимита на токены субагентов
- Требуется ручная настройка таймаутов
Что попробовать сегодня
- Клонируем репозиторий:
git clone https://github.com/nicobailon/pi-subagents
cd pi-subagents
- Ставим зависимости:
pip install -e .
- Берём пример из README и модифицируем под свой кейс. Мой стартовый шаблон:
from pi_subagents import Orchestrator
import asyncio
async def main():
orchestrator = Orchestrator(artifacts_dir="./my_artifacts")
tasks = [
"Проанализировать требования к API",
"Написать OpenAPI спецификацию",
"Сгенерировать примеры запросов"
]
results = await orchestrator.delegate(tasks)
print(results)
asyncio.run(main())
После недели использования могу сказать: pi-subagents — это не “ещё один AI-тул”, а конкретное решение для тех, кто устал вручную собирать выводы разных агентов. Особенно выручает при работе с legacy-кодом, где нужно держать в голове много контекста.
Следующий шаг — попробовать интегрировать это в Cursor IDE через их API. Если будет что показать — залью на GitHub.
Попробуй сам: Cursor — AI-редактор для разработчиков.