Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
L’inscription de l’agent personnalisé dans Microsoft Foundry Control Plane, dont la suppression est prévue le 30 avril 2027. Vous ne pouvez plus ajouter de nouveaux agents personnalisés. Utilisez plutôt des agents externes pour l’évaluation, l’observabilité et les cas d’utilisation liés à l’optimisation dans Foundry. Pour connaître les étapes de mise à jour de votre agent existant, consultez Migrer des agents personnalisés vers des agents externes.
La migration conserve votre passerelle existante et votre route d’invocation. Ne désinscrivez pas et ne supprimez pas l’agent personnalisé d’origine ou son API API Management dans le cadre de la migration.
Microsoft Plan de contrôle Foundry fournit une gestion centralisée et une observabilité pour les agents qui s’exécutent sur différentes plateformes et infrastructures. Cet article traite des données de gestion et de diagnostic pour les agents personnalisés existants.
Pour connaître les étapes de transition, consultez Migrer des agents personnalisés vers des agents externes.
Conditions préalables
-
Un compte Azure avec un abonnement actif. Si vous n'en avez pas, créez un compte Azure gratuit, qui inclut un abonnement d'essai gratuit.
Un projet Foundry. Si vous n’en avez pas, créez un projet.
Agent personnalisé existant inscrit dans Foundry Control Plane.
La passerelle IA existante configurée dans votre ressource Foundry et le point de terminaison back-end accessible de l’agent.
Note
Cette fonctionnalité est disponible uniquement dans le portail Foundry (nouveau). Recherchez
dans la bannière du portail pour confirmer que vous utilisez Foundry (nouveau).
Ajouter un agent personnalisé
Vous ne pouvez plus ajouter un nouvel agent personnalisé dans Foundry Control Plane. Pour une nouvelle intégration, inscrivez un agent externe. Pour un agent personnalisé existant, suivez le guide de migration.
Architecture d’agent personnalisée existante
Les agents personnalisés existants utilisent API Management comme proxy pour les communications avec l’agent, afin qu’il puisse contrôler l’accès et surveiller l’activité.
Connecter des clients à l’agent
Un enregistrement d’agent personnalisé existant a une URL de passerelle que les clients peuvent utiliser. Étant donné que la passerelle agit comme proxy pour les communications avec votre agent, elle peut contrôler l’accès et surveiller l’activité. Continuez à utiliser cette URL pendant la migration vers l’inscription auprès d’un agent externe.
Pour rechercher l’URL de passerelle existante :
Dans la liste des agents, sélectionnez le bouton radio en regard du nom de l’agent personnalisé pour ouvrir le volet d'informations. Ne sélectionnez pas le nom de l’agent lui-même, car ce lien s’éloigne du volet Ressources .
Dans le volet d’informations, sous URL de l’agent, sélectionnez l’option Copier .
Continuez à utiliser cette URL de passerelle pour appeler l’agent.
Dans cet exemple, les clients utilisent le Kit de développement logiciel (SDK) LangGraph et l’URL de passerelle existante pour appeler un agent LangGraph. Ce code crée un thread, envoie un message demandant la météo et diffuse la réponse.
import asyncio
from langgraph_sdk import get_client
client = get_client(url="https://apim-my-foundry-resource.azure-api.net/my-custom-agent/")
async def stream_run():
thread = await client.threads.create()
input_data = {"messages": [{"role": "human", "content": "What's the weather in LA?"}]}
async for chunk in client.runs.stream(thread['thread_id'], assistant_id="your_assistant_id", input=input_data):
print(chunk)
asyncio.run(stream_run())
Sortie attendue : l’agent traite le message et diffuse des réponses en tant que blocs. Chaque bloc contient des résultats partiels de l’exécution de l’agent. Ces résultats peuvent inclure des appels d’outils à la fonction météo et la réponse finale concernant la météo à Los Angeles.
Note
Bien que Foundry agisse comme proxy pour les demandes entrantes pour votre agent, le schéma d’autorisation et d’authentification d’origine dans le point de terminaison d’origine s’applique toujours. Lorsque vous utilisez le nouveau point de terminaison, fournissez le même mécanisme d’authentification que si vous utilisez le point de terminaison d’origine.
Bloquer et débloquer l’agent
Pour les agents personnalisés, Foundry n’a pas accès à l’infrastructure sous-jacente où l’agent s’exécute. Les opérations de démarrage et d’arrêt ne sont donc pas disponibles. Toutefois, Foundry peut bloquer les demandes entrantes adressées à l’agent afin que les clients ne puissent pas l’utiliser. Cette fonctionnalité permet aux administrateurs de désactiver un agent s’il se comporte mal.
Pour bloquer les demandes entrantes à votre agent :
Dans la barre d’outils, sélectionnez Utiliser.
Dans le volet gauche, sélectionnez Ressources.
Sélectionnez le bouton radio en regard de l’agent que vous souhaitez bloquer. Le volet d’informations s’affiche. Ne sélectionnez pas le nom de l’agent, car ce lien quitte le volet Ressources .
Sélectionnez Mettre à jour l’état, puis sélectionnez Bloquer.
Confirmez l’opération.
Après avoir bloqué l’agent, la valeur d’état de l’agent dans Foundry est bloquée. Les agents dans l’état bloqué s’exécutent dans leur infrastructure associée, mais ne peuvent pas prendre de demandes entrantes. Foundry bloque toute tentative d’interface avec l’agent.
Pour débloquer l’agent :
Sélectionnez Mettre à jour l’état, puis débloquer.
Confirmez l’opération.
Activer les données de diagnostic pour l’agent
Foundry utilise la norme open OpenTelemetry pour comprendre ce que font les agents. Si votre projet a configuré Application Insights, Foundry journalise les demandes dans Application Insights par défaut. Foundry utilise également ces données pour calculer :
- Exécutions
- Taux d’erreur
- Utilisation (si disponible)
Pour obtenir le meilleur niveau de fidélité, Foundry s’attend à ce que les agents personnalisés respectent les conventions sémantiques pour les solutions d’IA génératives dans la norme OpenTelemetry.
Afficher les traces et les journaux envoyés à Foundry
Dans la barre d’outils, sélectionnez Utiliser.
Dans le volet gauche, sélectionnez Ressources.
Sélectionnez le bouton radio à côté de l’agent pour ouvrir le panneau d'informations. Ne sélectionnez pas le nom de l’agent, car ce lien quitte le volet Ressources .
La section Traces affiche une entrée pour chaque appel HTTP effectué au point de terminaison de l’agent.
Pour afficher les détails, sélectionnez une entrée.
Conseil
Dans cet exemple, vous pouvez voir comment les clients utilisent le point de terminaison du nouvel agent pour communiquer avec l’agent. L’exemple montre un agent servi avec le Agent Protocol de LangChain. Les clients utilisent l’itinéraire
/runs/stream.
Dans cet exemple, la trace n’inclut aucun détail au-delà du billet HTTP. Le code de l’agent n’inclut pas d’instrumentation supplémentaire. Dans la section suivante, vous allez apprendre à instrumenter votre code et à obtenir des détails tels que les appels d’outils et les appels LLM (Large Language Model).
Instrumenter des agents de code personnalisés
Si vous générez votre agent à l’aide de code personnalisé, instrumentez votre solution pour émettre des traces conformément à la norme OpenTelemetry et les envoyer à Application Insights. L’instrumentation permet à Foundry d’accéder à des informations détaillées sur ce que fait votre agent.
Envoyez des traces à la ressource Application Insights de votre projet à l’aide de sa clé d’instrumentation. Pour obtenir la clé d’instrumentation associée à votre projet, suivez les instructions de Connect Application Insights à votre projet Foundry.
Dans cet exemple, vous configurez un agent développé avec LangGraph pour émettre des traces dans la norme OpenTelemetry. Le traceur capture toutes les opérations de l’agent, y compris les appels d’outils et les interactions de modèle. Le traceur envoie ensuite les opérations à Application Insights pour la surveillance.
Ce code utilise le package langchain-azure-ai . Pour obtenir des conseils sur l’instrumentation de solutions spécifiques avec OpenTelemetry, en fonction du langage de programmation et de l’infrastructure utilisés par votre solution, consultez les API de langage et les kits SDK.
pip install -U langchain-azure-ai[opentelemetry]
Ensuite, instrumentez votre agent :
from langchain.agents import create_agent
from langchain_azure_ai.callbacks.tracers import AzureAIOpenTelemetryTracer
application_insights_connection_string = "InstrumentationKey=12345678-..."
tracer = AzureAIOpenTelemetryTracer(
connection_string=application_insights_connection_string,
enable_content_recording=True,
)
def get_weather(city: str) -> str:
"""Get weather for a given city."""
return f"It's always sunny in {city}!"
agent = create_agent(
model="openai:gpt-5.1",
tools=[get_weather],
system_prompt="You are a helpful assistant",
).with_config({ "callbacks": [tracer] })
Sortie attendue : l’agent s’exécute normalement lors de l’émission automatique de traces OpenTelemetry vers Application Insights. Les traces incluent les noms des opérations, les durées, les appels de modèle, les appels d’outils et l’utilisation des jetons. Vous pouvez afficher ces traces dans le portail Foundry, dans la section Traces .
Conseil
Vous pouvez transmettre le chaîne de connexion à Application Insights à l’aide de la variable d’environnement APPLICATIONINSIGHTS_CONNECTION_STRING.
Solutions de plateformes instrumentales
Si votre agent s’exécute sur une solution de plateforme qui prend en charge OpenTelemetry, mais ne prend pas en charge Application Insights, déployez un collecteur OpenTelemetry et configurez votre logiciel pour envoyer des données OTLP au collecteur (configuration OpenTelemetry standard).
Configurez le collecteur avec l’exportateur Azure Monitor pour transférer des données vers Application Insights à l’aide de votre chaîne de connexion. Pour plus d’informations sur la façon de l’implémenter, consultez Configure Azure Monitor OpenTelemetry.
Dépannage des traces
Si vous ne voyez pas de traces, vérifiez les éléments suivants :
- Le projet associé à l’agent personnalisé existant a Application Insights configuré. La configuration d’Application Insights n’est pas automatiquement mise à jour après l’inscription. Vous ne pouvez plus enregistrer à nouveau l’agent personnalisé. Suivez Migration des agents personnalisés vers des agents externes et ne supprimez pas l’enregistrement existant ou l’API Management API.
- Vous avez configuré l’agent (en cours d’exécution sur son infrastructure) pour envoyer des traces à Application Insights, et vous utilisez la même ressource Application Insights que celle utilisée par votre projet.
- L’instrumentation est conforme aux conventions sémantiques OpenTelemetry pour l’IA générative.
- Les traces incluent des étendues avec l’attribut
gen_ai.operation.name="create_agent"etgen_ai.agent.id="<agent-id>"(ougen_ai.agent.name="<agent-id>"). Dans ce dernier attribut,"<agent-id>"est la valeur d’ID de l’agent OpenTelemetry que vous avez configurée lors de l’inscription.