Créez un agent IA et déployez-le sur Databricks Apps
Créez un agent IA et déployez-le à l'aide de Databricks Apps. Databricks Apps vous offre un contrôle total sur le code de l'agent, la configuration du serveur et le workflow de déploiement. Cette approche est idéale lorsque vous avez besoin d'un comportement de serveur personnalisé, d'une gestion de version basée sur Git ou d'un développement local IDE.
Si votre agent utilise uniquement les outils hébergés par Databricks et n'a pas besoin de logique personnalisée entre les appels d'outils, vous pouvez utiliser l'API Supervisor (bêta) pour laisser Databricks gérer la boucle d'agent pour vous.

Chaque Template d'agent conversationnel comprend une interface utilisateur de chat intégré (illustrée ci-dessus) sans configuration supplémentaire requise. L’interface utilisateur de chat prend en charge les réponses de streaming, le rendu markdown, l’authentification Databricks et l’historique de chat persistant facultatif.
Exigences
Activez les Databricks Apps dans votre Workspace. Consultez Configurez votre Workspace Databricks Apps et votre environnement de développement.
Étape 1. Cloner le template d'application d'agent
Commencez par utiliser un template d'agent pré-construit du repository de templates d'applications Databricks.
Ce tutoriel utilise le Template agent-openai-agents-sdk, qui inclut :
- Un agent créé à l'aide du SDK d'agent OpenAI
- Code de démarrage pour une application d'agent avec une API REST conversationnelle et une interface utilisateur de chat interactive.
- Code pour évaluer l'agent avec MLflow
Choisissez l’un des chemins suivants pour configurer le Template :
- Workspace UI
- Clone from GitHub
Installez le Template d'application à l'aide de l'interface utilisateur de Workspace. Ceci installe l'application et la déploie sur une ressource de compute dans votre Workspace. Vous pouvez ensuite synchroniser les fichiers de l'application avec votre environnement local pour un développement ultérieur.
-
Dans votre workspace Databricks, cliquez sur + Nouveau > Application .
-
Cliquez sur **Agents** > **Agent personnalisé (OpenAI SDK)**.
-
Créez une nouvelle Expérimentation MLflow avec le nom
openai-agents-templateet complétez le reste de la configuration pour installer le Template. -
Après avoir créé l'application, cliquez sur l'URL de l'application pour ouvrir l'interface utilisateur de discussion.
Après avoir créé l’application, download le code source sur votre machine locale pour la personnaliser :
-
Copiez la première commande sous Synchroniser les fichiers

