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
    Agent SDK

    快速入门

    使用 Python 或 TypeScript Agent SDK 开始构建自主工作的 AI 智能体

    使用 Agent SDK 构建一个 AI 智能体,它可以读取您的代码、查找错误并修复它们,全程无需人工干预。

    您将完成的内容:

    1. 使用 Agent SDK 设置项目
    2. 创建一个包含一些有错误代码的文件
    3. 运行一个自动查找并修复错误的智能体

    前提条件

    • Node.js 18+ 或 Python 3.10+
    • 一个 Anthropic 账户(在此注册)

    设置

    1. 1

      创建项目文件夹

      为此快速入门创建一个新目录:

      mkdir my-agent && cd my-agent

      对于您自己的项目,您可以从任何文件夹运行 SDK;默认情况下,它可以访问该目录及其子目录中的文件。

    2. 2

      安装 SDK

      为您的语言安装 Agent SDK 包:

    3. 3

      设置 API 密钥

      从 Claude 控制台 获取 API 密钥,然后在项目目录中创建 .env 文件:

      ANTHROPIC_API_KEY=your-api-key

      SDK 还支持通过第三方 API 提供商进行身份验证:

      • Amazon Bedrock:设置 CLAUDE_CODE_USE_BEDROCK=1 环境变量并配置 AWS 凭证
      • Google Vertex AI:设置 CLAUDE_CODE_USE_VERTEX=1 环境变量并配置 Google Cloud 凭证
      • Microsoft Azure:设置 CLAUDE_CODE_USE_FOUNDRY=1 环境变量并配置 Azure 凭证

      有关详细信息,请参阅 Bedrock、Vertex AI 或 Azure AI Foundry 的设置指南。

      除非事先获得批准,Anthropic 不允许第三方开发者为其产品(包括基于 Claude Agent SDK 构建的智能体)提供 claude.ai 登录或速率限制。请改用本文档中描述的 API 密钥身份验证方法。

    创建一个有错误的文件

    本快速入门将引导您构建一个能够查找和修复代码错误的智能体。首先,您需要一个包含一些故意错误的文件供智能体修复。在 my-agent 目录中创建 utils.py 并粘贴以下代码:

    def calculate_average(numbers):
        total = 0
        for num in numbers:
            total += num
        return total / len(numbers)
    
    def get_user_name(user):
        return user["name"].upper()

    这段代码有两个错误:

    1. calculate_average([]) 会因除以零而崩溃
    2. get_user_name(None) 会因 TypeError 而崩溃

    构建一个查找和修复错误的智能体

    如果您使用 Python SDK,请创建 agent.py;如果使用 TypeScript,请创建 agent.ts:

    import asyncio
    from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ResultMessage
    
    async def main():
        # 智能体循环:在 Claude 工作时流式传输消息
        async for message in query(
            prompt="Review utils.py for bugs that would cause crashes. Fix any issues you find.",
            options=ClaudeAgentOptions(
                allowed_tools=["Read", "Edit", "Glob"],  # Claude 可以使用的工具
                permission_mode="acceptEdits"            # 自动批准文件编辑
            )
        ):
            # 打印人类可读的输出
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if hasattr(block, "text"):
                        print(block.text)              # Claude 的推理
                    elif hasattr(block, "name"):
                        print(f"Tool: {block.name}")   # 正在调用的工具
            elif isinstance(message, ResultMessage):
                print(f"Done: {message.subtype}")      # 最终结果
    
    asyncio.run(main())

    这段代码有三个主要部分:

    1. query:创建智能体循环的主入口点。它返回一个异步迭代器,因此您使用 async for 在 Claude 工作时流式传输消息。请参阅 Python 或 TypeScript SDK 参考中的完整 API。

    2. prompt:您希望 Claude 做什么。Claude 会根据任务确定使用哪些工具。

    3. options:智能体的配置。此示例使用 allowedTools 将 Claude 限制为 Read、Edit 和 Glob,并使用 permissionMode: "acceptEdits" 自动批准文件更改。其他选项包括 systemPrompt、mcpServers 等。查看 Python 或 TypeScript 的所有选项。

    async for 循环在 Claude 思考、调用工具、观察结果并决定下一步操作时持续运行。每次迭代都会产生一条消息:Claude 的推理、工具调用、工具结果或最终结果。SDK 处理编排(工具执行、上下文管理、重试),因此您只需消费流即可。当 Claude 完成任务或遇到错误时,循环结束。

    循环内的消息处理会过滤出人类可读的输出。如果不进行过滤,您会看到原始消息对象,包括系统初始化和内部状态,这对调试有用,但在其他情况下会产生噪音。

    此示例使用流式传输来实时显示进度。如果您不需要实时输出(例如,用于后台作业或 CI 管道),您可以一次性收集所有消息。有关详细信息,请参阅流式传输与单轮模式。

    运行您的智能体

    您的智能体已准备就绪。使用以下命令运行它:

    运行后,检查 utils.py。您会看到处理空列表和空用户的防御性代码。您的智能体自主完成了以下操作:

    1. 读取 utils.py 以理解代码
    2. 分析 逻辑并识别会导致崩溃的边界情况
    3. 编辑 文件以添加适当的错误处理

    这就是 Agent SDK 的不同之处:Claude 直接执行工具,而不是要求您来实现它们。

    如果您看到"API key not found",请确保您已在 .env 文件或 shell 环境中设置了 ANTHROPIC_API_KEY 环境变量。有关更多帮助,请参阅完整故障排除指南。

    尝试其他提示

    现在您的智能体已设置好,尝试一些不同的提示:

    • "Add docstrings to all functions in utils.py"
    • "Add type hints to all functions in utils.py"
    • "Create a README.md documenting the functions in utils.py"

    自定义您的智能体

    您可以通过更改选项来修改智能体的行为。以下是一些示例:

    添加网络搜索功能:

    options=ClaudeAgentOptions(
        allowed_tools=["Read", "Edit", "Glob", "WebSearch"],
        permission_mode="acceptEdits"
    )

    为 Claude 提供自定义系统提示:

    options=ClaudeAgentOptions(
        allowed_tools=["Read", "Edit", "Glob"],
        permission_mode="acceptEdits",
        system_prompt="You are a senior Python developer. Always follow PEP 8 style guidelines."
    )

    在终端中运行命令:

    options=ClaudeAgentOptions(
        allowed_tools=["Read", "Edit", "Glob", "Bash"],
        permission_mode="acceptEdits"
    )

    启用 Bash 后,尝试:"Write unit tests for utils.py, run them, and fix any failures"

    关键概念

    工具 控制您的智能体可以做什么:

    工具智能体可以做什么
    Read、Glob、Grep只读分析
    Read、Edit、Glob分析和修改代码
    Read、Edit、Bash、Glob、Grep完全自动化

    权限模式 控制您需要多少人工监督:

    模式行为使用场景
    acceptEdits自动批准文件编辑,其他操作需要询问受信任的开发工作流
    bypassPermissions无需提示即可运行CI/CD 管道、自动化
    default需要 canUseTool 回调来处理审批自定义审批流程

    上面的示例使用 acceptEdits 模式,该模式自动批准文件操作,使智能体可以在没有交互式提示的情况下运行。如果您想提示用户进行审批,请使用 default 模式并提供一个收集用户输入的 canUseTool 回调。如需更多控制,请参阅权限。

    后续步骤

    现在您已经创建了第一个智能体,了解如何扩展其功能并根据您的用例进行定制:

    • 权限:控制您的智能体可以做什么以及何时需要审批
    • 钩子:在工具调用之前或之后运行自定义代码
    • 会话:构建保持上下文的多轮智能体
    • MCP 服务器:连接到数据库、浏览器、API 和其他外部系统
    • 托管:将智能体部署到 Docker、云和 CI/CD
    • 示例智能体:查看完整示例:邮件助手、研究智能体等

    Was this page helpful?