Как выбрать между Skills и SubAgent
Оба подхода решают одну проблему: у меня есть готовый Agent, и теперь я хочу добавить новый функционал. Как именно встроить этот функционал в текущую систему Agent?
Судя по документации, Skills предоставляют основному агенту дополнительные возможности, например, рисование, планирование и т.п.
SubAgent же — это запуск отдельного Agent, который выполняет эти задачи в изолированном контексте.
Некоторые дополнительные преимущества SubAgent:
- Изоляция контекста: контекст отделён от контекста основного агента, что предотвращает загрязнение.
- Параллелизм: разные sub-агенты могут выполняться параллельно, что быстрее.
Выше я описал, что считаю главными различиями между SubAgent и Skills. Что касается специальных инструкций, знаний, ограничений инструментов — я считаю, что и SubAgent, и Skills могут это реализовать, так что это не является важным отличительным признаком.
Но раз оба подхода усиливают способность обрабатывать новые задачи, когда выбирать Skills и поручать задачу основному агенту, а когда передавать её SubAgent?
Я считаю, что можно руководствоваться принципом «высокой когезии и низкой связанности» из программной инженерии.
Если новая задача явно отличается от задач основного агента или требует параллельного выполнения, можно запустить отдельного SubAgent; в противном случае лучше реализовать через Skills. Запуск отдельного агента добавляет архитектурную сложность и неопределённость результата. Кроме того, изоляция контекста может быть и благом, и проклятием: как контролировать точность передачи информации от основного агента дочернему?
Автор:Jarvis
Ссылка:https://www.airouter.me/blog/skills-vs-subagent
Некоммерческое использование с указанием источника (CC BY-NC-SA 4.0).