Loading...
    • 开发者指南
    • API 参考
    • MCP
    • 资源
    • 发布说明
    Search...
    ⌘K

    第一步

    Claude 简介快速开始

    模型与定价

    模型概览选择模型Claude 4.5 的新功能迁移到 Claude 4.5模型弃用定价

    使用 Claude 构建

    功能概览使用 Messages API上下文窗口提示词最佳实践

    功能

    提示词缓存上下文编辑扩展思考流式消息批处理引用多语言支持Token 计数嵌入向量视觉PDF 支持Files API搜索结果Google Sheets 插件

    工具

    概述如何实现工具使用令牌高效的工具使用细粒度工具流式传输Bash 工具代码执行工具计算机使用工具文本编辑器工具Web fetch 工具网络搜索工具记忆工具

    代理技能

    概述在 API 中开始使用 Agent Skills技能创作最佳实践通过 API 使用 Agent Skills

    Agent SDK

    概览TypeScript SDKPython SDK

    指南

    流式输入处理权限会话管理托管 Agent SDK修改系统提示词SDK 中的 MCP自定义工具SDK 中的子代理SDK 中的斜杠命令SDK 中的代理技能跟踪成本和使用情况待办事项列表SDK 中的插件

    API 中的 MCP

    MCP 连接器远程 MCP 服务器

    Claude 在第三方平台上

    Amazon BedrockVertex AI

    提示词工程

    概述提示词生成器使用提示模板提示词改进器保持清晰和直接使用示例(多示例提示)让 Claude 思考(思维链)使用XML标签给Claude分配角色(系统提示)预填充 Claude 的响应链式复杂提示长文本技巧扩展思考技巧

    测试与评估

    定义成功标准开发测试用例使用评估工具减少延迟

    加强防护措施

    减少幻觉提高输出一致性缓解越狱handle-streaming-refusals减少提示词泄露保持Claude的角色特征

    管理和监控

    Admin API 概述使用量和成本 APIClaude Code 分析 API
    Console
    工具

    Bash 工具

    Bash 工具使 Claude 能够在持久的 bash 会话中执行 shell 命令,允许系统操作、脚本执行和命令行自动化。

    Bash 工具使 Claude 能够在持久的 bash 会话中执行 shell 命令,允许系统操作、脚本执行和命令行自动化。

    概述

    Bash 工具为 Claude 提供:

    • 维持状态的持久 bash 会话
    • 运行任何 shell 命令的能力
    • 访问环境变量和工作目录
    • 命令链接和脚本编写功能

    模型兼容性

    模型工具版本
    Claude 4 模型和 Sonnet 3.7(已弃用)bash_20250124

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

    用例

    • 开发工作流:运行构建命令、测试和开发工具
    • 系统自动化:执行脚本、管理文件、自动化任务
    • 数据处理:处理文件、运行分析脚本、管理数据集
    • 环境设置:安装包、配置环境

    快速开始

    Python
    import anthropic
    
    client = anthropic.Anthropic()
    
    response = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=1024,
        tools=[
            {
                "type": "bash_20250124",
                "name": "bash"
            }
        ],
        messages=[
            {"role": "user", "content": "List all Python files in the current directory."}
        ]
    )
    Shell
    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "tools": [
          {
            "type": "bash_20250124",
            "name": "bash"
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "List all Python files in the current directory."
          }
        ]
      }'

    工作原理

    Bash 工具维持一个持久会话:

    1. Claude 确定要运行的命令
    2. 您在 bash shell 中执行命令
    3. 将输出(stdout 和 stderr)返回给 Claude
    4. 会话状态在命令之间保持(环境变量、工作目录)

    参数

    参数必需描述
    command是*要运行的 bash 命令
    restart否设置为 true 以重启 bash 会话

    *除非使用 restart,否则为必需

    示例:多步骤自动化

    Claude 可以链接命令以完成复杂任务:

    # 用户请求
    "Install the requests library and create a simple Python script that fetches a joke from an API, then run it."
    
    # Claude 的工具使用:
    # 1. 安装包
    {"command": "pip install requests"}
    
    # 2. 创建脚本
    {"command": "cat > fetch_joke.py << 'EOF'\nimport requests\nresponse = requests.get('https://official-joke-api.appspot.com/random_joke')\njoke = response.json()\nprint(f\"Setup: {joke['setup']}\")\nprint(f\"Punchline: {joke['punchline']}\")\nEOF"}
    
    # 3. 运行脚本
    {"command": "python fetch_joke.py"}

    会话在命令之间维持状态,因此在步骤 2 中创建的文件在步骤 3 中可用。


    实现 bash 工具

    Bash 工具实现为无模式工具。使用此工具时,您不需要像其他工具那样提供输入模式;模式内置于 Claude 的模型中,无法修改。

    1. 1

      设置 bash 环境

      创建一个 Claude 可以交互的持久 bash 会话:

      import subprocess
      import threading
      import queue
      
      class BashSession:
          def __init__(self):
              self.process = subprocess.Popen(
                  ['/bin/bash'],
                  stdin=subprocess.PIPE,
                  stdout=subprocess.PIPE,
                  stderr=subprocess.PIPE,
                  text=True,
                  bufsize=0
              )
              self.output_queue = queue.Queue()
              self.error_queue = queue.Queue()
              self._start_readers()
    2. 2

      处理命令执行

      创建一个函数来执行命令并捕获输出:

      def execute_command(self, command):
          # 将命令发送到 bash
          self.process.stdin.write(command + '\n')
          self.process.stdin.flush()
          
          # 使用超时捕获输出
          output = self._read_output(timeout=10)
          return output
    3. 3

      处理 Claude 的工具调用

      从 Claude 的响应中提取并执行命令:

      for content in response.content:
          if content.type == "tool_use" and content.name == "bash":
              if content.input.get("restart"):
                  bash_session.restart()
                  result = "Bash session restarted"
              else:
                  command = content.input.get("command")
                  result = bash_session.execute_command(command)
              
              # 将结果返回给 Claude
              tool_result = {
                  "type": "tool_result",
                  "tool_use_id": content.id,
                  "content": result
              }
    4. 4

      实现安全措施

      添加验证和限制:

      def validate_command(command):
          # 阻止危险命令
          dangerous_patterns = ['rm -rf /', 'format', ':(){:|:&};:']
          for pattern in dangerous_patterns:
              if pattern in command:
                  return False, f"Command contains dangerous pattern: {pattern}"
          
          # 根据需要添加更多验证
          return True, None

    处理错误

    实现 bash 工具时,处理各种错误场景:

    遵循实现最佳实践

    安全性

    Bash 工具提供直接系统访问。实现这些基本安全措施:

    • 在隔离环境中运行(Docker/VM)
    • 实现命令过滤和允许列表
    • 设置资源限制(CPU、内存、磁盘)
    • 记录所有执行的命令

    关键建议

    • 使用 ulimit 设置资源约束
    • 过滤危险命令(sudo、rm -rf 等)
    • 以最小用户权限运行
    • 监控和记录所有命令执行

    定价

    The bash tool adds 245 input tokens to your API calls.

    Additional tokens are consumed by:

    • Command outputs (stdout/stderr)
    • Error messages
    • Large file contents

    有关完整的定价详情,请参阅工具使用定价。

    常见模式

    开发工作流

    • 运行测试:pytest && coverage report
    • 构建项目:npm install && npm run build
    • Git 操作:git status && git add . && git commit -m "message"

    文件操作

    • 处理数据:wc -l *.csv && ls -lh *.csv
    • 搜索文件:find . -name "*.py" | xargs grep "pattern"
    • 创建备份:tar -czf backup.tar.gz ./data

    系统任务

    • 检查资源:df -h && free -m
    • 进程管理:ps aux | grep python
    • 环境设置:export PATH=$PATH:/new/path && echo $PATH

    限制

    • 无交互式命令:无法处理 vim、less 或密码提示
    • 无 GUI 应用程序:仅命令行
    • 会话范围:在对话中持久,在 API 调用之间丢失
    • 输出限制:大型输出可能被截断
    • 无流式传输:完成后返回结果

    与其他工具结合

    Bash 工具与文本编辑器和其他工具结合时最强大。

    后续步骤

    工具使用概述

    了解 Claude 的工具使用

    文本编辑器工具

    使用 Claude 查看和编辑文本文件

    • 实现 bash 工具
    © 2025 ANTHROPIC PBC

    Products

    • Claude
    • Claude Code
    • Max plan
    • Team plan
    • Enterprise plan
    • Download app
    • Pricing
    • Log in

    Features

    • Claude and Slack
    • Claude in Excel

    Models

    • Opus
    • Sonnet
    • Haiku

    Solutions

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

    Claude Developer Platform

    • Overview
    • Developer docs
    • Pricing
    • Amazon Bedrock
    • Google Cloud’s Vertex AI
    • Console login

    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

    Help and security

    • Availability
    • Status
    • Support center

    Terms and policies

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

    Products

    • Claude
    • Claude Code
    • Max plan
    • Team plan
    • Enterprise plan
    • Download app
    • Pricing
    • Log in

    Features

    • Claude and Slack
    • Claude in Excel

    Models

    • Opus
    • Sonnet
    • Haiku

    Solutions

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

    Claude Developer Platform

    • Overview
    • Developer docs
    • Pricing
    • Amazon Bedrock
    • Google Cloud’s Vertex AI
    • Console login

    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

    Help and security

    • Availability
    • Status
    • Support center

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    © 2025 ANTHROPIC PBC