Créer des outils d’agent IA
Important
Cette fonctionnalité est disponible en préversion publique.
Cet article explique comment créer des outils pour les agents IA à l’aide de Mosaïque AI Agent Framework. Pour plus d’informations, consultez Qu’est-ce que le système IA composé et les agents IA ?.
Les agents IA utilisent des outils pour effectuer des actions en plus de la génération de langage, telles que la récupération de données structurées ou non structurées, l’exécution de code ou la conversation avec des services distants (par exemple, l’envoi d’un e-mail ou d’un message Slack).
Pour fournir des outils à un agent avec Mosaic AI Agent Framework, vous pouvez utiliser n’importe quelle combinaison des méthodes suivantes :
- Créer des outils avec des fonctions de catalogue Unity : les fonctions de catalogue Unity offrent une découverte, une gouvernance et un partage faciles. Les fonctions catalogue Unity fonctionnent particulièrement bien pour appliquer des transformations et des agrégations sur des jeux de données volumineux.
- Créer des outils avec du code d’agent : cette approche est utile lors de l’appel aux API REST, à l’aide de code ou de bibliothèques arbitraires, ou à l’exécution d’outils avec une latence très faible. Toutefois, cette approche ne dispose pas de la détectabilité et de la gouvernance intégrées fournies par les fonctions de catalogue Unity. Pesez ce compromis lors de la construction de votre agent pour déterminer quelle approche est la meilleure.
Les deux approches fonctionnent pour les agents écrits dans du code Python personnalisé ou à l’aide d’une bibliothèque de création d’agents comme LangGraph.
Améliorer l’appel d’outils avec la documentation
Les agents IA utilisent votre documentation pour comprendre quand et comment utiliser les outils que vous fournissez. Par conséquent, lors de la définition d’outils, veillez à ajouter une documentation claire et détaillée pour l’outil, ses paramètres et ses valeurs de retour.
Pour les fonctions catalogue Unity, utilisez cette option COMMENT
pour décrire l’outil.
Spécifications
- Databricks recommande d’installer la dernière version du client MLflow Python lors du développement d’agents. Pour des d’informations sur les exigences de version de
mlflow
, consultez Authentification pour les ressources dépendantes.
Créer des outils avec des fonctions de catalogue Unity
Les exemples suivants vous montrent comment créer des outils d’agent avec des fonctions de catalogue Unity.
Outil d’exécuteur Python
Cet exemple crée un outil pour exécuter du code Python.
Un LLM peut utiliser cet outil pour exécuter du code Python fourni par un utilisateur ou écrit par le LLM.
Exécutez le code suivant dans une cellule notebook. Il utilise la commande magique %sql
de notebook pour créer une fonction Unity Catalog appelée python_exec
.
%sql
CREATE OR REPLACE FUNCTION
main.default.python_exec (
code STRING COMMENT 'Python code to execute. Remember to print the final result to stdout.'
)
RETURNS STRING
LANGUAGE PYTHON
DETERMINISTIC
COMMENT 'Executes Python code in the sandboxed environment and returns its stdout. The runtime is stateless, and you can not read the output of the previous tool executions. No such variables, "rows", or "observations" were defined. Calling another tool inside a Python code is NOT allowed. Use standard Python libraries only.'
AS $$
import sys
from io import StringIO
sys_stdout = sys.stdout
redirected_output = StringIO()
sys.stdout = redirected_output
exec(code)
sys.stdout = sys_stdout
return redirected_output.getvalue()
$$
Outil de requête de table
Cet exemple crée un outil pour interroger les données client à partir d’une table De catalogue Unity.
Il crée une fonction de catalogue Unity appelée lookup_customer_info
qu’un LLM peut utiliser pour récupérer des données structurées à partir d’une table hypothétique customer_data
.
Exécutez le code suivant dans un éditeur SQL.
CREATE OR REPLACE FUNCTION main.default.lookup_customer_info(
customer_name STRING COMMENT 'Name of the customer whose info to look up'
)
RETURNS STRING
COMMENT 'Returns metadata about a particular customer given the customer name, including the customer email and ID. The
customer ID can be used for other queries.'
RETURN SELECT CONCAT(
'Customer ID: ', customer_id, ', ',
'Customer Email: ', customer_email
)
FROM main.default.customer_data
WHERE customer_name = customer_name
LIMIT 1;
Affecter des outils de catalogue Unity aux agents
Une fois que vous avez créé les outils catalogue Unity, affectez les outils à votre agent afin qu’il puisse les utiliser.
Cette section explique comment créer un agent appelant des outils à l’aide du terrain de jeu IA.
Exporter des agents d’appel d’outils à partir de l’ai Playground
Utilisez AI Playground pour affecter des outils de catalogue Unity à un LLM, tester l’agent, puis exporter le code qui définit l’agent appelant l’outil.
Pour utiliser ai Playground pour exporter des agents, votre espace de travail doit répondre aux exigences suivantes :
- Catalogue Unity activé
- Calcul serverless activé
- Modèles de base de paiement par jeton ou modèles externes activés
Dans Playground, sélectionnez un modèle avec l’étiquette Outils activée .
Sélectionnez Outils , puis cliquez sur Ajouter un outil.
Dans le menu déroulant, sélectionnez une fonction de catalogue Unity :
Utilisez Le Terrain de jeu pour discuter et tester la combinaison actuelle de LLM, d’outils et d’invite système. Essayez des variantes pour avoir une idée du fonctionnement de l’installation actuelle.
Après avoir ajouté des outils, exportez l’agent vers des notebooks Python :
Cliquez sur Exporter pour générer des notebooks Python qui définissent et déploient l’agent.
Après avoir exporté le code de l’agent, trois fichiers sont enregistrés dans votre espace de travail :
agent
notebook : contient du code Python définissant votre agent à l’aide de LangChain.driver
notebook : contient du code Python pour journaliser, suivre, inscrire et déployer l’agent IA à l’aide de Mosaic AI Agent Framework.config.yml
: contient des informations de configuration sur votre agent, y compris les définitions d’outils.
Ouvrez le
agent
bloc-notes pour voir le code LangChain définissant votre agent. Utilisez ce notebook pour tester et itérer sur l’agent par programmation, comme la définition d’autres outils.Lorsque vous êtes satisfait des sorties de l’agent, vous pouvez exécuter le
driver
notebook pour journaliser et déployer votre agent sur un point de terminaison Model Serving.
Créer des outils avec du code d’agent
Vous pouvez également créer des outils dans le code de l’agent plutôt que dans les fonctions de catalogue Unity.
Cette approche est utile lors de l’appel d’API REST, à l’aide de code ou de bibliothèques arbitraires ou à l’exécution d’outils à faible latence. Toutefois, la définition d’outils dans le code de l’agent ne dispose pas de la détectabilité et de la gouvernance fournies par les fonctions de catalogue Unity.
Pour obtenir un exemple d’outil de récupération de vecteurs défini dans le code de l’agent, consultez Créer un outil de récupération de recherche vectorielle.