Loading...
    • Créer
    • Admin
    • Modèles et tarification
    • SDK clients
    • Référence API
    Search...
    ⌘K
    Premiers pas
    Introduction à ClaudeDémarrage rapide
    Créer avec Claude
    Aperçu des fonctionnalitésUtiliser l'API MessagesCompétence Claude APIGérer les raisons d'arrêt
    Capacités du modèle
    Extended thinkingAdaptive thinkingEffortBudgets de tâches (bêta)Mode rapide (bêta : aperçu de recherche)Sorties structuréesCitationsMessages en continuTraitement par lotsRésultats de rechercheRefus en continuSupport multilingueEmbeddings
    Outils
    AperçuFonctionnement de l'utilisation des outilsOutil de recherche webOutil de récupération webOutil d'exécution de codeOutil AdvisorOutil MemoryOutil BashOutil Computer useOutil Éditeur de texte
    Infrastructure des outils
    Référence des outilsRecherche d'outilsAppel programmatique des outilsStreaming granulaire des outils
    Gestion du contexte
    Fenêtres de contexteCompactionÉdition du contexteMise en cache des invitesComptage des tokens
    Travailler avec des fichiers
    API FilesSupport PDFImages et vision
    Compétences
    AperçuDémarrage rapideMeilleures pratiquesCompétences pour l'entrepriseCompétences dans l'API
    MCP
    Serveurs MCP distantsConnecteur MCP
    Ingénierie des invites
    AperçuMeilleures pratiques d'invitesOutils d'invites Console
    Tester et évaluer
    Définir le succès et créer des évaluationsUtiliser l'outil d'évaluation dans ConsoleRéduire la latence
    Renforcer les garde-fous
    Réduire les hallucinationsAugmenter la cohérence des résultatsAtténuer les jailbreaksRéduire les fuites d'invites
    Ressources
    Glossaire
    Notes de version
    Claude Platform
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Outils

    Outil d'exécution de code

    Exécutez du code Python et bash dans un conteneur en sandbox pour analyser des données, générer des fichiers et itérer sur des solutions.

    Was this page helpful?

    • Compatibilité des modèles
    • Disponibilité de la plateforme
    • Démarrage rapide
    • Fonctionnement de l'exécution de code
    • Utilisation de l'exécution de code avec d'autres outils d'exécution
    • Comment utiliser l'outil
    • Télécharger et analyser vos propres fichiers
    • Définition de l'outil
    • Format de réponse
    • Réponse de commande Bash
    • Réponses d'opération sur fichiers
    • Résultats
    • Erreurs
    • Conteneurs
    • Environnement d'exécution
    • Limites de ressources
    • Réseau et sécurité
    • Bibliothèques pré-installées
    • Réutilisation de conteneurs
    • Exemple
    • Streaming
    • Requêtes par lot
    • Utilisation et tarification
    • Mettre à jour vers la dernière version de l'outil
    • Ce qui a changé
    • Compatibilité rétroactive
    • Étapes de mise à jour
    • Appel d'outil par programmation
    • Rétention des données
    • Utilisation de l'exécution de code avec Agent Skills

    Claude peut analyser des données, créer des visualisations, effectuer des calculs complexes, exécuter des commandes système, créer et modifier des fichiers, et traiter les fichiers téléchargés directement dans la conversation API. L'outil d'exécution de code permet à Claude d'exécuter des commandes Bash et de manipuler des fichiers, y compris l'écriture de code, dans un environnement sécurisé et en sandbox.

    L'exécution de code est gratuite lorsqu'elle est utilisée avec la recherche web ou la récupération web. Lorsque web_search_20260209 ou web_fetch_20260209 est inclus dans votre demande, il n'y a pas de frais supplémentaires pour les appels d'outil d'exécution de code au-delà des coûts standard des jetons d'entrée et de sortie. Les frais d'exécution de code standard s'appliquent lorsque ces outils ne sont pas inclus.

    L'exécution de code est une primitive fondamentale pour construire des agents haute performance. Elle permet le filtrage dynamique dans les outils de recherche web et de récupération web, permettant à Claude de traiter les résultats avant qu'ils n'atteignent la fenêtre de contexte, améliorant la précision tout en réduisant la consommation de jetons.

    Contactez-nous via le formulaire de retours pour partager vos commentaires sur cette fonctionnalité.

    This feature is not eligible for Zero Data Retention (ZDR). Data is retained according to the feature's standard retention policy.

    Compatibilité des modèles

    L'outil d'exécution de code est disponible sur les modèles suivants :

    ModèleVersions de l'outil
    Claude Opus 4.7 (claude-opus-4-7)code_execution_20250825, code_execution_20260120
    Claude Opus 4.6 (claude-opus-4-6)code_execution_20250825, code_execution_20260120
    Claude Sonnet 4.6 (claude-sonnet-4-6)code_execution_20250825, code_execution_20260120
    Claude Opus 4.5 (claude-opus-4-5-20251101)code_execution_20250825, code_execution_20260120
    Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)code_execution_20250825, code_execution_20260120
    Claude Haiku 4.5 (claude-haiku-4-5-20251001)code_execution_20250825
    Claude Opus 4.1 (claude-opus-4-1-20250805)code_execution_20250825
    Claude Opus 4 (claude-opus-4-20250514) (déprécié)code_execution_20250825
    Claude Sonnet 4 (claude-sonnet-4-20250514) (déprécié)code_execution_20250825
    Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (déprécié)code_execution_20250825
    Claude Haiku 3.5 (claude-3-5-haiku-latest) (déprécié)code_execution_20250825

    code_execution_20250825 supporte les commandes Bash et les opérations sur les fichiers et est disponible sur tous les modèles listés ci-dessus. code_execution_20260120 ajoute la persistance de l'état REPL et l'appel d'outil programmatique depuis le sandbox, et est disponible uniquement sur Opus 4.5+ et Sonnet 4.5+. Une version héritée code_execution_20250522 (Python uniquement) est également disponible sur les mêmes modèles que code_execution_20250825 ; voir Mettre à jour vers la dernière version de l'outil pour migrer depuis celle-ci.

    Les versions d'outil plus anciennes ne sont pas garanties d'être rétro-compatibles avec les modèles plus récents. Utilisez toujours la version de l'outil qui correspond à votre version de modèle.

    Disponibilité de la plateforme

    L'exécution de code est disponible sur :

    • Claude API (Anthropic)
    • Microsoft Azure AI Foundry

    L'exécution de code n'est actuellement pas disponible sur Amazon Bedrock ou Google Vertex AI.

    Pour Claude Mythos Preview, l'exécution de code est supportée sur Claude API et Microsoft Foundry uniquement. Elle n'est pas disponible pour Mythos Preview sur Amazon Bedrock ou Google Vertex AI.

    Démarrage rapide

    Voici un exemple simple qui demande à Claude d'effectuer un calcul :

    Fonctionnement de l'exécution de code

    Lorsque vous ajoutez l'outil d'exécution de code à votre demande API :

    1. Claude évalue si l'exécution de code aiderait à répondre à votre question
    2. L'outil fournit automatiquement à Claude les capacités suivantes :
      • Commandes Bash : Exécutez des commandes shell pour les opérations système et la gestion des paquets
      • Opérations sur les fichiers : Créez, visualisez et modifiez des fichiers directement, y compris l'écriture de code
    3. Claude peut utiliser n'importe quelle combinaison de ces capacités dans une seule demande
    4. Toutes les opérations s'exécutent dans un environnement sandbox sécurisé
    5. Claude fournit les résultats avec tous les graphiques générés, calculs ou analyses

    Utilisation de l'exécution de code avec d'autres outils d'exécution

    Lorsque vous fournissez l'exécution de code aux côtés d'outils fournis par le client qui exécutent également du code (comme un outil bash ou un REPL personnalisé), Claude opère dans un environnement multi-ordinateur. L'outil d'exécution de code s'exécute dans le conteneur en sandbox d'Anthropic, tandis que vos outils fournis par le client s'exécutent dans un environnement séparé que vous contrôlez. Claude peut parfois confondre ces environnements, tentant d'utiliser le mauvais outil ou supposant que l'état est partagé entre eux.

    Pour éviter cela, ajoutez des instructions à votre invite système qui clarifient la distinction :

    When multiple code execution environments are available, be aware that:
    - Variables, files, and state do NOT persist between different execution environments
    - Use the code_execution tool for general-purpose computation in Anthropic's sandboxed environment
    - Use client-provided execution tools (e.g., bash) when you need access to the user's local system, files, or data
    - If you need to pass results between environments, explicitly include outputs in subsequent tool calls rather than assuming shared state

    C'est particulièrement important lors de la combinaison de l'exécution de code avec la recherche web ou la récupération web, qui activent automatiquement l'exécution de code. Si votre application fournit déjà un outil shell côté client, l'exécution de code automatique crée un deuxième environnement d'exécution que Claude doit distinguer.

    Comment utiliser l'outil

    Télécharger et analyser vos propres fichiers

    Pour analyser vos propres fichiers de données (CSV, Excel, images, etc.), téléchargez-les via l'API Files et référencez-les dans votre demande :

    L'utilisation de l'API Files avec l'exécution de code nécessite l'en-tête bêta de l'API Files : "anthropic-beta": "files-api-2025-04-14"

    L'environnement Python peut traiter divers types de fichiers téléchargés via l'API Files, notamment :

    • CSV
    • Excel (.xlsx, .xls)
    • JSON
    • XML
    • Images (JPEG, PNG, GIF, WebP)
    • Fichiers texte (.txt, .md, .py, etc)

    Télécharger et analyser des fichiers

    1. Téléchargez votre fichier en utilisant l'API Files
    2. Référencez le fichier dans votre message en utilisant un bloc de contenu container_upload
    3. Incluez l'outil d'exécution de code dans votre demande API

    Récupérer les fichiers générés

    Lorsque Claude crée des fichiers lors de l'exécution du code, vous pouvez récupérer ces fichiers en utilisant l'API Files :

    Définition de l'outil

    L'outil d'exécution de code ne nécessite aucun paramètre supplémentaire :

    JSON
    {
      "type": "code_execution_20250825",
      "name": "code_execution"
    }

    Lorsque cet outil est fourni, Claude accède automatiquement à deux sous-outils :

    • bash_code_execution : Exécuter des commandes shell
    • text_editor_code_execution : Afficher, créer et modifier des fichiers, y compris l'écriture de code

    Format de réponse

    L'outil d'exécution de code peut retourner deux types de résultats selon l'opération :

    Réponse de commande Bash

    Output
    {
      "type": "server_tool_use",
      "id": "srvtoolu_01B3C4D5E6F7G8H9I0J1K2L3",
      "name": "bash_code_execution",
      "input": {
        "command": "ls -la | head -5"
      }
    },
    {
      "type": "bash_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01B3C4D5E6F7G8H9I0J1K2L3",
      "content": {
        "type": "bash_code_execution_result",
        "stdout": "total 24\ndrwxr-xr-x 2 user user 4096 Jan 1 12:00 .\ndrwxr-xr-x 3 user user 4096 Jan 1 11:00 ..\n-rw-r--r-- 1 user user  220 Jan 1 12:00 data.csv\n-rw-r--r-- 1 user user  180 Jan 1 12:00 config.json",
        "stderr": "",
        "return_code": 0
      }
    }

    Réponses d'opération sur fichiers

    Afficher le fichier :

    Output
    {
      "type": "server_tool_use",
      "id": "srvtoolu_01C4D5E6F7G8H9I0J1K2L3M4",
      "name": "text_editor_code_execution",
      "input": {
        "command": "view",
        "path": "config.json"
      }
    },
    {
      "type": "text_editor_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01C4D5E6F7G8H9I0J1K2L3M4",
      "content": {
        "type": "text_editor_code_execution_result",
        "file_type": "text",
        "content": "{\n  \"setting\": \"value\",\n  \"debug\": true\n}",
        "numLines": 4,
        "startLine": 1,
        "totalLines": 4
      }
    }

    Créer un fichier :

    Output
    {
      "type": "server_tool_use",
      "id": "srvtoolu_01D5E6F7G8H9I0J1K2L3M4N5",
      "name": "text_editor_code_execution",
      "input": {
        "command": "create",
        "path": "new_file.txt",
        "file_text": "Hello, World!"
      }
    },
    {
      "type": "text_editor_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01D5E6F7G8H9I0J1K2L3M4N5",
      "content": {
        "type": "text_editor_code_execution_result",
        "is_file_update": false
      }
    }

    Modifier un fichier (str_replace) :

    Output
    {
      "type": "server_tool_use",
      "id": "srvtoolu_01E6F7G8H9I0J1K2L3M4N5O6",
      "name": "text_editor_code_execution",
      "input": {
        "command": "str_replace",
        "path": "config.json",
        "old_str": "\"debug\": true",
        "new_str": "\"debug\": false"
      }
    },
    {
      "type": "text_editor_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01E6F7G8H9I0J1K2L3M4N5O6",
      "content": {
        "type": "text_editor_code_execution_result",
        "oldStart": 3,
        "oldLines": 1,
        "newStart": 3,
        "newLines": 1,
        "lines": ["-  \"debug\": true", "+  \"debug\": false"]
      }
    }

    Résultats

    Tous les résultats d'exécution incluent :

    • stdout : Sortie de l'exécution réussie
    • stderr : Messages d'erreur si l'exécution échoue
    • return_code : 0 pour le succès, non-zéro pour l'échec

    Champs supplémentaires pour les opérations sur fichiers :

    • Afficher : file_type, content, numLines, startLine, totalLines
    • Créer : is_file_update (si le fichier existait déjà)
    • Modifier : oldStart, oldLines, newStart, newLines, lines (format diff)

    Erreurs

    Chaque type d'outil peut retourner des erreurs spécifiques :

    Erreurs courantes (tous les outils) :

    Output
    {
      "type": "bash_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01VfmxgZ46TiHbmXgy928hQR",
      "content": {
        "type": "bash_code_execution_tool_result_error",
        "error_code": "unavailable"
      }
    }

    Codes d'erreur par type d'outil :

    OutilCode d'erreurDescription
    Tous les outilsunavailableL'outil est temporairement indisponible
    Tous les outilsexecution_time_exceededL'exécution a dépassé la limite de temps maximale
    Tous les outilscontainer_expiredLe conteneur a expiré et n'est plus disponible
    Tous les outilsinvalid_tool_inputParamètres invalides fournis à l'outil
    Tous les outilstoo_many_requestsLimite de débit dépassée pour l'utilisation de l'outil
    bashoutput_file_too_large

    Raison d'arrêt pause_turn

    La réponse peut inclure une raison d'arrêt pause_turn, qui indique que l'API a mis en pause un tour de longue durée. Vous pouvez fournir la réponse telle quelle dans une demande ultérieure pour laisser Claude continuer son tour, ou modifier le contenu si vous souhaitez interrompre la conversation.

    Conteneurs

    L'outil d'exécution de code s'exécute dans un environnement conteneurisé sécurisé conçu spécifiquement pour l'exécution de code, avec un accent particulier sur Python.

    Environnement d'exécution

    • Version Python : 3.11.12
    • Système d'exploitation : Conteneur basé sur Linux
    • Architecture : x86_64 (AMD64)

    Limites de ressources

    • Mémoire : 5 GiB de RAM
    • Espace disque : 5 GiB de stockage d'espace de travail
    • CPU : 1 CPU

    Réseau et sécurité

    • Accès Internet : Complètement désactivé pour des raisons de sécurité
    • Connexions externes : Aucune demande réseau sortante autorisée
    • Isolation du bac à sable : Isolation complète du système hôte et des autres conteneurs
    • Accès aux fichiers : Limité au répertoire d'espace de travail uniquement
    • Portée de l'espace de travail : Comme Files, les conteneurs sont limités à l'espace de travail de la clé API
    • Expiration : Les conteneurs expirent 30 jours après leur création

    Bibliothèques pré-installées

    L'environnement Python en bac à sable inclut ces bibliothèques couramment utilisées :

    • Science des données : pandas, numpy, scipy, scikit-learn, statsmodels
    • Visualisation : matplotlib, seaborn
    • Traitement de fichiers : pyarrow, openpyxl, xlsxwriter, xlrd, pillow, python-pptx, python-docx, pypdf, pdfplumber, pypdfium2, pdf2image, pdfkit, tabula-py, reportlab[pycairo], Img2pdf
    • Mathématiques et informatique : sympy, mpmath
    • Utilitaires : tqdm, python-dateutil, pytz, joblib, unzip, unrar, 7zip, bc, rg (ripgrep), fd, sqlite

    Réutilisation de conteneurs

    Vous pouvez réutiliser un conteneur existant sur plusieurs demandes API en fournissant l'ID de conteneur d'une réponse précédente. Cela vous permet de maintenir les fichiers créés entre les demandes.

    Exemple

    Streaming

    Avec le streaming activé, vous recevrez les événements d'exécution de code au fur et à mesure qu'ils se produisent :

    event: content_block_start
    data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "code_execution"}}
    
    // Code execution streamed
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"code\":\"import pandas as pd\\ndf = pd.read_csv('data.csv')\\nprint(df.head())\"}"}}
    
    // Pause while code executes
    
    // Execution results streamed
    event: content_block_start
    data: {"type": "content_block_start", "index": 2, "content_block": {"type": "code_execution_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": {"stdout": "   A  B  C\n0  1  2  3\n1  4  5  6", "stderr": ""}}}

    Requêtes par lot

    Vous pouvez inclure l'outil d'exécution de code dans l'API Messages Batches. Les appels d'outil d'exécution de code via l'API Messages Batches sont facturés de la même manière que ceux dans les requêtes régulières de l'API Messages.

    Utilisation et tarification

    Code execution is free when used with web search or web fetch. When web_search_20260209 or web_fetch_20260209 is included in your API request, there are no additional charges for code execution tool calls beyond the standard input and output token costs.

    When used without these tools, code execution is billed by execution time, tracked separately from token usage:

    • Execution time has a minimum of 5 minutes
    • Each organization receives 1,550 free hours of usage per month
    • Additional usage beyond 1,550 hours is billed at $0.05 per hour, per container
    • If files are included in the request, execution time is billed even if the tool is not invoked, due to files being preloaded onto the container

    Code execution usage is tracked in the response:

    "usage": {
      "input_tokens": 105,
      "output_tokens": 239,
      "server_tool_use": {
        "code_execution_requests": 1
      }
    }

    Mettre à jour vers la dernière version de l'outil

    En mettant à jour vers code-execution-2025-08-25, vous accédez à la manipulation de fichiers et aux capacités Bash, y compris le code dans plusieurs langages. Il n'y a pas de différence de prix.

    Ce qui a changé

    ComposantHéritéActuel
    En-tête bêtacode-execution-2025-05-22code-execution-2025-08-25
    Type d'outilcode_execution_20250522code_execution_20250825
    CapacitésPython uniquementCommandes Bash, opérations sur fichiers
    Types de réponsecode_execution_resultbash_code_execution_result, text_editor_code_execution_result

    Compatibilité rétroactive

    • Tout le code Python d'exécution existant continue de fonctionner exactement comme avant
    • Aucune modification requise pour les flux de travail existants utilisant Python uniquement

    Étapes de mise à jour

    Pour mettre à jour, mettez à jour le type d'outil dans vos requêtes API :

    - "type": "code_execution_20250522"
    + "type": "code_execution_20250825"

    Examinez la gestion des réponses (si vous analysez les réponses par programmation) :

    • Les blocs précédents pour les réponses d'exécution Python ne seront plus envoyés
    • À la place, de nouveaux types de réponse pour Bash et les opérations sur fichiers seront envoyés (voir la section Format de réponse)

    Appel d'outil par programmation

    Pour exécuter des outils à l'intérieur du conteneur d'exécution de code, consultez Appel d'outil par programmation.

    Rétention des données

    L'exécution du code s'exécute dans des conteneurs sandbox côté serveur. Les données du conteneur, y compris les artefacts d'exécution, les fichiers téléchargés et les résultats, sont conservés pendant jusqu'à 30 jours. Cette rétention s'applique à toutes les données traitées dans l'environnement du conteneur. Les fichiers que l'exécution du code crée dans l'API Files (récupérables via client.beta.files.download()) persistent jusqu'à ce qu'ils soient explicitement supprimés.

    Pour l'admissibilité ZDR dans toutes les fonctionnalités, consultez Rétention des données et API.

    Utilisation de l'exécution de code avec Agent Skills

    L'outil d'exécution de code permet à Claude d'utiliser Agent Skills. Les compétences sont des capacités modulaires composées d'instructions, de scripts et de ressources qui étendent les fonctionnalités de Claude.

    En savoir plus dans la documentation Agent Skills et le guide API Agent Skills.

    client = anthropic.Anthropic()
    
    response = client.messages.create(
        model="claude-opus-4-7",
        max_tokens=4096,
        messages=[
            {
                "role": "user",
                "content": "Calculate the mean and standard deviation of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]",
            }
        ],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
    )
    
    print(response)
    client = anthropic.Anthropic()
    
    # Upload a file
    file_object = client.beta.files.upload(
        file=open("data.csv", "rb"),
    )
    
    # Use the file_id with code execution
    response = client.beta.messages.create(
        model="claude-opus-4-7",
        betas=["files-api-2025-04-14"],
        max_tokens=4096,
        messages=[
            {
                "role": "user",
                "content": [
                    {"type": "text", "text": "Analyze this CSV data"},
                    {"type": "container_upload", "file_id": file_object.id},
                ],
            }
        ],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
    )
    
    print(response)
    # Initialize the client
    client = Anthropic()
    
    # Request code execution that creates files
    response = client.beta.messages.create(
        model="claude-opus-4-7",
        betas=["files-api-2025-04-14"],
        max_tokens=4096,
        messages=[
            {
                "role": "user",
                "content": "Create a matplotlib visualization and save it as output.png",
            }
        ],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
    )
    
    
    # Extract file IDs from the response
    def extract_file_ids(response):
        file_ids = []
        for item in response.content:
            if item.type == "bash_code_execution_tool_result":
                content_item = item.content
                if content_item.type == "bash_code_execution_result":
                    # concrete-typed list: List[BashCodeExecutionOutputBlock]
                    for file in content_item.content:
                        file_ids.append(file.file_id)
        return file_ids
    
    
    # Download the created files
    for file_id in extract_file_ids(response):
        file_metadata = client.beta.files.retrieve_metadata(file_id)
        file_content = client.beta.files.download(file_id)
        file_content.write_to_file(file_metadata.filename)
        print(f"Downloaded: {file_metadata.filename}")
    La sortie de la commande a dépassé la taille maximale
    text_editorfile_not_foundLe fichier n'existe pas (pour les opérations view/edit)
    text_editorstring_not_foundLe old_str n'a pas été trouvé dans le fichier (pour str_replace)
    # Première requête : Créer un fichier avec un nombre aléatoire
    response1 = client.messages.create(
        model="claude-opus-4-7",
        max_tokens=4096,
        messages=[
            {
                "role": "user",
                "content": "Write a file with a random number and save it to '/tmp/number.txt'",
            }
        ],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
    )
    
    # Extraire l'ID du conteneur de la première réponse
    container_id = response1.container.id
    
    # Deuxième requête : Réutiliser le conteneur pour lire le fichier
    response2 = client.messages.create(
        container=container_id,  # Réutiliser le même conteneur
        model="claude-opus-4-7",
        max_tokens=4096,
        messages=[
            {
                "role": "user",
                "content": "Read the number from '/tmp/number.txt' and calculate its square",
            }
        ],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
    )
    
    print(response2)