Compartir a través de


Herramientas de Python en el agente de SRE de Azure

Las herramientas de Python amplían el agente de SRE de Azure más allá de las funcionalidades integradas de Azure. Cree herramientas personalizadas que se conecten a api internas, bases de datos locales, plataformas multinube y sistemas propietarios mediante código python. Describa lo que necesita en inglés sin formato, pegue los scripts existentes o encapsula los puntos de conexión HTTP y, a continuación, pruebe e implemente sin reiniciar.

Sugerencia

  • Amplíe el agente para llegar a los sistemas para los que no tenga compatibilidad integrada.
  • Conéctese a api internas, bases de datos locales y plataformas multinube.
  • Codificación de lógica de negocios personalizada (cálculos del Acuerdo de Nivel de Servicio, modelos de costos, reglas de cumplimiento).

El problema.

El agente tiene herramientas integradas eficaces para Azure, incluidas las consultas de Kusto, Azure Monitor y las operaciones de ARM. Pero su organización no vive completamente en Azure:

  • Sistemas internos: bases de datos CMDB, sistemas de vales personalizados y API internas que solo usa su organización.
  • Multinube: paneles de Datadog, registros de Splunk y métricas de AWS CloudWatch junto con Azure.
  • Infraestructura heredada: bases de datos locales, protocolos propietarios y sistemas sin API modernas.
  • Lógica de negocios personalizada: cálculos del Acuerdo de Nivel de Servicio específicos de los contratos, fórmulas de asignación de costos y modelos de planeamiento de capacidad.

El agente puede diagnosticar problemas de Azure, pero no puede acceder a los sistemas internos ni aplicar la lógica única de su organización a menos que la extienda.

Funcionamiento de las herramientas de Python

Las herramientas de Python le permiten enseñar a su agente nuevas funcionalidades. Describir lo que necesita, generar el código, probarlo e implementarlo. Después, el agente puede acceder a sistemas y aplicar lógica que no era posible antes.

Captura de pantalla del cuadro de diálogo de herramientas de Python.

El código generado sigue un patrón coherente:

  • Función main() que acepta parámetros con tipo.
  • Valores de retorno serializables de JSON.
  • Documentos descriptivos que explican la lógica.

Antes de crear la herramienta, pruebelo con entradas reales en el área de juegos. Escriba los valores de parámetro, seleccione Probar y vea los resultados reales, no solo la validación de sintaxis.

Captura de pantalla del área de prueba en la que se muestra la ejecución correcta con el resultado del cálculo del Acuerdo de Nivel de Servicio.

Después de probar la herramienta, seleccione Crear herramienta. El agente puede usarlo inmediatamente sin reiniciar ni ninguna canalización de implementación.

Herramientas de Python frente a conectores MCP

Para plataformas de terceros, tiene dos opciones.

Enfoque Más adecuado para Ejemplos
Conectores MCP Plataformas populares con API estándar Datadog, Splunk, ServiceNow, GitHub
Herramientas de Python Sistemas internos, lógica personalizada, plataformas sin MCP Su CMDB, API propietarias, cálculos personalizados

Use conectores MCP cuando exista un conector para tu plataforma. MCP proporciona esquemas estructurados, administración de autenticación y comportamiento coherente.

Use herramientas de Python cuando necesite acceder a sistemas internos, codificar lógica de negocios personalizada o conectarse a plataformas sin compatibilidad con MCP.

Lo que hace que esto sea diferente

En la tabla siguiente se comparan las funcionalidades del agente con y sin herramientas de Python.

Sin herramientas de Python Con herramientas de Python
El agente solo puede usar funcionalidades integradas El agente alcanza cualquier sistema al que Python pueda llamar
Las API internas requieren flujos de trabajo independientes Los sistemas internos se convierten en herramientas de agente
La lógica personalizada reside en scripts externos Las reglas de negocio se ejecutan dentro de las conversaciones del agente
Los sistemas locales están desconectados del agente Los entornos híbridos son totalmente accesibles

Las herramientas de Python transforman tu agente de un asistente nativo de Azure en una plataforma extensible que funciona con toda tu infraestructura.

Antes y después

antes de después de
"Nuestra base de datos de gestión de configuraciones (CMDB) es local, el agente no tiene acceso." Herramienta de Python con consultas de acceso de red a sistemas internos
"Tenemos fórmulas de Acuerdo de Nivel de Servicio personalizadas que nadie ha automatizado" Codifique sus fórmulas como una herramienta; el agente las aplica automáticamente.
"Los informes de cumplimiento necesitan formato PDF específico" Generación de informes con ReportLab, servidos a través del agente

Prerrequisitos

  • Acceso del desarrollador a un agente de SRE de Azure.
  • Para los puntos de conexión HTTP: direcciones URL y credenciales de autenticación para los sistemas de destino.

Creación de una herramienta de Python

Puede crear herramientas de Python mediante tres enfoques.