-
Dans un terminal local, exécutez la commande copiée.
Pour start à partir d'un environnement local, clonez le repository de Template d'agent et ouvrez le répertoire agent-openai-agents-sdk :
git clone https://github.com/databricks/app-templates.git
cd app-templates/agent-openai-agents-sdk
Étape 2. Comprendre l'application de l'agent
Le Template d'agent présente une architecture prête pour la production avec ces composants clés. Ouvrez les sections suivantes pour plus de détails sur chaque composant :
Ouvrez les sections suivantes pour plus de détails sur chaque composant :
Interface utilisateur de chat intégrée
Le Template d'agent récupère et exécute automatiquement le Template d'application de chat comme interface utilisateur. Cette interface utilisateur de chat est incluse dans le même déploiement Databricks Apps et servie aux côtés de votre agent, il n'y a donc pas de configuration supplémentaire requise.
Vous pouvez personnaliser l'interface utilisateur du chat directement dans votre projet. Pour plus de détails sur les fonctionnalités de l'application de chat, y compris comment activer l'historique de chat persistant et la collecte des retours utilisateur, consultez Créez et partagez une interface utilisateur de chat avec Databricks Apps.
MLflow AgentServer
Un serveur FastAPI asynchrone qui gère les requêtes d'agent avec traçage et observabilité intégrés. L'AgentServer fournit l'endpoint /responses pour interroger votre agent et gère automatiquement l'acheminement des requêtes, la journalisation et la gestion des erreurs.
interfaceResponsesAgent
ResponsesAgentDatabricks recommande MLflow ResponsesAgent pour créer des agents. ResponsesAgent vous permet de créer des agents avec n’importe quel framework tiers, puis de l’intégrer aux fonctionnalités de Databricks AI pour des capacités de journalisation, de traçabilité, d’évaluation, de déploiement et de monitoring robustes.
Pour savoir comment créer un ResponsesAgent, consultez les exemples dans la documentation MLflow - ResponsesAgent pour Model Serving.
ResponsesAgent offre les avantages suivants :
-
Capacités d'agent avancées
- Prise en charge multi-agents
- Sortie en streaming : diffusez la sortie par petits fragments.
- Historique complet des messages d'appels d'outils : renvoie plusieurs messages, y compris les messages d'appels d'outils intermédiaires, pour une qualité et une gestion de conversation améliorées.
- Prise en charge de la confirmation de l'appel d'outil
- Support des outils à exécution longue
-
Développement, déploiement et monitoring rationalisés
- Créer des agents à l'aide de n'importe quel framework : Encapsulez tout agent existant à l'aide de l'interface
ResponsesAgentpour obtenir une compatibilité prête à l'emploi avec AI Playground, Agent Evaluation et le Monitoring d'Agent. - Interfaces de création typées : Écrivez du code d'agent en utilisant des classes Python typées, en bénéficiant de la complétion automatique de l'IDE et des Notebooks.
- Traçage automatique : MLflow agrège automatiquement les réponses Stream dans des traces pour faciliter l'évaluation et l'affichage.
- Compatible avec le schéma
Responsesd'OpenAI : voir OpenAI : Réponses vs. ChatCompletion.
- Créer des agents à l'aide de n'importe quel framework : Encapsulez tout agent existant à l'aide de l'interface
SDK OpenAI Agents
Le Template utilise le SDK OpenAI Agents comme framework d'agent pour la gestion des conversations et l'orchestration d'outils. Vous pouvez créer des agents à l'aide de n'importe quel framework. La clé est d'envelopper votre agent avec l'interface MLflow ResponsesAgent.
Serveurs MCP (Model Context Protocol)
Le Template se connecte aux serveurs MCP Databricks pour donner aux agents l'accès aux outils et aux sources de données. Consultez Model Context Protocol (MCP) sur Databricks.
Créez des agents à l'aide d'assistants de code IA
Databricks recommande d'utiliser des assistants de codage basés sur l'IA tels que Claude, Cursor et Copilot pour créer des agents. Utilisez les compétences d'agent fournies, dans /.claude/skills, et le fichier AGENTS.md pour aider les assistants d'IA à comprendre la structure du projet, les outils disponibles et les bonnes pratiques. Les agents peuvent lire automatiquement ces fichiers pour développer et déployer les Databricks Apps.
Étape 3. Ajoutez des outils à votre agent
Conférez à votre agent des fonctionnalités telles que l’interrogation de bases de données, la recherche de documents ou l’appel d’APIs externes en le connectant aux serveurs MCP. Le Template d’agent comprend une connexion de serveur MCP par default. Pour ajouter d’autres outils, configurez des serveurs MCP supplémentaires dans le code de votre agent et accordez les autorisations requises dans databricks.yml.
Consultez Connecter des agents à des outils pour connaître les types d'outils pris en charge et des exemples de code.
Définir des outils de fonction Python locaux
Pour les opérations qui ne nécessitent pas de sources de données externes ou d'APIs, définissez les outils directement dans le code de votre agent. Ces outils s'exécutent dans le même processus que votre agent et sont utiles pour les transformations de données, les calculs ou les opérations d'infrastructures publiques.
- OpenAI Agents SDK
- LangGraph
Utilisez le décorateur @function_tool du SDK OpenAI Agents :
from agents import Agent, function_tool
@function_tool
def get_current_time() -> str:
"""Get the current date and time."""
from datetime import datetime
return datetime.now().isoformat()
agent = Agent(
name="My agent",
instructions="You are a helpful assistant.",
model="databricks-claude-sonnet-4-5",
tools=[get_current_time],
)
Utilisez le décorateur @tool de LangChain :
from langchain_core.tools import tool
from langgraph.prebuilt import create_react_agent
from databricks_langchain import ChatDatabricks
@tool
def get_current_time() -> str:
"""Get the current date and time."""
from datetime import datetime
return datetime.now().isoformat()
agent = create_react_agent(
ChatDatabricks(endpoint="databricks-claude-sonnet-4-5"),
tools=[get_current_time],
)
Les outils de fonction locaux ne nécessitent pas d'octrois de ressources dans databricks.yml car ils s'exécutent au sein du processus de l'agent.
Étape 4. Gouvernez l'utilisation des LLM de vos agents sur Databricks Apps avec Unity AI Gateway
Acheminez les appels LLM de votre agent via Unity AI Gateway (Beta) afin que chaque requête soit régie par les mêmes contrôles, quel que soit le fournisseur qui y répond. Avec la passerelle dans le chemin de la requête, vous pouvez centraliser les autorisations, attribuer les coûts par application, échanger les modèles, et inspecter ou rejouer le trafic sans modifier le code de l'agent ou faire pivoter les informations d'identification du fournisseur.
Bêta
Cette fonctionnalité est en Bêta. Les administrateurs du Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Previews . Consultez Gérer les aperçus Databricks.
-
Activez Unity AI Gateway sur votre Workspace. Unity AI Gateway est disponible sur inscription pendant la phase Bêta. Un administrateur de compte doit l'activer depuis la page **Aperçus** de la console de compte avant que vous ne puissiez créer ou query des Endpoint de passerelle. Voir Gérer les aperçus Databricks.
-
Pointez votre agent vers un Endpoint de passerelle Unity AI. Dans le code de votre agent, passez le nom de l'Endpoint Unity AI Gateway comme argument
modelet définissezuse_ai_gateway=Truesur le client LLM Databricks. Le client achemine le trafic via la passerelle et gère automatiquement l'authentification.
- OpenAI
- LangGraph
from agents import Agent, set_default_openai_api, set_default_openai_client
from databricks_openai import AsyncDatabricksOpenAI
set_default_openai_client(AsyncDatabricksOpenAI(use_ai_gateway=True))
set_default_openai_api("chat_completions")
agent = Agent(
name="Agent",
instructions="You are a helpful assistant.",
model="<ai-gateway-endpoint>",
)
from databricks_langchain import ChatDatabricks
llm = ChatDatabricks(
model="<ai-gateway-endpoint>",
use_ai_gateway=True,
)
Pour d'autres surfaces d'API (OpenAI Responses API, Anthropic Messages API, Google Gemini) et des exemples REST, consultez Requêter les services de modèle.
Sujets de création avancés
Réponses de streaming
Réponses en streaming
Le streaming permet aux agents d'envoyer des réponses par blocs en temps réel au lieu d'attendre la réponse complète. Pour implémenter le streaming avec ResponsesAgent, émettez une série d'événements delta suivie d'un événement d'achèvement final :
- Émettre des événements delta : Envoyez plusieurs Stream avec le
output_text.deltamêmeitem_idpour diffuser des blocs de texte en temps réel. - Terminer avec l'événement terminé : Envoyez un événement final
response.output_item.doneavec le mêmeitem_idque les événements delta contenant le texte de sortie final complet.
Chaque événement delta Stream un segment de texte au client. L’événement « done » final contient le texte de réponse complet et signale à Databricks de faire ce qui suit :
- Tracez la sortie de votre agent avec le traçage MLflow
- Agréger les réponses Stream dans les tables d'inférence Unity AI Gateway
- Afficher le résultat complet dans l’interface utilisateur d’AI Playground
Propagation des erreurs de streaming
Databricks propage toutes les erreurs rencontrées lors du streaming avec le dernier jeton sous databricks_output.error. Il appartient au client appelant de gérer et de faire remonter correctement cette erreur.
{
"delta": …,
"databricks_output": {
"trace": {...},
"error": {
"error_code": BAD_REQUEST,
"message": "TimeoutException: Tool XYZ failed to execute."
}
}
}
Entrées et sorties personnalisées
Entrées et sorties personnalisées
Certains scénarios peuvent nécessiter des entrées d'agent supplémentaires, telles que client_type et session_id, ou des sorties comme des liens vers la source de récupération qui ne devraient pas être inclus dans l'historique de chat pour les interactions futures.
Pour ces scénarios, MLflow ResponsesAgent prend en charge en mode natif les champs custom_inputs et custom_outputs. Vous pouvez accéder aux entrées personnalisées via request.custom_inputs dans les exemples de frameworks ci-dessus.
L'application de révision Agent Evaluation ne prend pas en charge le rendu des traces pour les agents avec des champs de saisie supplémentaires.
Fournissez custom_inputs dans l'AI Playground et examinez l'application.
Si votre agent accepte des entrées supplémentaires à l'aide du champ custom_inputs, vous pouvez fournir manuellement ces entrées à la fois dans l'AI Playground et dans l'application de révision.
-
Dans l'AI Playground ou l'application Agent Review, sélectionnez l'icône d'engrenage
.
-
Activer custom_inputs .
-
Fournissez un objet JSON qui correspond au schéma d'entrée défini de votre agent.

