Como escolher entre Skills e SubAgent
Ambas resolvem um problema: tenho um Agent já escrito e agora quero adicionar um novo recurso. Como esse recurso deve ser encaixado no sistema atual do Agent?
Pela descrição na documentação, pode-se entender que Skills dão mais capacidades ao Agent principal, como desenhar, planejar, etc.
Já o SubAgent é iniciar outro Agent, que executa essas tarefas com um contexto isolado.
Alguns benefícios adicionais do SubAgent são:
- Isolamento de contexto: separado do contexto do Agent principal, evitando contaminação.
- Paralelização: diferentes sub-agents podem ser executados em paralelo, sendo mais rápidos.
Acima estão as principais diferenças que considero entre Sub Agent e Skills. Quanto a conhecimento de instruções específicas e limitação de ferramentas, acredito que tanto Sub Agent quanto Skills conseguem implementar, então não são pontos de distinção suficientes.
Já que ambos visam aprimorar a capacidade de lidar com novas tarefas, quando escolher Skills — para o Agent principal executar essa tarefa — e quando escolher Sub Agent?
Acredito que podemos seguir os princípios de "alta coesão, baixo acoplamento" da engenharia de software.
Se essa nova tarefa for claramente diferente da do Agent principal ou precisar ser executada em paralelo, podemos iniciar um Sub Agent. Caso contrário, recomenda-se implementar via Skills, pois iniciar outro Agent traz complexidade arquitetural e incerteza nos resultados. Além disso, o isolamento de contexto é uma bênção e uma maldição: como garantir a precisão da mensagem transmitida do Agent principal para o sub-agent?
Autor:Jarvis
Link:https://www.airouter.me/blog/skills-vs-subagent
Reutilização não comercial com atribuição (CC BY-NC-SA 4.0).