Enfoque Usted proporciona El agente realiza Más adecuado para
Describir en inglés simple "Calcular el Acuerdo de Nivel de Servicio a partir del tiempo de actividad y el tiempo de inactividad" Genera código de Python completo. Lógica personalizada rápida, sin necesidad de codificación
Pegar código existente Tu función de Python Lo presenta como una herramienta Migración de scripts existentes, lógica compleja
Llamada a puntos de conexión HTTP Dirección URL del punto de conexión y autenticación Llama a la API a través de HTTP Azure Functions, Lambda, APIs internas, webhooks

Opción 1: Permitir que ia escriba el código

Describa lo que necesita en el cuadro de diálogo y seleccione Generar. AI crea una función de Python funcional con parámetros tipados, manejo de errores y cadenas de documentación.

Describe lo siguiente: "Calcular el cumplimiento del Acuerdo de Nivel de Servicio a partir del tiempo de actividad y los minutos de tiempo de inactividad, devuelva si cumple el umbral de 99,9%"

El agente genera: Una función completa main() lista para probar e implementar.

Opción 2: Traiga su propio código

Pegue Python existente en la pestaña Código . La función debe seguir este patrón:

def main(param1: str, param2: int) -> dict:
    # Your logic here
    return {"result": "value"}

Opción 3: Llamada a puntos de conexión HTTP

Envuelva cualquier endpoint HTTP (Función de Azure, Función Lambda de AWS, API interna o webhook) como una herramienta de Python.

def main(input_data: str) -> dict:
    import requests

    # Azure Function with function key
    response = requests.post(
        "https://<FUNCTION_APP_NAME>.azurewebsites.net/api/<ENDPOINT>?code=<FUNCTION_KEY>",
        json={"data": input_data}
    )

    # Or internal API with bearer token
    # response = requests.get(
    #     "https://internal-api.corp/resource",
    #     headers={"Authorization": "Bearer <API_TOKEN>"}
    # )

    return response.json()

Nota:

Las herramientas de Python tienen acceso de red saliente. Puede llamar a cualquier punto de conexión HTTP que permita la red. Para los puntos de conexión autenticados, incluya claves de API o tokens en encabezados o parámetros de consulta.

Escenarios de ejemplo

En los ejemplos siguientes se muestran casos de uso comunes para las herramientas de Python.

Consulta de CMDB interna:

def main(server_name: str) -> dict:
    """Query internal CMDB for server configuration."""
    import requests
    response = requests.get(f"https://cmdb.internal.corp/api/servers/{server_name}")
    return response.json()

Cálculo del Acuerdo de Nivel de Servicio personalizado:

def main(uptime_minutes: int, downtime_minutes: int) -> dict:
    """Calculate SLA using your organization's formula."""
    total = uptime_minutes + downtime_minutes
    sla = (uptime_minutes / total) * 100 if total > 0 else 100.0
    return {"sla_percent": round(sla, 4), "meets_target": sla >= 99.9}

Generación de informes de cumplimiento:

def main(incidents: list, month: str) -> dict:
    """Generate PDF compliance report."""
    from reportlab.platypus import SimpleDocTemplate
    doc = SimpleDocTemplate(f"/mnt/data/compliance-{month}.pdf")
    # Build report...
    return {"report_path": f"/api/files/compliance-{month}.pdf"}

Comprobación de que la herramienta funciona

Después de crear la herramienta, pruebelo en un nuevo chat:

Calculate SLA for 43185 minutes uptime and 15 minutes downtime

Su agente debe reconocer que la tarea es compatible con su herramienta y llamarla automáticamente.

Entorno de ejecución

En la tabla siguiente se describe el entorno de ejecución para las herramientas de Python.

Propiedad Importancia
Tiempo de espera De 5 a 900 segundos (valor predeterminado: 120)
Aislamiento Un nuevo contenedor por cada ejecución
sistema de archivos /mnt/data para archivos temporales
Network Conectividad saliente habilitada
Paquetes 700+ preinstalados (pandas, requests, azure-identity, reportlab, y más)
Estado Sin persistencia entre llamadas

Autenticación para recursos de Azure

Las herramientas de Python se pueden autenticar en recursos de Azure mediante la identidad administrada con ámbitos preestablecidos.

Ámbito Access
ARM Azure Resource Manager (management.azure.com)
Almacén de claves Secretos, claves, certificados (vault.azure.net)
Storage Almacenamiento de BLOB, cola, tabla (storage.azure.com)

Habilite la autenticación en la pestaña Identidad al crear una herramienta.

Limitaciones

  • Sin estado persistente: cada ejecución se inicia de nuevo. Almacene los resultados externamente si es necesario.
  • Tiempo de espera máximo: 900 segundos (15 minutos) para las operaciones de larga duración.
  • Sin GPU: entorno de ejecución de solo CPU.
  • Salida JSON requerida: los valores devueltos deben ser serializables JSON.

Paso siguiente