Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'interprete del codice dell'agente SRE consente di eseguire i comandi del codice Python e della shell in un ambiente sandbox protetto e isolato. Usare l'interprete del codice per analizzare i dati, creare visualizzazioni, generare report PDF e automatizzare le operazioni sui file senza uscire dalla conversazione dell'agente SRE.
In questo articolo vengono illustrate le operazioni seguenti:
- Eseguire codice Python per analizzare i dati e creare visualizzazioni
- Eseguire i comandi della shell per le operazioni su file
- Generare e scaricare report PDF
- Usare i file nell'ambiente sandbox
Prerequisiti
Per creare un agente, è necessario concedere all'agente le autorizzazioni corrette, configurare le impostazioni corrette e concedere l'accesso alle risorse appropriate:
Account Azure: è necessario un account Azure con una sottoscrizione attiva. Se non si dispone già di un account, è possibile creare un account gratuitamente.
Contesto di sicurezza: assicurarsi che l'account utente disponga delle
Microsoft.Authorization/roleAssignments/writeautorizzazioni come Amministratore controllo degli accessi in base al ruolo o Amministratore accesso utenti.Impostazioni del firewall: aggiungere
*.azuresre.aiall'elenco consenti nelle impostazioni del firewall. Alcuni profili di rete potrebbero bloccare l'accesso al dominio di default*.azuresre.ai.
Funzionamento dell'interprete di codice
L'interprete del codice dell'agente SRE viene eseguito in una sessione isolata di App Contenitore di Azure con le caratteristiche seguenti:
- Nessun accesso alla rete: la sandbox non può effettuare richieste HTTP o HTTPS in uscita.
-
Nessuna generazione di processi: i comandi come
subprocesseos.systemvengono bloccati. -
Nessuna installazione del pacchetto:
pip installeconda installnon sono disponibili. -
File system isolato: tutti i file devono essere salvati in
/mnt/data/.
Queste restrizioni assicurano che l'esecuzione del codice sia sicura e prevedibile. Le librerie di data science comuni come pandas, matplotlib e seaborn sono preinstallate.
Introduzione all'interprete del codice
Gli strumenti dell'interprete del codice sono automaticamente disponibili nelle conversazioni dell'agente SRE. Chiedere all'agente di eseguire attività usando il linguaggio naturale.
Esempi di suggerimenti
Provare queste istruzioni per iniziare:
- "Analizzare questi dati CSV e creare un grafico che mostra gli eventi imprevisti per categoria".
- "Genera un riepilogo PDF degli eventi imprevisti di oggi".
- "Analizzare questo file JSON ed estrarre i modelli di errore."
- "Elencare tutti i file nella sessione e visualizzare le relative dimensioni".
Il primo script Python
L'esempio seguente illustra come creare una visualizzazione:
import matplotlib.pyplot as plt
import numpy as np
# Generate sample data
categories = ['Critical', 'High', 'Medium', 'Low']
counts = [5, 12, 28, 45]
# Create bar chart
plt.figure(figsize=(10, 6))
plt.bar(categories, counts, color=['red', 'orange', 'yellow', 'green'])
plt.title('Incidents by Severity')
plt.xlabel('Severity Level')
plt.ylabel('Count')
plt.savefig('/mnt/data/incidents_by_severity.png', dpi=150)
Quando il codice viene eseguito correttamente, l'agente restituisce l'immagine integrata nella conversazione.
Scenari
Analizzare i dati degli eventi imprevisti
Usare l'interprete del codice per trasformare i dati non elaborati degli eventi imprevisti in visualizzazioni e informazioni dettagliate interattive.
Chiedere all'agente SRE di creare un file CSV di tutti gli eventi imprevisti che si sono verificati nell'ultimo mese usando la richiesta seguente:
Create a CSV file of all the incidents that occurred in the last month. Name the file `incidents.csv` and save it to `/mnt/data`.Usare Python per analizzare i modelli di eventi imprevisti e identificare le tendenze:
import pandas as pd # Load incident data df = pd.read_csv('/mnt/data/incidents.csv') # Calculate summary statistics summary = df.groupby('category').agg({ 'id': 'count', 'resolution_time': 'mean' }).rename(columns={'id': 'count', 'resolution_time': 'avg_resolution_hours'}) # Export results summary.to_csv('/mnt/data/incident_summary.csv') print(summary)
Creare visualizzazioni
Generare grafici per comunicare informazioni dettagliate.
import matplotlib.pyplot as plt
import seaborn as sns
# Load data
df = pd.read_csv('/mnt/data/incidents.csv')
# Create visualization
plt.figure(figsize=(12, 6))
sns.barplot(data=df, x='category', y='count', palette='viridis')
plt.title('Incidents by Category')
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig('/mnt/data/category_chart.png', dpi=150)
Generare report PDF
Creare documenti PDF formattati per gli stakeholder.
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
# Create PDF
c = canvas.Canvas('/mnt/data/weekly_report.pdf', pagesize=letter)
# Add content
c.setFont('Helvetica-Bold', 18)
c.drawString(72, 750, 'Weekly Incident Report')
c.setFont('Helvetica', 12)
c.drawString(72, 720, 'Period: January 10-17, 2026')
c.drawString(72, 700, 'Total incidents: 90')
c.drawString(72, 680, 'Critical incidents: 5')
c.drawString(72, 660, 'Average resolution time: 4.2 hours')
c.save()
L'agente restituisce un collegamento di download per il PDF generato.
Elaborare i file di log
Cercare e analizzare i file di log usando i comandi della shell.
# Count error occurrences by type
grep -E "ERROR|WARN|FATAL" application.log | sort | uniq -c | sort -rn
# Find the most recent log entries
tail -100 application.log
Informazioni di riferimento per gli strumenti
L'interprete del codice offre gli strumenti seguenti:
ExecutePythonCode
Esegue il codice Python in una sandbox isolata.
| Parametro | TIPO | Obbligatorio | Description |
|---|---|---|---|
pythonCode |
string | Yes | Codice Python da eseguire (fino a 20.000 caratteri) |
timeoutSeconds |
integer | NO | Timeout di esecuzione in secondi (valore predefinito: 120, massimo: 900) |
Risultato: le immagini vengono visualizzate integrate come markdown. I file di dati vengono restituiti come collegamenti di download.
GeneraRapportoPdf
Crea documenti PDF dal codice Python.
| Parametro | TIPO | Obbligatorio | Description |
|---|---|---|---|
pythonCode |
string | Yes | Codice Python che crea un file PDF |
expectedOutputFilename |
string | Yes | Percorso in cui viene salvato il PDF (ad esempio, report.pdf) |
saveAsFilename |
string | Yes | Scaricare il nome file (ad esempio, daily_summary.pdf) |
timeoutSeconds |
integer | NO | Timeout di esecuzione in secondi (valore predefinito: 180, massimo: 900) |
Esegui comando Shell
Esegue i comandi della shell nella sandbox.
| Parametro | TIPO | Obbligatorio | Description |
|---|---|---|---|
command |
string | Yes | Comando shell da eseguire |
explanation |
string | NO | Descrizione da registrare con il comando |
isBackground |
boolean | NO | Deve essere false (i processi in background non sono supportati) |
timeoutSeconds |
integer | NO | Timeout di esecuzione (impostazione predefinita: 120, max: 240) |
Annotazioni
I comandi vengono eseguiti da /mnt/data/. Usare i percorsi relativi e i comandi della catena usando ; invece di &&.
Operazioni su file
| Tool | Description |
|---|---|
ReadSessionFile |
Legge il contenuto di un file da /mnt/data/. |
SearchSessionFiles |
Cerca testo all'interno di file usando modelli di tipo grep. |
ListSessionFiles |
Elenca tutti i file nella sessione con i metadati. |
GetSessionFile |
Scarica un file dalla sessione. |
UploadFileToSession |
Carica un file per un'ulteriore elaborazione. |
Tipi di file supportati
- Immagini: PNG, JPG, GIF, SVG, WebP, BMP, TIFF, EPS
- Dati: CSV, TSV, Excel, JSON, XML, YAML, HDF5, NetCDF, pickle
- Documenti: PDF, HTML, Markdown, formati di Office
- Codice: Python, Jupyter notebooks, R, SQL
- Archivi: ZIP, TAR, GZ
Limitazioni
Per motivi di sicurezza, il sistema blocca le operazioni seguenti:
| Categoria | Operazioni bloccate |
|---|---|
| Generazione di processi |
subprocess, os.system, os.popenos.spawn* |
| Accesso alla rete | Richieste HTTP/HTTPS in uscita |
| Installazione del pacchetto |
pip install, conda install |
| Sistema di file | Accesso esterno /mnt/data/ |
Risolvere i problemi dell'interprete del codice
L'esecuzione del codice ha esito negativo
- Verificare che il codice non usi operazioni bloccate come
subprocesso chiamate di rete. - Verificare che tutti i percorsi dei file puntino a
/mnt/data/. - Verificare che il codice sia inferiore a 20.000 caratteri.
I file non vengono visualizzati nell'output
- Confermare di salvare i file in
/mnt/data/. - Usare
ListSessionFilesper verificare la creazione di file. - Verificare che l'estensione del file sia supportata.
Errori di timeout
- Aumentare il
timeoutSecondsparametro (massimo 900 secondi). - Ottimizzare il codice per ridurre il tempo di esecuzione.
- Suddividere le operazioni di grandi dimensioni in blocchi più piccoli.