Créez un agent IA et déployez-le sur Databricks Apps
Créez un agent d'IA et déployez-le à l'aide de Databricks Apps. Databricks Apps vous donne 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'un contrôle de version basé sur Git ou d'un développement IDE local.
Si votre agent utilise uniquement des outils hébergés par Databricks et n'a pas besoin de logique personnalisée entre les appels d'outil, vous pouvez utiliser l'API de superviseur (Bêta) pour laisser Databricks gérer la boucle de l'agent pour vous.

Chaque template d'agent conversationnel inclut une interface utilisateur de chat intégrée (illustrée ci-dessus) sans aucune configuration supplémentaire requise. L'interface utilisateur de chat prend en charge les réponses en streaming, le rendu Markdown, l'authentification Databricks et l'historique de chat persistant facultatif.
Exigences
Activez Databricks Apps dans votre workspace. Consultez Configurer votre Workspace et environnement de développement Databricks Apps.
Étape 1. Clonez le Template d'application d'agent
Commencez par utiliser un template d'agent pré-établi à partir du repository de templates d'applications Databricks.
Ce tutoriel utilise le template agent-openai-agents-sdk, qui comprend :
- Un agent créé à l'aide d'OpenAI Agent SDK
- 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 à l'aide de 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 du Workspace. Cela installe l'application et la déploie sur une ressource de compute dans votre workspace. Vous pouvez ensuite synchroniser les fichiers d'application sur votre environnement local pour un développement ultérieur.
-
Dans votre Databricks Workspace, cliquez sur + Nouveau > Application .
-
Cliquez sur Agents > Agent personnalisé (OpenAI SDK) .
-
Créer une nouvelle experimentation MLflow avec le nom
openai-agents-templateet finaliser la configuration pour installer le template. -
Une fois l'application créée, 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 le personnaliser :
-
Copier 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 du 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 agent
Le agent Template démontre 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 en tant que son frontend. Cette interface utilisateur de chat est intégrée au même déploiement Databricks Apps et est servie avec votre agent, donc aucune configuration supplémentaire n'est requise.
Vous pouvez personnaliser l'interface utilisateur de 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 des utilisateurs, consultez Créer et partager une interface utilisateur de chat avec Databricks Apps.
MLflow AgentServer
Un serveur FastAPI asynchrone qui gère les requêtes d'agent avec le traçage et l'observabilité intégrés. L'AgentServer fournit l'/responses endpoint pour interroger votre agent et gère automatiquement le routage 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 Databricks AI pour des capacités robustes de journalisation, de traçage, d'évaluation, de déploiement et de monitoring.
Pour apprendre à créer un ResponsesAgent, consultez les exemples dans la documentation MLflow - RéponsesAgent pour Model Serving.
ResponsesAgent offre les avantages suivants :
-
Capacités d'agent avancées
- Prise en charge multi-agent
- Sortie en streaming : diffusez la sortie par petits blocs.
- Historique complet des messages d'appel d'outil : renvoie plusieurs messages, y compris les messages intermédiaires d'appel d'outil, pour une qualité et une gestion des conversations améliorées.
- Prise en charge de la confirmation de l'appel d'outil
- Prise en charge des outils à exécution longue
-
Développement, déploiement et monitoring rationalisés
- Créez des agents à l’aide de n’importe quel framework : enveloppez tout agent existant à l’aide de l’interface
ResponsesAgentpour bénéficier d’une compatibilité prête à l’emploi avec AI Playground, Agent Evaluation et le monitoring des agents. - Interfaces d'édition typées : rédigez du code d'agent à l'aide de classes Python typées, en bénéficiant de l'autocomplétion des IDE et notebooks.
- Traçage automatique : MLflow agrège automatiquement les réponses diffusées en continu en traces pour une évaluation et un affichage plus faciles.
- Compatible avec le schéma OpenAI
Responses: Voir OpenAI : réponses vs ChatCompletion.
- Créez des agents à l’aide de n’importe quel framework : enveloppez tout agent existant à l’aide de l’interface
SDK OpenAI Agents
Le Template utilise le SDK OpenAI Agents comme framework d'agents pour la gestion des conversations et l'orchestration des outils. Vous pouvez créer des agents en utilisant 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 de Databricks pour donner aux agents l'accès aux outils et aux sources de données. Voir Model Context Protocol (MCP) sur Databricks.
Créer des agents à l’aide d’assistants de codage IA
Databricks recommande d'utiliser des assistants de codage 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 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
Donnez à votre agent des capacités comme l'interrogation de bases de données, la recherche de documents ou l'appel d'APIs externes en le connectant à des serveurs MCP. Le Template d'agent inclut 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 aux outils pour connaître les types d'outils pris en charge et les 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 utilitaires.
- OpenAI Agents SDK
- LangGraph
Utilisez le décorateur @function_tool de l'SDK OpenAI :
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. Gérer l'utilisation des LLM par vos agents sur Databricks Apps avec Unity AI Gateway
Acheminez les appels LLM de votre agent via la passerelle IA Unity (Bêta) 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 le coût par application, échanger des modèles et inspecter ou rejouer le trafic sans modifier le code de l’agent ni faire tourner les identifiants du fournisseur.
Bêta
Cette fonctionnalité est en bêta. Les administrateurs de Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Aperçus . Voir Gérer les prévisualisations Databricks.
-
Activez Unity AI Gateway sur votre Workspace. La Passerelle d'IA Unity est sur inscription pendant la version bêta. Un administrateur de compte doit l'activer depuis la page Prévisualisations de la console de compte avant que vous puissiez créer ou query des endpoints de passerelle. Consultez la gestion des prévisualisations Databricks.
-
Dirigez votre agent vers un Endpoint Unity AI Gateway. Dans votre code d’agent, transmettez le nom de l’Endpoint Unity AI Gateway en tant qu’argument
modelet définissezuse_ai_gateway=Truesur le client Databricks LLM. 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 les surfaces API supplémentaires (OpenAI Responses API, Anthropic Messages API, Google Gemini) et les exemples REST, consultez Interroger les services de modèles.
Sujets de création avancés
Réponses en 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 de finalisation :
- Émettre des événements delta : Envoyez plusieurs événements
output_text.deltaavec le mêmeitem_idpour stream des fragments de texte en temps réel. - Terminer par l'événement d'achèvement : envoyez un événement
response.output_item.donefinal avec le mêmeitem_idque les événements delta contenant le texte de sortie final complet.
Chaque événement Delta Stream un segment de texte vers le client. L'événement final terminé 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 de l'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 signaler 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 de source de récupération qui ne devraient pas être inclus dans l'historique de discussion 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 framework ci-dessus.
L'application d'examen Agent Evaluation ne prend pas en charge l'affichage des traces pour les agents avec des champs de saisie supplémentaires.
Fournir custom_inputs dans l'AI Playground et l'application d'évaluation
Si votre agent accepte des entrées supplémentaires en utilisant le 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 d'examen d'agent, 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écutez l'application agent localement
Configurez votre environnement local :
-
Installez
uv(gestionnaire de packages Python),nvm(gestionnaire de versions Node) et l'interface de ligne de commande Databricks :-
Exécutez ce qui suit pour utiliser Node 20 LTS :
Bashnvm use 20
-
Changer le répertoire pour 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, allez à http://localhost:8000 pour ouvrir l'interface utilisateur de chat intégrée et start une discussion avec l'agent.
Étape 6. Configurer l'authentification
Votre agent a besoin d'authentification pour accéder aux ressources Databricks. Databricks Apps offre deux méthodes d'authentification : l'autorisation d'application (Service Principal) et l'autorisation utilisateur (pour le compte 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 des Declarative Automation Bundles. Les templates d'agent sont livrés avec un databricks.yml, de sorte que ce chemin est le default lorsque vous start à partir d'un template.
Pour la référence complète, y compris 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 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 App authorization.
L'autorisation de l'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() dans vos fonctions @invoke ou @stream, pas pendant le Startup de l'application. Les identifiants utilisateur existent uniquement 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 obtenir la liste des étendues disponibles et les instructions de configuration complètes, consultez Autorisation de l'utilisateur.
Étape 7. Évaluez l’agent
Le Template comprend le code d'évaluation d'agent. Pour plus d’informations, consultez agent_server/evaluate_agent.py. É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 vers Databricks. Les Templates d'agent utilisent des 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 d'avoir le CLI Databricks installé et configuré.
Si vous avez créé votre application via l'interface utilisateur de 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 pour détecter les erreurs avant le déploiement :
Bashdatabricks bundle validate -
Déployez le bundle. Ceci upload votre code et configure les Ressources (MLflow Experimentation, 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 only upload files et configure les ressources. bundle run est requis pour start ou redémarrer 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 rapide curl avec un jeton OAuth. Les jetons d'accès personnels (PAT) ne sont pas pris en charge pour 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érez un jeton OAuth à l'aide de Databricks CLI :
databricks auth login --host <https://host.databricks.com>
databricks auth token
Utilisez le jeton pour interroger 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 telles que l’AI Playground supposent que votre agent dispose de l’un des ensembles de signatures de modèles pris en charge.
Si vous suivez l'approche recommandée pour la création d'agents à l'aide de l'interface ResponsesAgent, MLflow déduira 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 discussion de l’application d’examen 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 le support d'examen et de commentaires directement dans le Template de chatbot.
Étapes suivantes
Une fois que votre agent fonctionne en développement, mettez-le en production. Voir Mettre en production votre agent Databricks Apps pour la séquence recommandée : CI/CD, tests de charge, puis passerelle d'IA Unity.