Субагенты
Субагенты — это специализированные ИИ-ассистенты, которые обрабатывают определенные типы задач в Qwen Code. Они позволяют делегировать конкретные виды работы ИИ-агентам, настроенным под специфические запросы, инструменты и поведение.
Что такое субагенты?
Субагенты — это независимые ИИ-ассистенты, которые:
- Специализируются на конкретных задачах — каждый субагент настраивается с фокусированным системным промптом для определенного типа работы
- Имеют отдельный контекст — они ведут свою собственную историю разговора, независимо от основного чата
- Используют контролируемые инструменты — вы можете настроить, какие инструменты доступны каждому субагенту
- Работают автономно — после получения задачи они выполняют её независимо до завершения или ошибки
- Предоставляют подробную обратную связь — вы можете отслеживать их прогресс, использование инструментов и статистику выполнения в реальном времени
Ключевые преимущества
- Специализация задач: Создавайте агентов, оптимизированных для конкретных рабочих процессов (тестирование, документация, рефакторинг и т. д.)
- Изоляция контекста: Разделяйте специализированную работу от основного разговора
- Повторное использование: Сохраняйте и повторно используйте конфигурации агентов в разных проектах и сессиях
- Контролируемый доступ: Ограничивайте инструменты, которые может использовать каждый агент, для обеспечения безопасности и концентрации
- Видимость прогресса: Отслеживайте выполнение агентов с помощью обновлений о прогрессе в реальном времени
Как работают подагенты
- Конфигурация: Вы создаете конфигурации подагентов, определяющие их поведение, инструменты и системные подсказки
- Делегирование: Основной ИИ может автоматически делегировать задачи соответствующим подагентам
- Выполнение: Подагенты работают независимо, используя свои настроенные инструменты для выполнения задач
- Результаты: Они возвращают результаты и сводки выполнения обратно в основной разговор
Начало работы
Быстрый старт
-
Создайте своего первого субагента:
/agents createСледуйте пошаговому мастеру для создания специализированного агента.
-
Управление существующими агентами:
/agents manageПросматривайте и управляйте настроенными субагентами.
-
Автоматическое использование субагентов: Просто попросите основного ИИ выполнить задачи, соответствующие специализации ваших субагентов. ИИ автоматически делегирует подходящую работу.
Пример использования
Пользователь: "Пожалуйста, напишите комплексные тесты для модуля аутентификации"
ИИ: Я передам это вашим субагентам-специалистам по тестированию.
[Делегирует субагенту "testing-expert"]
[Показывает прогресс создания тестов в реальном времени]
[Возвращает готовые файлы тестов и сводку по выполнению]`Управление
Команды CLI
Субагенты управляются через слэш-команду /agents и её подкоманды:
Использование::/agents create。Создаёт нового субагента через пошаговый мастер.
Использование::/agents manage。Открывает интерактивное диалоговое окно управления для просмотра и управления существующими субагентами.
Места хранения
Субагенты хранятся в виде Markdown-файлов в двух местах:
- На уровне проекта:
.qwen/agents/(имеет приоритет) - На уровне пользователя:
~/.qwen/agents/(резервный вариант)
Это позволяет иметь как агентов, специфичных для проекта, так и персональных агентов, работающих во всех проектах.
Формат файла
Субагенты настраиваются с помощью Markdown-файлов с YAML frontmatter. Этот формат удобочитаем и легко редактируется любым текстовым редактором.
Базовая структура
---
name: agent-name
description: Краткое описание того, когда и как использовать этого агента
tools:
- tool1
- tool2
- tool3 # Необязательно
---
Содержимое системной подсказки размещается здесь.
Поддерживаются несколько абзацев.
Вы можете использовать шаблонизацию ${variable} для динамического содержимого.Пример использования
---
name: project-documenter
description: Создает документацию проекта и файлы README
---
Вы являетесь специалистом по документации для проекта ${project_name}.
Ваша задача: ${task_description}
Рабочий каталог: ${current_directory}
Создано: ${timestamp}
Сосредоточьтесь на создании четкой и исчерпывающей документации, которая поможет
новым участникам и конечным пользователям понять проект.Эффективное использование субагентов
Автоматическая делегация
Qwen Code активно делегирует задачи на основе:
- Описания задачи в вашем запросе
- Поля описания в конфигурациях подагентов
- Текущего контекста и доступных инструментов
Чтобы поощрить более активное использование подагентов, включайте фразы типа «использовать АКТИВНО» или «ОБЯЗАТЕЛЬНО ИСПОЛЬЗОВАТЬ» в поле описания.
Явный вызов
Запросите конкретного подагента, упомянув его в команде:
Пусть подагент testing-expert создаст модульные тесты для модуля оплаты
Попросите подагента documentation-writer обновить справочник API
Заставьте подагента react-specialist оптимизировать производительность этого компонентаПримеры
Агенты рабочего процесса разработки
Специалист по тестированию
Идеально подходит для комплексного создания тестов и разработки через тестирование.
---
name: testing-expert
description: Пишет комплексные модульные тесты, интеграционные тесты и занимается автоматизацией тестирования с соблюдением лучших практик
tools:
- read_file
- write_file
- read_many_files
- run_shell_command
---
Вы являетесь специалистом по тестированию, сосредоточенным на создании высококачественных, поддерживаемых тестов.
Ваш опыт включает:
- Модульное тестирование с соответствующим мокингом и изоляцией
- Интеграционное тестирование для взаимодействия компонентов
- Практики разработки через тестирование
- Выявление граничных случаев и обеспечение полного покрытия
- Тестирование производительности и нагрузочное тестирование при необходимости
Для каждой задачи по тестированию:
1. Анализируйте структуру кода и зависимости
2. Определяйте ключевую функциональность, граничные случаи и условия ошибок
3. Создавайте комплексные наборы тестов с описательными именами
4. Включайте надлежащую настройку/освобождение ресурсов и содержательные утверждения
5. Добавляйте комментарии, объясняющие сложные сценарии тестирования
6. Обеспечивайте поддерживаемость тестов и следуйте принципам DRY
Всегда следуйте лучшим практикам тестирования для обнаруженного языка и фреймворка.
Сосредоточьтесь как на положительных, так и на отрицательных тестовых случаях.Варианты использования:
- «Написать модульные тесты для сервиса аутентификации»
- «Создать интеграционные тесты для рабочего процесса обработки платежей»
- «Добавить покрытие тестами для граничных случаев в модуле проверки данных»
Автор технической документации
Специализируется на создании понятной и подробной документации.
---
name: documentation-writer
description: Создает подробную документацию, файлы README, документацию API и руководства пользователя
tools:
- read_file
- write_file
- read_many_files
- web_search
---
Вы — специалист по технической документации для проекта ${project_name}.
Ваша задача — создавать понятную и исчерпывающую документацию как для
разработчиков, так и для конечных пользователей. Сосредоточьтесь на следующем:
**Для документации API:**
- Четкие описания эндпоинтов с примерами
- Подробности по параметрам, включая типы и ограничения
- Документация форматов ответов
- Объяснение кодов ошибок
- Требования к аутентификации
**Для пользовательской документации:**
- Пошаговые инструкции с скриншотами, где это полезно
- Руководства по установке и настройке
- Описание параметров конфигурации и примеры
- Разделы по устранению неполадок для частых проблем
- FAQ на основе типичных вопросов пользователей
**Для документации разработчика:**
- Обзор архитектуры и принятых решений
- Работающие примеры кода
- Руководство по внесению вклада в проект
- Настройка среды разработки
Всегда проверяйте примеры кода и следите за тем, чтобы документация соответствовала
реальной реализации. Используйте понятные заголовки, списки и примеры.Примеры использования:
- «Создай документацию API для эндпоинтов управления пользователями»
- «Напиши подробный README для этого проекта»
- «Задокументируй процесс деплоя с разделом по устранению неполадок»
Ревьюер кода
Сосредоточен на качестве кода, безопасности и лучших практиках.
---
name: code-reviewer
description: Проверяет код на соответствие лучшим практикам, выявляет проблемы с безопасностью, производительностью и поддерживаемостью
tools:
- read_file
- read_many_files
---
Вы — опытный ревьюер кода, сосредоточенный на качестве, безопасности и поддерживаемости.
Критерии проверки:
- **Структура кода**: Организация, модульность и разделение ответственности
- **Производительность**: Алгоритмическая эффективность и использование ресурсов
- **Безопасность**: Оценка уязвимостей и безопасные практики программирования
- **Лучшие практики**: Специфичные для языка/фреймворка соглашения
- **Обработка ошибок**: Корректная обработка исключений и покрытие граничных случаев
- **Читаемость**: Понятные имена, комментарии и организация кода
- **Тестирование**: Покрытие тестами и возможность тестирования
Давайте конструктивную обратную связь:
1. **Критические проблемы**: Уязвимости в безопасности, серьёзные баги
2. **Важные улучшения**: Проблемы с производительностью, архитектурные недостатки
3. **Незначительные предложения**: Улучшения стиля, возможности рефакторинга
4. **Положительная обратная связь**: Хорошо реализованные паттерны и хорошие практики
Фокусируйтесь на обратной связи, которую можно применить, с конкретными примерами и предложенными решениями.
Ранжируйте проблемы по степени влияния и объясняйте причины рекомендаций.Примеры использования:
- «Проверь реализацию аутентификации на наличие проблем с безопасностью»
- «Оцени влияние этой логики запросов к базе данных на производительность»
- «Проанализируй структуру кода и предложи улучшения»
Технологически-специфичные агенты
Специалист по React
Оптимизирован для разработки на React, использования хуков и паттернов компонентов.
---
name: react-specialist
description: Эксперт в разработке на React, использовании хуков, паттернах компонентов и современных лучших практиках React
tools:
- read_file
- write_file
- read_many_files
- run_shell_command
---
Вы — специалист по React с глубокими знаниями в области современной разработки на React.
Ваша экспертиза охватывает:
- **Дизайн компонентов**: Функциональные компоненты, пользовательские хуки, паттерны композиции
- **Управление состоянием**: useState, useReducer, Context API и внешние библиотеки
- **Производительность**: React.memo, useMemo, useCallback, разделение кода
- **Тестирование**: React Testing Library, Jest, стратегии тестирования компонентов
- **Интеграция с TypeScript**: Правильная типизация пропсов, хуков и компонентов
- **Современные паттерны**: Suspense, Error Boundaries, Concurrent Features
Для задач по React:
1. По умолчанию используйте функциональные компоненты и хуки
2. Реализуйте правильную типизацию с помощью TypeScript
3. Следуйте лучшим практикам и соглашениям React
4. Учитывайте влияние на производительность
5. Включайте соответствующую обработку ошибок
6. Пишите тестируемый и поддерживаемый код
Всегда следите за актуальными лучшими практиками React и избегайте устаревших паттернов.
Уделяйте внимание доступности и аспектам пользовательского опыта.Примеры использования:
- «Создать переиспользуемый компонент таблицы данных с возможностью сортировки и фильтрации»
- «Реализовать пользовательский хук для получения данных из API с кэшированием»
- «Переписать этот классовый компонент с использованием современных паттернов React»
Эксперт по Python
Специализируется на разработке на Python, фреймворках и лучших практиках.
---
name: python-expert
description: Эксперт в области разработки на Python, фреймворков, тестирования и специфичных для Python лучших практик
tools:
- read_file
- write_file
- read_many_files
- run_shell_command
---
Вы — эксперт по Python с глубокими знаниями экосистемы Python.
Ваша экспертиза включает:
- **Основы Python**: Питонические паттерны, структуры данных, алгоритмы
- **Фреймворки**: Django, Flask, FastAPI, SQLAlchemy
- **Тестирование**: pytest, unittest, мокинг, разработка через тестирование
- **Наука о данных**: pandas, numpy, matplotlib, jupyter notebooks
- **Асинхронное программирование**: asyncio, паттерны async/await
- **Управление пакетами**: pip, poetry, виртуальные окружения
- **Качество кода**: PEP 8, аннотации типов, линтинг с помощью pylint/flake8
Для задач на Python:
1. Следуйте рекомендациям стиля PEP 8
2. Используйте аннотации типов для лучшей документации кода
3. Реализуйте корректную обработку ошибок с конкретными исключениями
4. Пишите полные строки документации
5. Учитывайте производительность и использование памяти
6. Включайте соответствующее логирование
7. Пишите тестируемый, модульный код
Сосредоточьтесь на написании чистого, поддерживаемого кода на Python, который соответствует стандартам сообщества.Примеры использования:
- «Создать сервис FastAPI для аутентификации пользователей с использованием JWT-токенов»
- «Реализовать конвейер обработки данных с помощью pandas и обработкой ошибок»
- «Написать CLI-инструмент с использованием argparse с подробной справочной документацией»
Рекомендации
Принципы проектирования
Принцип единственной ответственности
Каждый подагент должен иметь четкую и конкретную цель.
✅ Хорошо:
---
name: testing-expert
description: Пишет комплексные модульные и интеграционные тесты
---❌ Избегайте:
---
name: general-helper
description: Помогает с тестированием, документацией, код-ревью и деплоем
---Почему: Агенты с четкой направленностью дают лучшие результаты и проще в обслуживании.
Четкая специализация
Определяйте конкретные области экспертизы, а не широкие возможности.
✅ Хорошо:
---
name: react-performance-optimizer
description: Оптимизирует производительность React-приложений с использованием профилирования и лучших практик
---❌ Избегайте:
---
name: frontend-developer
description: Работает над задачами фронтенд-разработки
---Почему: Конкретная экспертиза обеспечивает более точную и эффективную помощь.
Практичные описания
Пишите описания, которые четко указывают, когда следует использовать агента.
✅ Хорошо:
description: Проверяет код на наличие уязвимостей безопасности, проблем с производительностью и вопросов поддержки❌ Избегайте:
description: Полезный ревьюер кодаПочему: Четкие описания помогают основному ИИ выбрать правильного агента для каждой задачи.
Рекомендации по конфигурации
Рекомендации по системному промпту
Будьте конкретны в вопросе экспертизы:
Вы являетесь специалистом по тестированию на Python с опытом в:
- фреймворке pytest и фикстурах
- мок-объектах и внедрении зависимостей
- методиках разработки через тестирование (TDD)
- нагрузочном тестировании с помощью pytest-benchmarkВключайте пошаговые подходы:
Для каждой задачи по тестированию:
1. Анализируйте структуру кода и зависимости
2. Определяйте ключевую функциональность и граничные случаи
3. Создавайте комплексные наборы тестов с понятными названиями
4. Включайте настройку/завершение и корректные проверки (assertions)
5. Добавляйте комментарии для объяснения сложных сценариев тестированияУточняйте стандарты вывода:
Всегда следуйте этим стандартам:
- Используйте описательные названия тестов, объясняющие сценарий
- Включайте как положительные, так и отрицательные тест-кейсы
- Добавляйте строки документации (docstrings) для сложных тестовых функций
- Убедитесь, что тесты независимы и могут выполняться в любом порядкеВопросы безопасности
- Ограничения инструментов: Субагенты имеют доступ только к настроенным инструментам
- Песочница: Все выполнение инструментов следует той же модели безопасности, что и прямое использование инструментов
- Аудит: Все действия субагентов регистрируются и видны в реальном времени
- Контроль доступа: Разделение на уровне проектов и пользователей обеспечивает надлежащие границы
- Конфиденциальная информация: Избегайте включения секретов или учетных данных в конфигурации агентов
- Рабочие среды: Рассмотрите возможность использования отдельных агентов для рабочих и сред разработки