Loading...
    • Guide du développeur
    • Référence API
    • MCP
    • Ressources
    • Notes de version
    Search...
    ⌘K
    Premiers pas
    Introduction à ClaudeDémarrage rapide
    Modèles et tarification
    Aperçu des modèlesChoisir un modèleNouveautés dans Claude 4.5Migration vers Claude 4.5Dépréciation des modèlesTarification
    Créer avec Claude
    Aperçu des fonctionnalitésUtiliser l'API MessagesFenêtres de contexteMeilleures pratiques de prompting
    Capacités
    Mise en cache des promptsÉdition de contexteRéflexion étendueEffortStreaming de messagesTraitement par lotsCitationsSupport multilingueComptage de tokensEmbeddingsVisionSupport PDFAPI FilesRésultats de rechercheSorties structurées
    Outils
    AperçuComment implémenter l'utilisation d'outilsStreaming d'outils granulaireOutil BashOutil d'exécution de codeAppel d'outils programmatiqueOutil Computer useOutil Éditeur de texteOutil Web fetchOutil Web searchOutil MemoryOutil Tool search
    Agent Skills
    AperçuDémarrage rapideMeilleures pratiquesUtiliser Skills avec l'API
    Agent SDK
    AperçuDémarrage rapideSDK TypeScriptTypeScript V2 (aperçu)SDK PythonGuide de migration
    MCP dans l'API
    Connecteur MCPServeurs MCP distants
    Claude sur des plateformes tierces
    Amazon BedrockMicrosoft FoundryVertex AI
    Ingénierie des prompts
    AperçuGénérateur de promptsUtiliser des modèles de promptsAméliorateur de promptsÊtre clair et directUtiliser des exemples (prompting multi-shot)Laisser Claude réfléchir (CoT)Utiliser des balises XMLDonner un rôle à Claude (prompts système)Pré-remplir la réponse de ClaudeChaîner des prompts complexesConseils pour le contexte longConseils pour la réflexion étendue
    Tester et évaluer
    Définir les critères de succèsDévelopper des cas de testUtiliser l'outil d'évaluationRéduire la latence
    Renforcer les garde-fous
    Réduire les hallucinationsAugmenter la cohérence des résultatsAtténuer les jailbreaksRefus en streamingRéduire les fuites de promptsGarder Claude dans le rôle
    Administration et surveillance
    Aperçu de l'API AdminAPI Utilisation et coûtsAPI Claude Code Analytics
    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
    • Catalog
    • 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
    • Catalog
    • 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

    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.
    • Compatibilité des modèles
    • Démarrage rapide
    • Fonctionnement de l'exécution de code
    • Comment utiliser l'outil
    • Exécuter des commandes Bash
    • Créer et modifier des fichiers directement
    • Télécharger et analyser vos propres fichiers
    • Combiner les opérations
    • Définition de l'outil
    • Format de réponse
    • Réponse de commande Bash
    • Réponses d'opération sur les 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 conteneur
    • 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 programmatique
    • 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 isolé.

    L'outil d'exécution de code est actuellement en bêta publique.

    Pour utiliser cette fonctionnalité, ajoutez l'en-tête bêta "code-execution-2025-08-25" beta header à vos requêtes API.

    Compatibilité des modèles

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

    ModèleVersion de l'outil
    Claude Opus 4.5 (claude-opus-4-5-20251101)code_execution_20250825
    Claude Opus 4.1 (claude-opus-4-1-20250805)code_execution_20250825
    Claude Opus 4 (claude-opus-4-20250514)code_execution_20250825
    Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)code_execution_20250825
    Claude Sonnet 4 (claude-sonnet-4-20250514)code_execution_20250825
    Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (deprecated)code_execution_20250825
    Claude Haiku 4.5 (claude-haiku-4-5-20251001)code_execution_20250825
    Claude Haiku 3.5 (claude-3-5-haiku-latest) (deprecated)code_execution_20250825

    La version actuelle code_execution_20250825 prend en charge les commandes Bash et les opérations sur les fichiers. Une version héritée code_execution_20250522 (Python uniquement) est également disponible. Consultez Upgrade to latest tool version pour les détails de migration.

    Les versions d'outils 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.

    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 requête 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écuter des commandes shell pour les opérations système et la gestion des paquets
      • Opérations sur les fichiers : Créer, afficher et modifier des fichiers directement, y compris l'écriture de code
    3. Claude peut utiliser n'importe quelle combinaison de ces capacités dans une seule requête
    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

    Comment utiliser l'outil

    Exécuter des commandes Bash

    Demandez à Claude de vérifier les informations système et d'installer des paquets :

    Créer et modifier des fichiers directement

    Claude peut créer, afficher et modifier des fichiers directement dans le sandbox en utilisant les capacités de manipulation de fichiers :

    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 requête :

    L'utilisation de l'API Files avec Code Execution nécessite deux en-têtes bêta : "anthropic-beta": "code-execution-2025-08-25,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 requête 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 :

    Combiner les opérations

    Un flux de travail complexe utilisant toutes les capacités :

    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

    {
      "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 les fichiers

    Afficher un fichier :

    {
      "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 :

    {
      "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) :

    {
      "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 d'une 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 les 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) :

    {
      "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
    text_editorfile_not_found

    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 long. Vous pouvez fournir la réponse telle quelle dans une requête 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 plus important 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 RAM
    • Espace disque : 5 GiB 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 requête réseau sortante autorisée
    • Isolation du sandbox : Isolation complète du système hôte et des autres conteneurs
    • Accès aux fichiers : Limité au répertoire de l'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 sandbox 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 calcul : sympy, mpmath
    • Utilitaires : tqdm, python-dateutil, pytz, joblib, unzip, unrar, 7zip, bc, rg (ripgrep), fd, sqlite

    Réutilisation de conteneur

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

    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 API Messages régulières.

    Utilisation et tarification

    Code execution tool usage is tracked separately from token usage. Execution time has a minimum of 5 minutes. If files are included in the request, execution time is billed even if the tool is not used due to files being preloaded onto the container.

    Each organization receives 1,550 free hours of usage with the code execution tool per month. Additional usage beyond the first 1,550 hours is billed at $0.05 per hour, per container.

    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 les 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 Python uniquement

    Étapes de mise à jour

    Pour mettre à jour, vous devez apporter les modifications suivantes dans vos requêtes API :

    1. Mettez à jour l'en-tête bêta :

      - "anthropic-beta": "code-execution-2025-05-22"
      + "anthropic-beta": "code-execution-2025-08-25"
    2. Mettez à jour le type d'outil :

      - "type": "code_execution_20250522"
      + "type": "code_execution_20250825"
    3. Examinez la gestion des réponses (si vous analysez les réponses par programme) :

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

    Appel d'outil programmatique

    L'outil d'exécution de code alimente l'appel d'outil programmatique, qui permet à Claude d'écrire du code qui appelle vos outils personnalisés par programme dans le conteneur d'exécution. Cela permet des flux de travail multi-outils efficaces, le filtrage des données avant d'atteindre le contexte de Claude, et la logique conditionnelle complexe.

    Python
    # Enable programmatic calling for your tools
    response = client.beta.messages.create(
        model="claude-sonnet-4-5",
        betas=["advanced-tool-use-2025-11-20"],
        max_tokens=4096,
        messages=[{
            "role": "user",
            "content": "Get weather for 5 cities and find the warmest"
        }],
        tools=[
            {
                "type": "code_execution_20250825",
                "name": "code_execution"
            },
            {
                "name": "get_weather",
                "description": "Get weather for a city",
                "input_schema": {...},
                "allowed_callers": ["code_execution_20250825"]  # Enable programmatic calling
            }
        ]
    )

    En savoir plus dans la documentation Appel d'outil programmatique.

    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.

    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: code-execution-2025-08-25" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-sonnet-4-5",
            "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"
            }]
        }'
    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: code-execution-2025-08-25" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-sonnet-4-5",
            "max_tokens": 4096,
            "messages": [{
                "role": "user",
                "content": "Check the Python version and list installed packages"
            }],
            "tools": [{
                "type": "code_execution_20250825",
                "name": "code_execution"
            }]
        }'
    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: code-execution-2025-08-25" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-sonnet-4-5",
            "max_tokens": 4096,
            "messages": [{
                "role": "user",
                "content": "Create a config.yaml file with database settings, then update the port from 5432 to 3306"
            }],
            "tools": [{
                "type": "code_execution_20250825",
                "name": "code_execution"
            }]
        }'
    # First, upload a file
    curl https://api.anthropic.com/v1/files \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: files-api-2025-04-14" \
        --form 'file=@"data.csv"' \
    
    # Then use the file_id with code execution
    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: code-execution-2025-08-25,files-api-2025-04-14" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-sonnet-4-5",
            "max_tokens": 4096,
            "messages": [{
                "role": "user",
                "content": [
                    {"type": "text", "text": "Analyze this CSV data"},
                    {"type": "container_upload", "file_id": "file_abc123"}
                ]
            }],
            "tools": [{
                "type": "code_execution_20250825",
                "name": "code_execution"
            }]
        }'
    from anthropic import Anthropic
    
    # Initialize the client
    client = Anthropic()
    
    # Request code execution that creates files
    response = client.beta.messages.create(
        model="claude-sonnet-4-5",
        betas=["code-execution-2025-08-25", "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':
                    for file in content_item.content:
                        if hasattr(file, 'file_id'):
                            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}")
    # First, upload a file
    curl https://api.anthropic.com/v1/files \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: files-api-2025-04-14" \
        --form 'file=@"data.csv"' \
        > file_response.json
    
    # Extract file_id (using jq)
    FILE_ID=$(jq -r '.id' file_response.json)
    
    # Then use it with code execution
    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: code-execution-2025-08-25,files-api-2025-04-14" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-sonnet-4-5",
            "max_tokens": 4096,
            "messages": [{
                "role": "user",
                "content": [
                    {
                        "type": "text", 
                        "text": "Analyze this CSV data: create a summary report, save visualizations, and create a README with the findings"
                    },
                    {
                        "type": "container_upload", 
                        "file_id": "'$FILE_ID'"
                    }
                ]
            }],
            "tools": [{
                "type": "code_execution_20250825",
                "name": "code_execution"
            }]
        }'
    Le 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)
    import os
    from anthropic import Anthropic
    
    # Initialize the client
    client = Anthropic(
        api_key=os.getenv("ANTHROPIC_API_KEY")
    )
    
    # First request: Create a file with a random number
    response1 = client.beta.messages.create(
        model="claude-sonnet-4-5",
        betas=["code-execution-2025-08-25"],
        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"
        }]
    )
    
    # Extract the container ID from the first response
    container_id = response1.container.id
    
    # Second request: Reuse the container to read the file
    response2 = client.beta.messages.create(
        container=container_id,  # Reuse the same container
        model="claude-sonnet-4-5",
        betas=["code-execution-2025-08-25"],
        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"
        }]
    )