Registrare agenti esterni per l'osservabilità e la valutazione (anteprima)

Importante

Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente in anteprima pubblica. Questa anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero avere funzionalità limitate. Per ulteriori informazioni, vedere Condizioni supplementari per l'uso delle versioni di anteprima di Microsoft Azure.

Importante

Quando si usano agenti esterni con altri prodotti e servizi Microsoft, è necessario leggere tutta la documentazione pertinente per tali prodotti e servizi e comprendere i rischi correlati e le considerazioni sulla conformità.

Se utilizzi agenti esterni con server, agenti, codice o modelli non Azure Direct di terze parti ("Sistemi di terze parti"), lo fai a tuo rischio. I sistemi di terze parti sono prodotti non Microsoft ai sensi delle condizioni del prodotto Microsoft e sono disciplinati dalle proprie condizioni di licenza di terze parti. L'utente è responsabile di qualsiasi utilizzo e costi associati.

È consigliabile esaminare tutti i dati condivisi e ricevuti da sistemi di terze parti e riconoscere le procedure di terze parti per la gestione, la condivisione, la conservazione e la posizione dei dati. Analogamente, se ci si connette o si integra con servizi Microsoft e funzionalità non Foundry, è importante esaminare le procedure relative ai dati.  È responsabilità dell'utente gestire se i dati fluiranno al di fuori dei limiti geografici e di conformità della propria organizzazione e le eventuali implicazioni correlate, nonché garantire che siano predisposte autorizzazioni, limiti e approvazioni appropriati.

L'utente è responsabile di esaminare e testare attentamente le applicazioni compilate nel contesto dei casi d'uso specifici e di prendere tutte le decisioni e le personalizzazioni appropriate. Ciò include l'implementazione di mitigazioni di intelligenza artificiale responsabili, ad esempio metaprompt, filtri di contenuto o altri sistemi di sicurezza, e garantire che le applicazioni soddisfino gli standard di qualità, affidabilità, sicurezza e attendibilità appropriati. Vedi la nota sulla trasparenza di Foundry Agent Service.

Microsoft Foundry Agent Service consente di registrare agenti in esecuzione all'esterno di Foundry, in qualsiasi cloud, in locale o su un altro host, in modo da poter utilizzare la vista di traccia e le funzionalità di valutazione di Foundry. Foundry archivia solo i metadati di registrazione per questi agenti. Non ospita, proxy o richiama il runtime.

Gli agenti esterni differiscono dagli agenti personalizzati del piano di controllo, che instradano il traffico attraverso un gateway di intelligenza artificiale. Con gli agenti esterni, l'agente mantiene l'endpoint esistente e condivide solo i dati di telemetria OpenTelemetry. Non è necessario alcun gateway di intelligenza artificiale.

In questo articolo vengono illustrate le operazioni seguenti:

  • Configurare un agente esterno per inviare gli span di OpenTelemetry ad Application Insights.
  • Registra l'agente in Foundry come agente external.
  • Verifica le tracce nel portale Foundry.
  • Eseguire una valutazione basata sulle tracce della telemetria raccolta dall'agente.

Il diagramma seguente illustra il flusso di dati: l'agente esterno genera intervalli OpenTelemetry con un gen_ai.agent.id attributo a una risorsa di Application Insights connessa al progetto Foundry. Una chiamata di registrazione separata crea il record dell'agente in Foundry. Il portale Foundry abbina quindi le tracce in base all'ID dell’agente e le visualizza nella vista delle tracce dell’agente.

Diagramma che mostra il flusso di dati per l'osservabilità dell'agente esterno. L'agente esterno genera intervalli OpenTelemetry ad Application Insights, che si connette alla visualizzazione di traccia del portale Foundry. Una chiamata di registrazione separata crea il record dell'agente nel progetto Foundry.

Importante

Gli agenti esterni sono in versione di anteprima. Le richieste di creazione e aggiornamento richiedono l'intestazione Foundry-Features: ExternalAgents=V1Preview . I chiamanti SDK abilitano questa funzionalità creando AIProjectClient con allow_preview=True.

Prerequisiti

  • Progetto Foundry con una risorsa di Application Insights connessa.

  • Un agente in esecuzione al di fuori di Foundry in grado di inviare span OpenTelemetry a quella risorsa di Application Insights.

  • Python 3.11 o versione successiva.

  • Ruolo Foundry User nel progetto.

  • Ruolo lettore o ruolo lettore di monitoraggio nella risorsa di Application Insights connessa per visualizzare le tracce.

    Importante

    I ruoli di Controllo degli accessi in base al ruolo di Foundry sono stati recentemente rinominati. Foundry User, Foundry Owner, Foundry Account Owner e Foundry Project Manager erano precedentemente denominati Azure AI User, Azure AI Owner, Azure AI Account Owner e Azure AI Project Manager. È possibile che i nomi precedenti vengano visualizzati in alcune posizioni durante l'esecuzione della ridenominazione. Gli ID ruolo e le autorizzazioni di base sono invariati dalla ridenominazione.

  • DefaultAzureCredential configurato. Accedi con az login oppure configura un'identità gestita o un entità di servizio.

  • (solo per la valutazione) Una distribuzione OpenAI Azure con un modello GPT che supporta il completamento della chat (ad esempio, gpt-5-mini).

