Cómo elegir entre Skills y SubAgent
Ambas resuelven un mismo problema: tengo un Agent ya escrito y ahora quiero añadir una nueva funcionalidad. ¿Cómo insertar esta funcionalidad en el sistema de Agent actual?
Según la descripción en la documentación, se puede entender que Skills proporciona más capacidades al Agent principal, como soporte para dibujar, planificar, etc. Mientras que SubAgent consiste en lanzar otro Agent adicional, que completa estas tareas mediante un contexto aislado.
Algunas ventajas adicionales de SubAgent son:
- Aislamiento de contexto: se distingue del contexto del Agent principal, evitando la contaminación.
- Paralelización: diferentes sub-Agents pueden ejecutarse en paralelo, por lo que es más rápido.
Lo anterior es lo que considero la principal diferencia entre SubAgent y Skills. En cuanto a conocimiento de instrucciones especializadas o restricciones de herramientas, creo que SubAgent puede lograrlo y Skills también, por lo que no basta como punto de distinción importante.
Entonces, dado que ambos mejoran la capacidad de manejar nuevas tareas, ¿cuándo elegir Skills y dejar que el Agent principal haga la tarea, y cuándo delegarla a un SubAgent? Creo que se puede seguir el principio de "alta cohesión, bajo acoplamiento" de la ingeniería de software.
Si la nueva tarea es claramente distinta de la del Agent principal o requiere ejecución paralela, entonces se puede optar por lanzar un SubAgent para que la realice; de lo contrario, se recomienda implementarla mediante Skills, porque lanzar otro Agent añade complejidad arquitectónica e incertidumbre en los resultados. Además, el aislamiento de contexto es tanto una bendición como una maldición: ¿cómo controlar la precisión al transmitir instrucciones del Agent principal al sub-Agent?
Autor:Jarvis
Enlace:https://www.airouter.me/blog/skills-vs-subagent
Reutilización no comercial con atribución (CC BY-NC-SA 4.0).