Étape 5. Exécuter l'application agent localement
Configurez votre environnement local :
-
Installez
uv(gestionnaire de packages Python),nvm(gestionnaire de versions Node), et la CLI Databricks :-
Exécutez les éléments suivants pour utiliser Node 20 LTS :
Bashnvm use 20
-
Changez de répertoire vers le dossier
agent-openai-agents-sdk. -
Exécutez les scripts de démarrage rapide fournis pour installer les dépendances, configurer votre environnement et start l'application.
Bashuv run quickstart
uv run start-app
Dans un navigateur, rendez-vous sur http://localhost:8000 pour ouvrir l'interface utilisateur de chat intégrée et start à discuter avec l'agent.
Étape 6. Configurer l'authentification
Votre agent a besoin d'une authentification pour accéder aux Ressources Databricks. Databricks Apps fournit deux méthodes d'authentification : autorisation d'application (Service Principal) et autorisation utilisateur (au nom de l'utilisateur). Vous pouvez configurer l'un ou l'autre via l'interface utilisateur du Workspace ou de manière déclarative dans databricks.yml avec les Declarative Automation Bundles. Les Template d'agent sont livrés avec un databricks.yml, ce chemin est donc le default lorsque vous start depuis un Template.
Pour la référence complète, incluant tous les types de ressources pris en charge, les valeurs d'autorisation et une présentation de bout en bout databricks.yml, consultez Authentification pour les agents d'IA.
- App authorization (default)
- User authorization
L'autorisation d'application utilise un Service Principal que Databricks crée automatiquement pour votre application. Tous les utilisateurs partagent les mêmes autorisations.
Déclarez chaque Ressource que l'agent utilise sous resources.apps.<app>.resources dans databricks.yml. Déployez le bundle pour accorder au service principal les autorisations déclarées :
resources:
apps:
agent_openai_agents_sdk:
name: 'agent-openai-agents-sdk'
source_code_path: ./
config:
command: ['uv', 'run', 'start-app']
env:
- name: MLFLOW_TRACKING_URI
value: 'databricks'
- name: MLFLOW_REGISTRY_URI
value: 'databricks-uc'
- name: MLFLOW_EXPERIMENT_ID
value_from: 'experiment'
resources:
- name: 'experiment'
experiment:
experiment_id: '<experiment-id>'
permission: 'CAN_EDIT'
- name: 'llm'
serving_endpoint:
name: 'databricks-claude-sonnet-4-5'
permission: 'CAN_QUERY'
databricks bundle deploy
databricks bundle run agent_openai_agents_sdk
Pour la liste complète des types de ressources, consultez Autorisation de l'application.
L'autorisation d'utilisateur permet à votre agent d'agir avec les autorisations individuelles de chaque utilisateur. Utilisez ceci lorsque vous avez besoin d'un contrôle d'accès par utilisateur ou de pistes d'audit.
Ajoutez ce code à votre agent :
from agent_server.utils import get_user_workspace_client
# In your agent code (inside @invoke or @stream)
user_workspace = get_user_workspace_client()
# Access resources with the user's permissions
response = user_workspace.serving_endpoints.query(name="my-endpoint", inputs=inputs)
Initialisez get_user_workspace_client() à l'intérieur de vos fonctions @invoke ou @stream, pas pendant le Startup. Les identifiants d'utilisateur n'existent que lors du traitement d'une requête.
Configurez les APIs Databricks que l'agent peut appeler au nom de l'utilisateur en ajoutant des étendues sous user_api_scopes sur l'application dans databricks.yml:
resources:
apps:
agent_openai_agents_sdk:
name: 'agent-openai-agents-sdk'
source_code_path: ./
user_api_scopes:
- sql
- genie
- model-serving
databricks bundle deploy
databricks bundle run agent_openai_agents_sdk
Pour la liste des étendues disponibles et les instructions de configuration complètes, consultez Autorisation de l'utilisateur.
Étape 7. Évaluer l'agent
Le Template inclut le code d'évaluation d'agent. Voir agent_server/evaluate_agent.py pour plus d'informations. Évaluez la pertinence et la sécurité des réponses de votre agent en exécutant ce qui suit dans un terminal :
uv run agent-evaluate
Étape 8. Déployez l'agent vers Databricks Apps
Après avoir configuré l'authentification, déployez votre agent sur Databricks. Les templates d'agent utilisent les Databricks Asset Bundles (DABs) pour le déploiement. Le fichier databricks.yml dans le Template définit la configuration de l'application et les permissions des Ressources. Assurez-vous que le Databricks CLI est installé et configuré.
Si vous avez créé votre application via l'interface utilisateur du Workspace à l'étape 1, exécutez databricks bundle deployment bind agent_openai_agents_sdk <app-name> --auto-approve avant de déployer pour lier l'application existante à votre bundle. Sinon, databricks bundle deploy échoue avec « Une application portant le même nom existe déjà ».
-
Validez la configuration du bundle afin de détecter les erreurs avant le déploiement :
Bashdatabricks bundle validate -
Déployez le bundle. Ceci upload votre code et configure les Ressources (Expérimentation MLflow, Endpoint de service, etc.) définies dans
databricks.yml:Bashdatabricks bundle deploy -
Start ou redémarrez l’application :
Bashdatabricks bundle run agent_openai_agents_sdk
bundle deploy ne fait qu'upload les fichiers et configure les Ressources. bundle run est nécessaire pour start ou restart l'application avec le nouveau code.
Pour les futures mises à jour, exécutez databricks bundle deploy, puis databricks bundle run agent_openai_agents_sdk pour redéployer.
Étape 9. Query l'agent déployé
L'exemple suivant utilise une requête curl rapide avec un jeton OAuth. Les jetons d'accès personnels (PAT) ne sont pas pris en charge pour les Databricks Apps.
Pour la liste complète des méthodes de query, y compris le client Databricks OpenAI et l'API REST, consultez Interroger un agent déployé sur Databricks.
Générer un jeton OAuth à l’aide de l’interface CLI Databricks :
databricks auth login --host <https://host.databricks.com>
databricks auth token
Utilisez le token pour query l'agent :
curl -X POST <app-url.databricksapps.com>/responses \
-H "Authorization: Bearer <oauth token>" \
-H "Content-Type: application/json" \
-d '{ "input": [{ "role": "user", "content": "hi" }], "stream": true }'
Comprendre les signatures de modèle pour garantir la compatibilité avec les fonctionnalités Databricks
Databricks utilise les Signatures de modèle MLflow pour définir le schéma d'entrée et de sortie des agents. Les fonctionnalités du produit comme l'AI Playground supposent que votre agent dispose d'un ensemble de signatures de modèle prises en charge.
Si vous suivez l'approche recommandée pour la création d'agents à l'aide de l'interface ResponsesAgent, MLflow inférera automatiquement une signature pour votre agent qui est compatible avec les fonctionnalités produit de Databricks.
Limitations
- Seules les tailles de compute moyennes et grandes sont prises en charge. Consultez Configurer les ressources de compute pour une application Databricks.
- L’interface utilisateur de chat de l’application de révision MLflow ne prend pas actuellement en charge les agents déployés sur Databricks Apps. Pour évaluer les traces existantes, utilisez les sessions d’étiquetage, qui fonctionnent quelle que soit la méthode de déploiement. Databricks intègre la prise en charge des révisions et des commentaires directement dans le template de chatbot.
Étapes suivantes
Une fois que votre agent fonctionne en développement, mettez-le en production. Consultez Produire votre agent Databricks Apps pour connaître la séquence recommandée : CI/CD, tests de charge, puis Unity AI Gateway.