Loading...
    • 开发者指南
    • API 参考
    • MCP
    • 资源
    • 更新日志
    Search...
    ⌘K
    入门
    Claude 简介快速开始
    模型与定价
    模型概览选择模型Claude 4.6 新特性迁移指南模型弃用定价
    使用 Claude 构建
    功能概览使用 Messages API处理停止原因提示词最佳实践
    上下文管理
    上下文窗口压缩上下文编辑
    能力
    提示缓存扩展思考自适应思考推理力度流式消息批量处理引用多语言支持Token 计数嵌入视觉PDF 支持Files API搜索结果结构化输出
    工具
    概览如何实现工具使用细粒度工具流式传输Bash 工具代码执行工具程序化工具调用计算机使用工具文本编辑器工具网页抓取工具网页搜索工具记忆工具工具搜索工具
    Agent Skills
    概览快速开始最佳实践企业级 Skills通过 API 使用 Skills
    Agent SDK
    概览快速开始TypeScript SDKTypeScript V2(预览版)Python SDK迁移指南
    API 中的 MCP
    MCP 连接器远程 MCP 服务器
    第三方平台上的 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    提示工程
    概览提示词生成器使用提示词模板提示词优化器清晰直接使用示例(多样本提示)让 Claude 思考(思维链)使用 XML 标签赋予 Claude 角色(系统提示词)链式复杂提示长上下文技巧扩展思考技巧
    测试与评估
    定义成功标准开发测试用例使用评估工具降低延迟
    加强安全护栏
    减少幻觉提高输出一致性防范越狱攻击流式拒绝减少提示词泄露保持 Claude 角色设定
    管理与监控
    Admin API 概览数据驻留工作空间用量与成本 APIClaude Code Analytics API零数据留存
    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
    工具

    代码执行工具

    Claude 可以直接在 API 对话中分析数据、创建可视化图表、执行复杂计算、运行系统命令、创建和编辑文件以及处理上传的文件。 代码执行工具允许 Claude 在安全的沙盒环境中运行 Bash 命令和操作文件(包括编写代码)。

    代码执行工具目前处于公开测试阶段。

    要使用此功能,请在 API 请求中添加 "code-execution-2025-08-25" beta 头。

    请通过我们的反馈表单分享您对此功能的反馈。

    模型兼容性

    代码执行工具可在以下模型上使用:

    模型工具版本
    Claude Opus 4.6 (claude-opus-4-6)code_execution_20250825
    Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)code_execution_20250825
    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 (claude-sonnet-4-20250514)code_execution_20250825
    Claude Sonnet 3.7 (claude-3-7-sonnet-20250219)(已弃用)code_execution_20250825
    Claude Haiku 4.5 (claude-haiku-4-5-20251001)code_execution_20250825
    Claude Haiku 3.5 (claude-3-5-haiku-latest)(已弃用)code_execution_20250825

    当前版本 code_execution_20250825 支持 Bash 命令和文件操作。旧版本 code_execution_20250522(仅支持 Python)也仍然可用。请参阅升级到最新工具版本了解迁移详情。

    旧版工具不保证与新模型向后兼容。请始终使用与您的模型版本对应的工具版本。

    快速开始

    以下是一个要求 Claude 执行计算的简单示例:

    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-opus-4-6",
            "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"
            }]
        }'

    代码执行的工作原理

    当您在 API 请求中添加代码执行工具时:

    1. Claude 会评估代码执行是否有助于回答您的问题
    2. 该工具自动为 Claude 提供以下功能:
      • Bash 命令:执行 shell 命令以进行系统操作和包管理
      • 文件操作:直接创建、查看和编辑文件,包括编写代码
    3. Claude 可以在单个请求中使用这些功能的任意组合
    4. 所有操作都在安全的沙盒环境中运行
    5. Claude 提供结果以及任何生成的图表、计算或分析

    如何使用该工具

    执行 Bash 命令

    要求 Claude 检查系统信息并安装包:

    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-opus-4-6",
            "max_tokens": 4096,
            "messages": [{
                "role": "user",
                "content": "Check the Python version and list installed packages"
            }],
            "tools": [{
                "type": "code_execution_20250825",
                "name": "code_execution"
            }]
        }'

    直接创建和编辑文件

    Claude 可以使用文件操作功能直接在沙盒中创建、查看和编辑文件:

    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-opus-4-6",
            "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"
            }]
        }'

    上传和分析您自己的文件

    要分析您自己的数据文件(CSV、Excel、图片等),请通过 Files API 上传文件并在请求中引用它们:

    将 Files API 与代码执行一起使用需要两个 beta 头:"anthropic-beta": "code-execution-2025-08-25,files-api-2025-04-14"

    Python 环境可以处理通过 Files API 上传的各种文件类型,包括:

    • CSV
    • Excel (.xlsx, .xls)
    • JSON
    • XML
    • 图片 (JPEG, PNG, GIF, WebP)
    • 文本文件 (.txt, .md, .py 等)

    上传和分析文件

    1. 使用 Files API 上传您的文件
    2. 在消息中使用 container_upload 内容块引用文件
    3. 在 API 请求中包含代码执行工具
    # 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-opus-4-6",
            "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"
            }]
        }'

    检索生成的文件

    当 Claude 在代码执行过程中创建文件时,您可以使用 Files API 检索这些文件:

    from anthropic import Anthropic
    
    # Initialize the client
    client = Anthropic()
    
    # Request code execution that creates files
    response = client.beta.messages.create(
        model="claude-opus-4-6",
        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-opus-4-6",
            "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"
            }]
        }'

    工具定义

    代码执行工具不需要额外参数:

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

    当提供此工具时,Claude 会自动获得两个子工具的访问权限:

    • bash_code_execution:运行 shell 命令
    • text_editor_code_execution:查看、创建和编辑文件,包括编写代码

    响应格式

    代码执行工具可以根据操作返回两种类型的结果:

    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
      }
    }

    文件操作响应

    查看文件:

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

    创建文件:

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

    编辑文件 (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"]
      }
    }

    结果

    所有执行结果包括:

    • stdout:成功执行的输出
    • stderr:执行失败时的错误消息
    • return_code:0 表示成功,非零表示失败

    文件操作的附加字段:

    • 查看:file_type、content、numLines、startLine、totalLines
    • 创建:is_file_update(文件是否已存在)
    • 编辑:oldStart、oldLines、newStart、newLines、lines(diff 格式)

    错误

    每种工具类型可以返回特定的错误:

    通用错误(所有工具):

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

    按工具类型分类的错误代码:

    工具错误代码描述
    所有工具unavailable工具暂时不可用
    所有工具execution_time_exceeded执行超过最大时间限制
    所有工具container_expired容器已过期且不再可用
    所有工具invalid_tool_input提供给工具的参数无效
    所有工具too_many_requests工具使用超过速率限制
    text_editorfile_not_found文件不存在(用于查看/编辑操作)
    text_editorstring_not_found在文件中未找到 old_str(用于 str_replace)

    pause_turn 停止原因

    响应可能包含 pause_turn 停止原因,这表示 API 暂停了一个长时间运行的轮次。您可以将响应原样提供到后续请求中,让 Claude 继续其轮次,或者如果您希望中断对话,可以修改内容。

    容器

    代码执行工具在专为代码执行设计的安全容器化环境中运行,更侧重于 Python。

    运行时环境

    • Python 版本:3.11.12
    • 操作系统:基于 Linux 的容器
    • 架构:x86_64 (AMD64)

    资源限制

    • 内存:5GiB RAM
    • 磁盘空间:5GiB 工作区存储
    • CPU:1 CPU

    网络和安全

    • 互联网访问:出于安全考虑完全禁用
    • 外部连接:不允许出站网络请求
    • 沙盒隔离:与主机系统和其他容器完全隔离
    • 文件访问:仅限于工作区目录
    • 工作区范围:与 Files 一样,容器的范围限定在 API 密钥的工作区内
    • 过期时间:容器在创建后 30 天过期

    预安装库

    沙盒 Python 环境包含以下常用库:

    • 数据科学:pandas、numpy、scipy、scikit-learn、statsmodels
    • 可视化:matplotlib、seaborn
    • 文件处理:pyarrow、openpyxl、xlsxwriter、xlrd、pillow、python-pptx、python-docx、pypdf、pdfplumber、pypdfium2、pdf2image、pdfkit、tabula-py、reportlab[pycairo]、Img2pdf
    • 数学与计算:sympy、mpmath
    • 实用工具:tqdm、python-dateutil、pytz、joblib、unzip、unrar、7zip、bc、rg (ripgrep)、fd、sqlite

    容器复用

    您可以通过提供先前响应中的容器 ID,在多个 API 请求之间复用现有容器。这允许您在请求之间保留已创建的文件。

    示例

    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-opus-4-6",
        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-opus-4-6",
        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"
        }]
    )

    流式传输

    启用流式传输后,您将在代码执行事件发生时接收到它们:

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

    批量请求

    您可以在 Messages Batches API 中包含代码执行工具。通过 Messages Batches API 进行的代码执行工具调用与常规 Messages API 请求中的定价相同。

    使用量和定价

    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.

    升级到最新工具版本

    通过升级到 code-execution-2025-08-25,您可以获得文件操作和 Bash 功能,包括多种语言的代码。价格没有差异。

    变更内容

    组件旧版当前版本
    Beta 头code-execution-2025-05-22code-execution-2025-08-25
    工具类型code_execution_20250522code_execution_20250825
    功能仅 PythonBash 命令、文件操作
    响应类型code_execution_resultbash_code_execution_result、text_editor_code_execution_result

    向后兼容性

    • 所有现有的 Python 代码执行继续完全按照以前的方式工作
    • 现有的仅 Python 工作流无需更改

    升级步骤

    要升级,您需要在 API 请求中进行以下更改:

    1. 更新 beta 头:

      - "anthropic-beta": "code-execution-2025-05-22"
      + "anthropic-beta": "code-execution-2025-08-25"
    2. 更新工具类型:

      - "type": "code_execution_20250522"
      + "type": "code_execution_20250825"
    3. 检查响应处理(如果以编程方式解析响应):

      • 之前的 Python 执行响应块将不再发送
      • 取而代之的是,将发送 Bash 和文件操作的新响应类型(请参阅响应格式部分)

    编程式工具调用

    代码执行工具支持编程式工具调用,允许 Claude 在执行容器内编写代码来以编程方式调用您的自定义工具。这使得高效的多工具工作流、在到达 Claude 上下文之前进行数据过滤以及复杂的条件逻辑成为可能。

    Python
    # Enable programmatic calling for your tools
    response = client.beta.messages.create(
        model="claude-opus-4-6",
        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
            }
        ]
    )

    在编程式工具调用文档中了解更多信息。

    将代码执行与 Agent Skills 配合使用

    代码执行工具使 Claude 能够使用 Agent Skills。Skills 是由指令、脚本和资源组成的模块化功能,可扩展 Claude 的能力。

    在 Agent Skills 文档和 Agent Skills API 指南中了解更多信息。

    Was this page helpful?

    • 执行 Bash 命令
    • Bash 命令响应
    • 将代码执行与 Agent Skills 配合使用