Instrumentare l'agente esterno con OpenTelemetry

Prima di registrare l'agente in Foundry, configuralo per esportare gli span OpenTelemetry nella risorsa Application Insights collegata al tuo progetto Foundry. Ogni intervallo deve contenere l'attributo gen_ai.agent.id in modo che Foundry possa attribuire l'intervallo alla registrazione corretta dell'agente.

Installare il pacchetto OpenTelemetry Microsoft

pip install "microsoft-opentelemetry[langchain]"

Configurare l'esportatore

Eseguire questo codice una volta durante l'avvio dell'agente, prima di qualsiasi importazione del framework che deve essere instrumentata:

import os

os.environ.setdefault("AZURE_EXPERIMENTAL_ENABLE_GENAI_TRACING", "true")
os.environ.setdefault("OTEL_SEMCONV_STABILITY_OPT_IN", "gen_ai_latest_experimental")
os.environ.setdefault("OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT", "SPAN_AND_EVENT")

from microsoft.opentelemetry import use_microsoft_opentelemetry

# Human-readable name for the agent
AGENT_NAME = os.environ.get("AGENT_NAME", "weather-agent")
# Unique ID emitted as gen_ai.agent.id on every span.
# Foundry matches traces to registrations by this value.
OTEL_AGENT_ID = os.environ.get("OTEL_AGENT_ID", f"{AGENT_NAME}-v1")

use_microsoft_opentelemetry(
    enable_azure_monitor=True,
    azure_monitor_connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"],
    sampling_ratio=1.0,
    instrumentation_options={
        "fastapi": {"enabled": False},
        "langchain": {
            "enabled": True,
            "agent_id": OTEL_AGENT_ID,
            "agent_name": AGENT_NAME,
        },
    },
)

Impostare la APPLICATIONINSIGHTS_CONNECTION_STRING variabile di ambiente nell'host in cui viene eseguito l'agente. Usa la stringa di connessione della risorsa Application Insights associata al progetto Foundry. Per trovare la stringa di connessione, apri il portale Foundry, passa al tuo progetto e seleziona Gestisci>Dettagli del progetto>Risorse connesse. Selezionare la risorsa di Application Insights per visualizzarne il stringa di connessione. In alternativa, aprire la risorsa di Application Insights direttamente nel portale di Azure e copiare il stringa di connessione dalla pagina Overview.

Dopo la configurazione, i successivi span di OpenTelemetry dal framework dell'agente vengono inviati automaticamente ad Application Insights. Ogni span deve impostare l'attributo gen_ai.agent.id sul valore che hai scelto come otel_agent_id durante la registrazione.

Se il framework agente non imposta automaticamente questo attributo, aggiungerlo manualmente:

from opentelemetry import trace

tracer = trace.get_tracer(__name__)

with tracer.start_as_current_span("agent-run") as span:
    span.set_attribute("gen_ai.agent.id", "travel-planner-agent-v1")
    # ... your agent logic ...

Suggerimento

Per la strumentazione automatica specifica del framework (LangChain, LangGraph), la distribuzione Microsoft OpenTelemetry per Python può impostare automaticamente gen_ai.agent.id tramite instrumentation_options. Per .NET e JavaScript, vedere la distribuzione .NET e JavaScript. Per linee guida generali, vedi Configurare il tracciamento per i framework per agenti di intelligenza artificiale.

Registrare l'agente esterno in Foundry

Dopo che l'agente ha inviato gli span ad Application Insights, registralo in Foundry in modo che tali span vengano visualizzati nella vista delle tracce di Foundry relativa all'agente. La registrazione crea in Foundry un record con nome che collega le tracce in arrivo (associate tramite gen_ai.agent.id) all'interfaccia dell'agente di Foundry. Senza questa registrazione, le tracce continuano a fluire in Application Insights, ma non vengono visualizzate nella vista delle tracce dell'agente in Foundry e non è possibile eseguire valutazioni basate sulle tracce circoscritte all'agente.

Installare l'SDK

pip install azure-ai-projects>=2.3.0 azure-identity>=1.17.0

Creare la registrazione

