Autoriser les agents à exécuter du code

Important

Pour utiliser system.ai.dbsql, system.ai.sandbox ou system.ai.web_search, un administrateur de compte doit activer la version bêta Unity Gateway depuis la page Previews de la console de compte. Voir Gérer les aperçus du compte.

Utilisez le system.ai.sandbox MCP pour permettre à votre agent d’exécuter Python, SQL ou code shell dans un environnement isolé. Cet exemple connecte un agent LangGraph au MCP et lui demande d’effectuer un calcul en Python.

Avant de commencer

Exécuter du code avec le MCP sandbox

Installez les bibliothèques :

pip install --upgrade databricks-langchain langgraph "mcp>=1.24,<2"

Enregistrez les éléments suivants sous code_agent.py. WorkspaceClient utilise la connexion à votre espace de travail pour authentifier la connexion MCP.

import asyncio
from databricks.sdk import WorkspaceClient
from databricks_langchain import (
    ChatDatabricks,
    DatabricksMCPServer,
    DatabricksMultiServerMCPClient,
)
from langchain_core.messages import convert_to_openai_messages
from langgraph.prebuilt import create_react_agent

workspace_client = WorkspaceClient()
server_url = f"{workspace_client.config.host}/ai-gateway/mcp-services/system.ai.sandbox"

async def main():
    mcp_client = DatabricksMultiServerMCPClient([
        DatabricksMCPServer(
            name="code-interpreter",
            url=server_url,
            workspace_client=workspace_client,
        ),
    ])
    agent = create_react_agent(
        ChatDatabricks(endpoint="databricks-claude-sonnet-4-5"),
        tools=await mcp_client.get_tools(),
        prompt=lambda state: convert_to_openai_messages(state["messages"]),
    )
    result = await agent.ainvoke({
        "messages": [{
            "role": "user",
            "content": "Run Python code to calculate the mean of [12, 18, 24].",
        }],
    })
    print(result["messages"][-1].content)

asyncio.run(main())

Exécutez l’agent :

python code_agent.py

L'agent découvre les outils du MCP, exécute du code Python et retourne une moyenne de 18. Le bac à sable MCP n’a pas d’accès réseau, donc utilisez du code qui n’a pas besoin de télécharger des paquets ni d’appeler des API externes.

Pour d’autres frameworks, utilisez cela server_url avec les exemples d’agents Python. Pour le déploiement, voir Construire un agent personnalisé.

Utilisez la fonction Python via MCP (hérité)

Pour une intégration existante avec la system.ai.python_exec fonction, utilisez l’exemple de l’agent ci-dessus avec cette URL à la place :

server_url = f"{workspace_client.config.host}/api/2.0/mcp/functions/system/ai/python_exec"

Ce point de terminaison nécessite l’aperçu de l’espace de travail Managed MCP Servers ainsi que l’accès à la fonction sous-jacente. Il utilise les autorisations du point de terminaison de l’espace de travail. Pour le déploiement des agents et l’accès aux fonctions, voir Authentification des agents.

Ressources additionnelles