Agentes personalizados
Al definir agentes personalizados puedes crear configuraciones de subagentes que se reparten roles según el caso de uso.En la versión Laravel se configuran mediante
customAgents de SessionConfig.
Para la orquestación que ejecuta varios subagentes en paralelo, consulta Fleet Mode.
Uso básico
Opciones de configuración
Cuanto más concreta escribas description, mayor será la precisión de la selección automática.
Hooks declarativos por agente
Enhooks de un agente personalizado puedes indicar el nombre del evento como clave y un array de acciones declarativas como valor.
Las acciones se pasan al CLI junto con la definición del agente correspondiente y solo tienen efecto en ese agente.
Resulta útil, por ejemplo, cuando quieres restringir la ejecución de herramientas solo en un agente concreto.
customAgents[*].hooks son acciones declarativas que se pasan al CLI.
Indica el contenido de las acciones en el formato que acepta Copilot CLI.
hooksen el nivel superior deSessionConfiges una función distinta que registra callbacks de PHP y se aplica a toda la sesión. Para más detalles, consulta Hooks de sesión.- La carga de hooks basados en archivos de
.github/hooks/se controla por separado conenableFileHooks.
Elegir un agente concreto al iniciar la sesión
Si indicasagent, puedes habilitar un agente personalizado concreto desde el primer turn.
Desactivar la selección automática (infer: false)
Para los agentes que realizan operaciones de alto riesgo es más seguro desactivar la selección automática y usarlos de forma explícita.
Ocultar herramientas al agente por defecto
CondefaultAgent.excludedTools puedes ocultar herramientas concretas solo al agente principal.Así resulta más fácil delegar en un agente personalizado que sí pueda usarlas.
Monitorizar eventos de subagentes
Mientras se ejecuta un subagente se emiten eventossubagent.*.Puedes monitorizarlos con
onEvent o con $session->on().
Buenas prácticas
- Separa
researcher(centrado en lectura) yeditor(encargado de los cambios) - Deja
toolsen lo mínimo imprescindible y restringe permisos - Escribe
descriptionde forma concreta para mejorar la precisión de la delegación automática - Captura
subagent.failedy prepara una estrategia de reintentos o fallback