È possibile creare una registrazione nel portale foundry tramite:

  1. Aprire il progetto e selezionare Compila>agenti>Nuovo agente.

  2. Selezione di Associa agente esterno.

  3. Nella finestra visualizzata immettere il nome dell'agente, la descrizione e l'ID OpenTelemetry.

    Screenshot che mostra il pulsante per collegare un agente esterno.

Verificare le tracce nel portale di Foundry

Dopo che l'agente ha inviato il traffico e i dati di acquisizione ad Application Insights (in genere 2–5 minuti), verificare che le tracce siano visibili nel portale Foundry:

  1. Aprire il portale Foundry.

  2. Vai al tuo progetto.

  3. Selezionare Agenti nel riquadro sinistro.

  4. Selezionare il nome dell'agente esterno, ad esempio travel-planner-agent.

  5. Selezionare la scheda Tracce per visualizzare gli intervalli attribuiti a questo agente.

Le tracce vengono abbinate tramite gen_ai.agent.id = <otel_agent_id> dalla risorsa Application Insights collegata al progetto. È possibile visualizzare input, output, chiamate agli strumenti e latenza per ogni intervallo.

Eseguire una valutazione basata su traccia

Dopo il flusso delle tracce in Application Insights, è possibile eseguire valutazioni direttamente su tali tracce. Non è necessaria alcuna costruzione di set di dati separata. Foundry risolve le tracce abbinando i tag (project, agent_id) in una finestra di lookback.

Note

Le valutazioni basate su traccia usano l'API compatibile con evals OpenAI (project.get_openai_client().evals). La superficie nativa project.evaluations non supporta ancora la valutazione basata su traccia.

Risolvere l'otel_agent_id dell'agente

Per ottenere l'ID dell'agente per le tracce, usare quanto segue:

Aprire l'agente esterno nel portale Foundry per visualizzarne le tracce. Per recuperare nel codice il valore restituito di otel_agent_id, utilizza una delle schede dell’SDK.

Creare ed eseguire la valutazione

Utilizza il tag otel_agent_id per eseguire una valutazione della traccia sui dati telemetrici raccolti dall'agente. Per la guida dettagliata completa, incluse le istruzioni per creare un gruppo di valutazione, configurare i criteri di test e interpretare i risultati, vedere Valutazione della traccia (anteprima).

Gestire agenti esterni

Usare gli stessi metodi SDK per elencare, recuperare ed eliminare agenti esterni.

Elencare gli agenti esterni

Nel portale Foundry, seleziona Build>Agents per visualizzare gli agenti esterni registrati.

Eliminare un agente esterno

Usare una delle schede SDK per eliminare una registrazione dell'agente esterno. L'eliminazione della registrazione non influisce sull'agente ospitato esternamente.

Riferimento: AIProjectClient

L'eliminazione della registrazione rimuove l'agente dal portale Foundry e fa sì che le tracce non vengano più visualizzate nella vista tracce dell'agente di Foundry. Gli intervalli rimangono in Application Insights e l'agente in esecuzione non ne risente.

Risoluzione dei problemi

Risolvere i problemi relativi alle tracce mancanti

Se non vengono visualizzate tracce, controllare gli elementi seguenti:

  • La risorsa di Application Insights è connessa al progetto Foundry in cui è stato registrato l'agente.
  • Il otel_agent_id nella registrazione corrisponde all'attributo gen_ai.agent.id negli span.
  • Nel processo dell'agente, APPLICATIONINSIGHTS_CONNECTION_STRING è impostato sulla risorsa Application Insights corretta.
  • Gli intervalli sono conformi alle convenzioni semantiche OpenTelemetry per l'intelligenza artificiale generativa.

Per altre indicazioni sulla risoluzione dei problemi, vedere Risolvere i problemi di valutazione e osservabilità.

Risolvere gli errori di registrazione

Se create_version() (Python) o createVersion() (JavaScript/TypeScript) ha esito negativo, controllare gli elementi seguenti:

  • Hai creato AIProjectClient con allow_preview=True (Python), oppure hai passato foundryFeatures: "ExternalAgents=V1Preview" nella chiamata a createVersion (JavaScript/TypeScript). Senza questo consenso esplicito, le richieste dell'agente esterno vengono rifiutate.
  • Il tuo account dispone del ruolo Utente Foundry (o superiore) nel progetto.
  • Il valore del nome dell'agente usa solo caratteri alfanumerici, trattini e caratteri di sottolineatura.
  • Non esiste già alcun agente con lo stesso nome ma di tipo diverso. Usare project.agents.get() per controllare.

Limitazioni correnti

Le funzionalità foundry seguenti non sono attualmente supportate per gli agenti esterni: