Condividi tramite


Strumenti Python nell'agente SRE di Azure

Gli strumenti Python estendono l'agente SRE di Azure oltre alle funzionalità predefinite di Azure. Creare strumenti personalizzati che si connettono alle API interne, ai database locali, alle piattaforme multicloud e ai sistemi proprietari usando il codice Python. Descrivere gli elementi necessari in inglese normale, incollare gli script esistenti o eseguire il wrapping degli endpoint HTTP, quindi testare e distribuire senza riavviare.

Suggerimento

  • Estendi il tuo agente per raggiungere sistemi che non sono supportati nativamente.
  • Connettersi alle API interne, ai database locali e alle piattaforme multicloud.
  • Codificare la logica di business personalizzata (calcoli del contratto di servizio, modelli di costo, regole di conformità).

Problema

L'agente dispone di potenti strumenti predefiniti per Azure, tra cui query Kusto, Azure Monitor e operazioni ARM. Ma l'organizzazione non vive interamente in Azure:

  • Sistemi interni: database CMDB, sistemi di creazione di ticket personalizzati e API interne usate solo dall'organizzazione.
  • Multicloud: dashboard di Datadog, log di Splunk, metriche di AWS CloudWatch, insieme a quelle di Azure.
  • Infrastruttura legacy: database locali, protocolli proprietari e sistemi senza API moderne.
  • Logica di business personalizzata: calcoli del livello di servizio specifici per i contratti, formule di allocazione dei costi e modelli di pianificazione della capacità.

L'agente può diagnosticare i problemi di Azure, ma non può raggiungere i sistemi interni o applicare la logica univoca dell'organizzazione a meno che non venga estesa.

Funzionamento degli strumenti Python

Gli strumenti Python consentono di insegnare alle nuove funzionalità dell'agente. Descrivere gli elementi necessari, generare il codice, testarlo e distribuirlo. L'agente può quindi raggiungere i sistemi e applicare la logica che non era possibile prima.

Screenshot della finestra di dialogo dello strumento Python.

Il codice generato segue un modello coerente:

  • Funzione main() che accetta parametri tipizzato.
  • Valori di ritorno JSON-serializzabili.
  • Docstring descrittivi che spiegano la logica.

Prima di creare lo strumento, testarlo con input reali nel playground. Immettere i valori dei parametri, selezionare Test e visualizzare i risultati effettivi, non solo la convalida della sintassi.

Screenshot del playground di test che mostra l'esecuzione riuscita con il risultato del calcolo SLA.

Dopo aver testato lo strumento, selezionare Crea strumento. L'agente può usarlo immediatamente senza riavviare e senza pipeline di distribuzione.

Strumenti Python e connettori MCP

Per le piattaforme di terze parti, sono disponibili due opzioni.

Avvicinarsi Ideale per Examples
Connettori MCP Piattaforme comuni con API standard Datadog, Splunk, ServiceNow, GitHub
Strumenti Python Sistemi interni, logica personalizzata, piattaforme senza MCP Il tuo CMDB, API proprietarie, calcoli personalizzati

Usare i connettori MCP quando esiste un connettore per la piattaforma. MCP offre schemi strutturati, gestione dell'autenticazione e comportamento coerente.

Usare gli strumenti Python quando è necessario raggiungere i sistemi interni, codificare la logica di business personalizzata o connettersi alle piattaforme senza supporto MCP.

Cosa rende questo diverso

La tabella seguente confronta le funzionalità dell'agente con e senza strumenti Python.

Senza strumenti Python Con gli strumenti Python
Agent può usare solo funzionalità predefinite L'agente raggiunge qualsiasi sistema che Python può chiamare
Le API interne richiedono flussi di lavoro separati I sistemi interni diventano strumenti per gli agenti
La logica personalizzata si trova in script esterni Le regole di business sono eseguite nelle conversazioni degli agenti
I sistemi locali vengono disconnessi dall'agente Gli ambienti ibridi sono completamente accessibili

Gli strumenti Python trasformano l'agente da un assistente nativo di Azure in una piattaforma estendibile che funziona con l'intera infrastruttura.

Prima e dopo

Prima Dopo
"Il nostro CMDB è locale, l'agente non riesce a vederlo" Strumento Python con query di accesso alla rete per i sistemi interni
"Abbiamo formule personalizzate del contratto di servizio che nessuno ha automatizzato" Codifica le formule come strumento; l'agente le applica automaticamente
"I report di conformità necessitano di una formattazione PDF specifica" Generare report con ReportLab, forniti tramite l'agente

Prerequisiti

  • Accesso del creatore a un agente SRE di Azure.
  • Per gli endpoint HTTP: URL e credenziali di autenticazione per i sistemi di destinazione.

Creare uno strumento Python

È possibile creare strumenti Python usando tre approcci.

Avvicinarsi Fornisci L'agente opera Ideale per
Descrivere in inglese normale Calcolare l'Accordo sul Livello di Servizio (SLA) dall'operatività e dall'inattività Genera codice Python completo Logica personalizzata rapida, nessuna scrittura di codice necessaria
Incollare il codice esistente La tua funzione Python Lo avvolge come uno strumento Migrazione di script esistenti, logica complessa
Chiamare endpoint HTTP URL dell'endpoint e autenticazione Chiama l'API tramite HTTP Funzioni di Azure, Lambda, API interne, webhook

Opzione 1: Consentire all'intelligenza artificiale di scrivere il codice

Descrivere gli elementi necessari nella finestra di dialogo e selezionare Genera. L'intelligenza artificiale crea una funzione Python funzionante con parametri tipizzato, gestione degli errori e docstrings.

Descrivi: "Calcola la conformità SLA basata sui minuti di attività e inattività, indicando se soddisfa la soglia del 99,9%"

Agent genera: Funzione completa main() pronta per testare e distribuire.

Opzione 2: Porta il tuo codice

Incollare Python esistente nella scheda Codice . La funzione deve seguire questo modello:

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

Opzione 3: Chiamare endpoint HTTP

Avvolgere qualsiasi endpoint HTTP (Azure Functions, AWS Lambda, API interne o webhook) come strumento 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()

Annotazioni

Gli strumenti Python hanno accesso alla rete in uscita. È possibile chiamare qualsiasi endpoint HTTP consentito dalla rete. Per gli endpoint autenticati, includere chiavi API o token nelle intestazioni o parametri di query.

Scenari di esempio

Gli esempi seguenti illustrano i casi d'uso comuni per gli strumenti Python.

Query interna CMDB:

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()

Calcolo del contratto di servizio personalizzato:

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}

Generazione di report di conformità:

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"}

Verificare il funzionamento dello strumento

Dopo aver creato lo strumento, testarlo in una nuova chat:

Calculate SLA for 43185 minutes uptime and 15 minutes downtime

L'agente dovrebbe riconoscere che l'attività corrisponde al tuo strumento e attivarlo automaticamente.

Ambiente di esecuzione

La tabella seguente descrive l'ambiente di esecuzione per gli strumenti Python.

Proprietà Valore
Timeout Da 5 a 900 secondi (impostazione predefinita: 120)
Isolamento Nuovo contenitore per l'esecuzione
File system /mnt/data per i file temporanei
Network Connettività in uscita abilitata
Pacchetti 700+ preinstallati (pandas, requests, azure-identity, reportlab e altro ancora)
Stato Nessuna persistenza tra le chiamate

Autenticazione per le risorse di Azure

Gli strumenti Python possono eseguire l'autenticazione alle risorse di Azure usando l'identità gestita con ambiti predefiniti.

Ambito Access
ARM Azure Resource Manager (management.azure.com)
Archivio di chiavi Segreti, chiavi, certificati (vault.azure.net)
Spazio di archiviazione Blob, coda, archiviazione di tabelle (storage.azure.com)

Abilitare l'autenticazione nella scheda Identità durante la creazione di uno strumento.

Limitazioni

  • Nessun stato persistente: ogni esecuzione viene avviata di nuovo. Archiviare i risultati esternamente, se necessario.
  • Timeout massimo: 900 secondi (15 minuti) per le operazioni a esecuzione prolungata.
  • Nessuna GPU: ambiente di esecuzione solo CPU.
  • Output JSON obbligatorio: i valori restituiti devono essere serializzabili in JSON.

Passo successivo