Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial, creará dos enlaces de gobernanza mediante el portal: un enlace stop que aplica el formato de datos (tablas markdown con encabezados en negrita) y un enlace PostToolUse que bloquea comandos peligrosos de shell. Los enlaces se configuran en el nivel de agente (se aplica a todos los subprocesos y subagentes) y al nivel de subagente (se aplica a un subagente específico).
Tiempo estimado: 10 minutos
En este tutorial aprenderá a:
- Crear un hook de parada que valide el formato de respuesta
- Crea un PostToolUse hook que bloquea comandos peligrosos de shell
- Agregar ganchos a un subagente específico
- Administrar la activación de enlaces en subprocesos individuales
Prerrequisitos
- Un agente de SRE de Azure en estado en ejecución
- Rol de colaborador o superior en el recurso de agente SRE
Sugerencia
Los enlaces que creó anteriormente a través del tutorial de la API REST aparecen automáticamente en la interfaz de usuario del portal. Puede administrarlos visualmente sin volver a configurar nada.
Información sobre dónde se encuentran los enlaces en el portal
Los ganchos funcionan en dos niveles. Comprender esta distinción es un concepto arquitectónico clave.
| Level | Ubicación en el portal | Ámbito | Se utiliza cuando |
|---|---|---|---|
| Nivel de agente | Generador>Hooks | Se aplica a todo el agente, a todos los hilos y a todos los subagentes | Desea directivas que se apliquen a todo el agente, como "auditar cada llamada a herramienta" o "bloquear comandos peligrosos en cualquier parte" |
| Nivel de subagente | Generador de subagentes> seleccionar subagente >Administrar enlaces | Solo se aplica cuando se ejecuta ese subagent específico | Desea que los enlaces se adapten a un subagente, como "validar el formato de salida de este subagente". |
Sugerencia
Ambos niveles pueden coexistir. Si un enlace de nivel de agente y un enlace de nivel de subagente coinciden con el mismo evento, ambos se ejecutan. Los enlaces de nivel de agente se ejecutan primero y, a continuación, los enlaces de nivel de subagente.
Crear enlaces de nivel de agente
Los enlaces de nivel de agente se aplican a todo el agente, incluidos todos los subprocesos y cada subagente. Tienen modos de activación que controlan cuándo están activos.
Abrir la página Hooks
Siga estos pasos para ir a la página Hooks.
- Vaya a sre.azure.com y seleccione el agente.
- En la barra lateral, expanda Generador.
- Seleccione Hooks.
Verá el encabezado Enlaces con una descripción, un botón Crear enlace y una cuadrícula de datos vacía (o una lista de enlaces existentes).
Creación de un gancho de parada
Un gancho Stop se activa cuando el agente está a punto de devolver una respuesta final. Úselo para validar la calidad de respuesta y aplicar reglas de formato.
Seleccione Crear enlace.
Rellene los campos del formulario:
Campo Importancia Nombre require-table-formatTipo de evento Parar Modo de activación Siempre Descripción Garantiza que las respuestas presentan datos estructurados como tablas markdown con encabezados en negrita En Definición de enlace, mantenga el tipo de enlace establecido en Preguntar.
Mantenga el valor de Model establecido en Razonamiento rápido (valor predeterminado).
En el editor del prompt, introduzca el siguiente texto:
Check the agent response below. $ARGUMENTS Does the response present any structured data (lists of items, comparisons, metrics) as a markdown table with **bold** column headers? If no structured data is present, approve. If structured data IS present as a table with bold headers: {"ok": true} If structured data is present but NOT formatted as a table: {"ok": false, "reason": "Reformat the structured data as a markdown table with **bold** column headers."}Deje Tiempo de espera (s) en
30, Modo de error enAllowy Rechazos máximos en3.Haga clic en Guardar.
El cuadro de diálogo se cierra con una notificación de éxito. El enlace aparece en la cuadrícula de datos con tipo de evento Stop y Activation Always.
Sugerencia
El marcador de posición $ARGUMENTS inserta el contexto del enlace (incluyendo la respuesta final del agente) en la solicitud. El LLM evalúa si la respuesta cumple tus criterios y devuelve {"ok": true} para aprobar o {"ok": false, "reason": "..."} para rechazar. Después de tres rechazos (valor predeterminado), el agente se detiene.
Probar el gancho Stop
Siga estos pasos para comprobar que el enlace Detener funciona correctamente.
- En la barra lateral, seleccione Chat.
- Escriba Comparar las ventajas y desventajas de Python frente a Go para compilar microservicios y seleccione Enviar.
- Vea la respuesta del agente:
- Inicialmente, el agente responde con una comparación de texto sin formato.
- El enlace Stop evalúa y rechaza la respuesta porque los datos no están en una tabla.
- El agente vuelve a formatear su respuesta como una tabla markdown con encabezados en negrita .
La respuesta final presenta la comparación como una tabla con formato similar al ejemplo siguiente:
| Language | Pros | Desventajas |
|---|---|---|
| Python | Desarrollo rápido, ecosistema enriquecido | Ejecución más lenta, limitaciones de GIL |
| Go | Compilación rápida, simultaneidad integrada | Ecosistema más pequeño, control detallado de errores |
Crear un gancho PostToolUse
Un enlace PostToolUse se activa después de que una herramienta termine de ejecutarse. Úselo para auditar el uso de herramientas, bloquear comandos peligrosos o agregar contexto adicional.
Vuelva a Builder>Hooks.
Seleccione Crear enlace.
Rellene el formulario:
Campo Importancia Nombre block-dangerous-commandsTipo de evento Uso de la herramienta de publicación Modo de activación Siempre Descripción Bloquea rm -rf, sudo y chmod 777 en comandos de shell Tipo de enlace Comando Buscador de coincidencias de herramientas Bash\|ExecuteShellCommandSeleccione Python como lenguaje de script.
En el editor de scripts , escriba el siguiente script:
#!/usr/bin/env python3 import sys, json, re context = json.load(sys.stdin) command = context.get('tool_input', {}).get('command', '') dangerous = [r'\brm\s+-rf\b', r'\bsudo\b', r'\bchmod\s+777\b'] for pattern in dangerous: if re.search(pattern, command): print(json.dumps({"decision": "block", "reason": f"Blocked: {pattern}"})) sys.exit(0) print(json.dumps({"decision": "allow"}))Configura Modo de error en Bloquear (si el script falla, el resultado de la herramienta queda bloqueado).
Haga clic en Guardar.
Ambos ganchos aparecen ahora en la cuadrícula de datos de Hooks.
Nota:
El campo Coincidencias de herramienta usa regex.
Bash|ExecuteShellCommand coincide con las herramientas denominadas exactamente "Bash" o "ExecuteShellCommand" (el patrón está anclado como ^(Bash|ExecuteShellCommand)$). Use * para buscar coincidencias con todas las herramientas.
Probar el enlace PostToolUse
Siga estos pasos para comprobar que el enlace PostToolUse funciona correctamente.
- En la barra lateral, seleccione Chat.
- Pida al agente que ejecute un comando seguro: "Ejecute echo hello". El enlace permite este comando.
- Pida al agente que ejecute un comando peligroso: "Ejecute rm -rf /tmp/test". El enlace bloquea este comando.
El comando seguro se ejecuta normalmente. El comando peligroso está bloqueado y el agente recibe un mensaje que explica por qué.
Edición y eliminación de enlaces de nivel de agente
Puede modificar o quitar enlaces existentes de la cuadrícula de datos Enlaces.
- Editar: seleccione el icono de edición en cualquier fila de enlace de la cuadrícula de datos, modifique los campos y seleccione Guardar.
- Eliminar: active la casilla situada junto a los enlaces que desea quitar, seleccione Eliminar en la barra de herramientas y confirme.
La cuadrícula de datos refleja inmediatamente los cambios.
Cree enlaces de nivel de subagente
Los ganchos a nivel de subagente se configuran directamente en la definición de un subagente. Solo se aplican cuando se ejecuta ese subagente específico, y no se aplican al agente principal ni a otros subagentes.
Abra el panel de enlaces de subagentes
Siga estos pasos para acceder a la configuración del hook de un subagente específico.
- En la barra lateral, expanda Generador y seleccione Generador de subagentes.
- Seleccione un subagente existente para editarlo o seleccione Crear para iniciar uno nuevo.
- En el formulario de subagente, desplácese hacia abajo hasta la sección Enlaces .
- Seleccione Administrar enlaces.
Se abre un panel lateral con secciones Stop y Post Tool Use . Si no hay ganchos configurados, verá estados vacíos con texto de guía.
Añada un enlace a un subagente
Los pasos siguientes agregan un gancho de parada que garantiza que este subagente siempre responda con una sección de resumen.
En el panel Administrar enlaces , seleccione Agregar enlace en la parte inferior del panel.
En el cuadro de diálogo, rellene el formulario de enganche:
Campo Importancia Tipo de evento Parar Tipo de enlace Pronto Aviso Check the response below. $ARGUMENTS Does it include a clear summary section at the end? If yes: {"ok": true} If no: {"ok": false, "reason": "Add a Summary section at the end of your response."}Tiempo de espera (s) 30 Modo de fallo Permitir Número máximo de rechazos 3 Seleccione Guardar en el enlace.
Seleccione Crear (o Guardar) en el subagente para guardar la configuración completa.
El enlace aparece en el panel Administrar enlaces en la sección Detener . El formulario de subagente muestra Administrar Hooks (1) en el botón.
Sugerencia
Para probar un gancho a nivel de subagente, vaya al Constructor de subagentes, seleccione la vista Campo de prueba, elija su subagente en la lista desplegable y escriba una pregunta. El enlace solo se ejecuta cuando se invoca a este subagente específico.
Administre los enlaces por subproceso
Los enlaces de nivel de agente que están activados Siempre están activos en cada conversación de forma predeterminada. Debe activar manualmente los enlaces con la activación A demanda por subproceso.
Alterne enlaces en una conversación
Siga estos pasos para activar o desactivar enlaces en un subproceso específico.
- Abra un hilo de chat.
- Seleccione el + botón en el pie de página de chat.
- Seleccione Administrar enlaces.
- Active y desactive enlaces para el subproceso actual.
Puede desactivar los ganchos Always temporalmente. Puede activar enlaces A demanda cuando sea necesario. No se pueden activar y desactivar los enlaces que requiere el sistema.
Los cambios de enlaces se aplican inmediatamente en el subproceso actual.
Solución de problemas
En la tabla siguiente se enumeran los problemas y soluciones comunes al crear y administrar enlaces en el portal.
| Problema | Solución |
|---|---|
| Página de enlaces no visible en la barra lateral | La página de Ganchos aparece en Constructor. Verifique que su agente esté en estado En ejecución. Si la opción sigue sin aparecer, póngase en contacto con el soporte técnico. |
| Se requiere el nombre del gancho | Escriba un nombre con solo letras, números, guiones y caracteres de subrayado. |
| "El nombre debe contener solo letras, números, guiones y caracteres de subrayado". | Quite los caracteres especiales del nombre del enlace. |
| "El nombre del enlace no puede empezar con system__" | El system__ prefijo está reservado para los enlaces del sistema. Elija otro nombre. |
| "Se requiere un emparejador de herramientas para los enlaces PostToolUse" | Los enlaces PostToolUse necesitan un buscador de coincidencias regex. Use * para buscar coincidencias con todas las herramientas. |
| El enlace no se desencadena | En el caso de los enlaces de nivel de agente, compruebe el modo de activación. Los enlaces A demanda deben activarse por subproceso. En el caso de los enlaces de nivel de subagente, compruebe que se está llamando al subagente. |
| El enlace de detención aprueba todo | Asegúrese de que el prompt devuelva {"ok": false, "reason": "..."} cuando se rechace. Un rechazo sin un reason se considera como una aprobación. |
| Errores de script que bloquean acciones | Establezca Modo de Fallo en Permitir para una degradación controlada durante el desarrollo. Cambie a Block en producción. |