一文读懂Anthropic Agent SDK:18+内置工具详解,重塑AI Agent开发流程,开发者必藏!
Anthropic Claude Agent SDK提供18+内置工具,覆盖文件操作、命令执行、搜索、Web功能等核心场景。关键工具包括Task的子代理编排能力、TodoWrite的任务管理功能,以及WebSearch、Plan Mode等特色工具。该SDK通过权限控制和安全模型确保开发安全,并构建了MCP生态系统,为AI Agent开发提供全新范式。开发者可利用这些工具实现代码生成、系统管理、网
文章全面解析Anthropic最新Claude Agent SDK的18+内置工具体系,涵盖文件操作、命令执行、搜索、Web功能等核心场景。重点介绍Task工具的子代理编排能力、TodoWrite工具的任务管理功能,以及WebSearch、Plan Mode、Skill等特色工具。同时详解工具权限控制、安全模型和MCP生态系统,帮助开发者掌握这一AI Agent开发新范式。
深入解读 Anthropic 最新 Agent SDK 的工具体系,带你理解 AI Agent 开发的核心范式转变
引言
如果你正在关注 AI Agent 开发领域,一定听说过 Anthropic 推出的 Claude Agent SDK。这个 SDK 让开发者能够以编程方式调用 Claude 的能力,构建自己的 AI Agent 应用。

值得注意的是,Anthropic 在 2025 年将 SDK 从 claude-code-sdk 更名为 claude-agent-sdk,这一变化反映了该 SDK 从最初专注于代码生成工具,演进为支持更广泛应用场景的通用 AI Agent 平台。正如官方所述:“这个 SDK 是驱动 Claude Code 的同一引擎,现在作为库暴露出来,让你可以将其指向任何你想解决的问题。”
本文将带你全面了解 Claude Agent SDK 的内置工具体系,特别是 Task 工具的子代理编排能力,以及 TodoWrite 工具如何配合 Claude Code 产品层面的 Tasks 系统实现任务管理,帮助你更好地理解和使用这个强大的 SDK。
一、Claude Agent SDK 内置工具全景图

Claude Agent SDK 提供了 18+ 个内置工具,覆盖了 AI Agent 开发的各个核心场景。我们按功能类别来逐一介绍:
1. 文件操作类
| 工具名 | 功能说明 |
|---|---|
| Read | 读取文件内容,支持指定行数范围,可读取代码、配置、图片、PDF 等多种格式 |
| Write | 写入文件内容,会覆盖已存在的文件 |
| Edit | 精确的字符串替换编辑,适合对现有文件进行局部修改 |
| NotebookEdit | 专门用于编辑 Jupyter Notebook(.ipynb 文件)的单元格 |
使用场景:代码生成、配置文件修改、文档处理等。
2. 命令执行类
| 工具名 | 功能说明 |
|---|---|
| Bash | 执行 bash 命令,支持超时设置和后台运行 |
| BashOutput | 获取后台运行的 bash 命令输出 |
| KillBash | 终止正在运行的后台 bash 进程 |
使用场景:运行测试、执行构建、Git 操作、系统管理等。
3. 文件搜索类
| 工具名 | 功能说明 |
|---|---|
| Glob | 基于 glob 模式的快速文件匹配,如 **/*.ts |
| Grep | 基于正则表达式的文件内容搜索,底层使用 ripgrep |
使用场景:代码搜索、文件定位、模式匹配等。
4. Web 功能类
| 工具名 | 功能说明 |
|---|---|
| WebSearch | 网络搜索,获取最新信息 |
| WebFetch | 抓取指定 URL 的内容并进行分析 |
使用场景:获取最新文档、查询 API 信息、研究调研等。
深度解析:WebSearch 的底层实现机制
你可能会好奇:Claude 模型本身并不具备联网能力,WebSearch 是如何实现的?
答案是:WebSearch 是 Anthropic 提供的一个「服务端工具」(Server Tool),而非模型内置能力。
工作原理如下:
-
- 当你在 API 请求中添加
web_search工具时,Claude 会根据用户提示决定是否需要搜索
- 当你在 API 请求中添加
-
- 如果需要搜索,Claude 生成搜索查询,API 服务端执行实际的搜索操作
-
- 搜索结果返回给 Claude, Claude 基于结果生成带引用的回答
-
- 这个过程可能在单次请求中重复多次
关键点:
- • 搜索由 Anthropic 服务端执行,不是模型自己联网
- • 支持域名过滤(
allowed_domains/blocked_domains) - • 支持地理位置本地化(
user_location) - • 自动生成引用,
cited_text字段包含引用内容 - • 定价:$10 / 1000 次搜索,加上标准 token 费用
这种设计让 Claude 能够获取实时信息,同时保持了模型本身的安全性和可控性。
5. 用户交互类
| 工具名 | 功能说明 |
|---|---|
| AskUserQuestion | 向用户提问,支持多选项选择,实现规格驱动开发 |
使用场景:需求澄清、进度展示、用户确认等。
AskUserQuestion:规格驱动开发的关键
AskUserQuestion 工具正在成为 Claude Code 中最强大但被低估的功能之一。它颠覆了传统的开发流程:
传统流程:你给 AI 一个模糊需求 → AI 猜测并实现 → 你发现不对 → 反复修改
规格驱动流程: AI 先通过 AskUserQuestion 询问所有关键决策 → 生成详细规格文档 → 基于规格精确实现
例如,Claude 会问:“这个 API 应该快速失败还是带退避重试?” 在写任何代码之前,所有权衡都变得明确。结果是:代码第一次就符合你的意图。
6. 任务管理类
| 工具名 | 功能说明 |
|---|---|
| TodoWrite | 创建和管理结构化任务列表,跟踪进度 |
使用场景:复杂任务分解、进度可视化、任务状态追踪等。
TodoWrite:让 AI 的工作计划可见
TodoWrite 是 Claude Agent SDK 中最容易被忽视但极其重要的工具。它不是简单的待办清单,而是 Claude 与用户沟通工作计划的核心机制。
工作原理:
当你给 Claude 一个复杂任务时,它会首先使用 TodoWrite 创建一个结构化的任务列表:
TodoWrite({ todos: [ { content: "分析现有代码结构", status: "in_progress", activeForm: "正在使用 Grep 搜索相关文件..." }, { content: "设计新功能架构", status: "pending" }, { content: "实现核心逻辑", status: "pending" } ]})
三种状态:
- •
pending:待处理 - •
in_progress:正在处理(会显示activeForm字段的详细进度) - •
completed:已完成
为什么重要:
-
- 透明度:你能实时看到 Claude 的工作计划和当前进度
-
- 早期发现问题:如果 Claude 误解了需求,你能在代码编写前就发现
-
- 中途调整:可以根据 todo 列表调整优先级或方向
-
- 复杂任务管理:对于多步骤任务,todo 列表确保不会遗漏步骤
7. 代理编排类
| 工具名 | 功能说明 |
|---|---|
| Task | 启动子代理执行复杂任务,支持后台运行 |
| TaskOutput | 获取后台任务的执行结果和状态 |
| TaskStop | 停止正在运行的后台任务 |
使用场景:复杂任务分解、多代理协作、专业化处理、并行执行等。
Task 工具的后台执行模式
Task 工具支持两种执行模式:
前台执行(默认):主代理等待子代理完成,适合需要立即使用结果的场景
Task({ subagent_type: "security-reviewer", prompt: "审查这个文件的安全问题", run_in_background: false // 默认值})
后台执行:子代理在后台运行,主代理继续处理其他任务
// 启动后台任务Task({ subagent_type: "test-runner", prompt: "运行完整测试套件", run_in_background: true})// 主代理继续工作...// 稍后检查结果TaskOutput({ task_id: "a42a16e", block: true // 等待任务完成})// 或者停止任务TaskStop({ task_id: "a42a16e"})
最佳实践:
- • 长时间运行的任务(测试、构建)应使用后台模式
- • 使用
TaskOutput而非Read或Bash tail来检查后台任务状态 - • 后台任务应将结果写入文件,避免通过
TaskOutput传输大量数据
8. 计划模式类
| 工具名 | 功能说明 |
|---|---|
| EnterPlanMode | 进入计划模式,只研究不执行 |
| ExitPlanMode | 退出计划模式,提交方案供用户审批 |
使用场景:复杂变更前的规划、架构设计、代码审查等。
Plan Mode:思考与执行的分离
Plan Mode 是 Claude Code 中最强大的工作流模式之一,它将"研究分析"与"实际执行"完全分离。
工作流程:
-
- 进入计划模式: Claude 调用
EnterPlanMode工具
- 进入计划模式: Claude 调用
-
- 只读研究:在此模式下,Claude 只能使用只读工具(Read、Grep、Glob、WebSearch 等)
-
- 生成计划: Claude 将研究结果写入计划文件(通常是 Markdown 格式)
-
- 请求审批:调用
ExitPlanMode工具,向用户展示计划
- 请求审批:调用
-
- 用户决策:用户可以批准、修改或拒绝计划
-
- 执行阶段:批准后,Claude 根据计划文件执行实际操作
为什么需要 Plan Mode:
// 传统模式的问题"重构这个 10,000 行的代码库"→ Claude 立即开始修改文件→ 你发现方向不对,但已经改了 50 个文件→ 回滚困难// Plan Mode 的优势"重构这个 10,000 行的代码库"→ Claude 进入 Plan Mode→ 分析代码结构、依赖关系、测试覆盖率→ 生成详细的重构计划(分 5 个阶段,每阶段的文件列表和修改策略)→ 你审查计划,发现第 3 阶段有风险,要求调整→ Claude 更新计划→ 你批准后,Claude 开始执行→ 每个阶段都可以验证,风险可控
Plan Mode 的性能优势:
Plan Mode 使用 Opus 4.5 时特别高效:
- • 只读操作不会触发大量工具调用
- • 计划文件紧凑,token 使用量少
- • 用户可以在执行前编辑计划文件,无需重新生成
9. 技能调用类
| 工具名 | 功能说明 |
|---|---|
| Skill | 调用预定义的技能(Skills)和斜杠命令 |
使用场景:复用常见工作流、调用专业知识、执行标准化操作等。
Skill 工具:可复用的工作流模板
Skill 工具是 Claude Agent SDK 的元工具(meta-tool),它允许 Claude 动态加载和执行预定义的工作流。
什么是 Skills:
Skills 是存储在 .claude/skills/ 目录中的 Markdown 文件,包含:
- • 专业知识(如特定框架的最佳实践)
- • 工作流模板(如代码审查流程)
- • 工具组合模式(如"搜索→分析→修复"的标准流程)
Skills vs 斜杠命令:
在 Claude Code 2.1.3 版本后,Skills 和斜杠命令已经合并,使用相同的定义格式:
---name: security-reviewdescription: 全面的安全审查流程allowed-tools: Read, Grep, Glob, WebFetch---# 安全审查流程1. 使用 Grep 搜索常见漏洞模式: - SQL 注入:`SELECT.*\$` - XSS:`innerHTML.*=` - 硬编码密钥:`API_KEY|SECRET|PASSWORD`2. 使用 Read 读取可疑文件3. 使用 WebFetch 获取最新的安全最佳实践4. 生成审查报告
两种调用方式:
-
- 用户手动调用:
/security-review
- 用户手动调用:
-
- Claude 自动调用:当用户说"审查代码安全性"时,Claude 会自动使用 Skill 工具调用
security-review
- Claude 自动调用:当用户说"审查代码安全性"时,Claude 会自动使用 Skill 工具调用
Skills 的优势:
- • 上下文高效: Skills 默认不加载到上下文,只有在需要时才动态加载
- • 知识封装:可以将大量专业知识(如完整的 API 文档)封装在 Skill 中
- • 团队共享:团队可以共享标准化的工作流
- • 版本控制: Skills 文件可以纳入 Git 管理
10. 工具发现类
| 工具名 | 功能说明 |
|---|---|
| ToolSearch | 动态搜索和加载延迟加载的工具 |
使用场景:大型工具集管理、MCP 服务器工具发现、按需加载工具等。
ToolSearch:解决上下文污染的利器
当你的 Agent 可用工具超过 50 个时,将所有工具定义加载到上下文会导致严重的 token 浪费。ToolSearch 工具解决了这个问题。
问题场景:
// 传统方式:加载所有工具const agent = new Agent({ tools: [ tool1, tool2, tool3, ..., tool50 // 所有工具定义占用 20,000 tokens ]})// 但 Claude 可能只需要用到其中 3 个工具
ToolSearch 方式:
// 延迟加载工具const agent = new Agent({ tools: [ { name: "get_user", defer_loading: true, description: "获取用户信息" }, { name: "update_user", defer_loading: true, description: "更新用户信息" }, // ... 其他 48 个工具 ]})// Claude 的工作流程:// 1. 用户:"获取用户 123 的信息"// 2. Claude 调用 ToolSearch("获取用户")// 3. ToolSearch 返回匹配的工具:get_user// 4. 系统加载 get_user 的完整定义到上下文// 5. Claude 调用 get_user(user_id=123)
最佳实践:
- • 保留常用工具:将 3-5 个最常用的工具设为立即加载
- • 优化描述:延迟加载工具的
description字段是搜索的关键,要准确且包含关键词 - • MCP 集成: ToolSearch 特别适合 MCP 服务器,因为 MCP 服务器通常提供大量工具
性能提升:
Anthropic 的测试显示,使用 ToolSearch 后:
- • 上下文 token 减少 60-80%
- • 响应速度提升 30-50%
- • 成本降低 50-70%
11. MCP 资源类
| 工具名 | 功能说明 |
|---|---|
| ListMcpResources | 列出可用的 MCP 资源 |
| ReadMcpResource | 读取指定的 MCP 资源内容 |
使用场景:与外部服务集成、扩展 Agent 能力等。
二、澄清:Task 工具、TodoWrite 工具与 Tasks 系统
这是最容易混淆的概念,让我们明确区分:
三个不同层面的“任务”概念
1. Task 工具(子代理编排)
- • 层面: SDK 工具层
- • 功能:启动子代理(subagent)来处理复杂任务
- • 类比:项目经理将任务委派给专家团队成员
- • 状态:一直存在,是 SDK 的核心工具
Task({ subagent_type: "security-reviewer", prompt: "审查这个文件的安全问题"})
2. TodoWrite 工具(任务列表管理)
- • 层面: SDK 工具层
- • 功能:创建和管理结构化的任务列表,让用户看到 AI 的工作计划
- • 类比:项目看板,显示所有待办事项和进度
- • 状态:一直存在,是 SDK 的核心工具
TodoWrite({ todos: [ { content: "分析代码", status: "completed" }, { content: "设计方案", status: "in_progress" }, { content: "实现功能", status: "pending" } ]})
3. Tasks 系统(Claude Code 产品功能)
- • 层面: Claude Code 产品层
- • 功能:持久化的任务管理系统,支持跨会话、依赖追踪、层级结构
- • 类比: Jira/Linear 这样的项目管理系统
- • 状态:2025 年 1 月引入,取代了旧版的临时 Todos 机制
它们之间的关系
┌─────────────────────────────────────────────────────────┐│ Claude Code 产品层 ││ ││ ┌─────────────────────────────────────────────────┐ ││ │ Tasks 系统(持久化任务管理) │ ││ │ - 存储在 ~/.claude/tasks │ ││ │ - 支持依赖关系、层级结构 │ ││ │ - 跨会话保留 │ ││ └─────────────────────────────────────────────────┘ ││ ↑ ││ │ 底层使用 ││ ↓ │└─────────────────────────────────────────────────────────┘┌─────────────────────────────────────────────────────────┐│ Claude Agent SDK 工具层 ││ ││ ┌──────────────────┐ ┌──────────────────┐ ││ │ Task 工具 │ │ TodoWrite 工具 │ ││ │ (子代理编排) │ │ (任务列表管理) │ ││ │ │ │ │ ││ │ - 启动子代理 │ │ - 创建 todo 列表 │ ││ │ - 并行执行 │ │ - 更新任务状态 │ ││ │ - 上下文隔离 │ │ - 进度可视化 │ ││ └──────────────────┘ └──────────────────┘ ││ │└─────────────────────────────────────────────────────────┘
2025 年 1 月的更新到底是什么?
不是: Task 工具取代了 TodoWrite 工具(它们都继续存在)
而是: Claude Code 产品的 Tasks 持久化系统升级了原有的临时 Todos 机制
旧版 Todos 机制的问题:
- • 存储在内存中,会话结束就消失
- • 不支持任务间依赖关系
- • 上下文压缩后会丢失
- • 子代理无法访问主代理的任务列表
新版 Tasks 系统的改进:
- • 持久化存储在
~/.claude/tasks - • 支持任务依赖和层级结构
- • 跨会话保留
- • 子代理可以访问和更新任务
- • AI 可以从 PRD 自动生成任务树
三、Task 工具:多代理编排的核心
什么是 Task 工具?
Task 是 Claude Agent SDK 中最重要的新特性之一。它不是一个简单的工具调用,而是一个子代理编排器——能够启动独立的子代理(Subagent)来处理特定任务。
你可以把它理解为:主代理是项目经理,Task 工具让它能够将任务分配给不同的专家团队成员。

Task 工具的核心参数
interface AgentInput { description: string; // 任务简短描述(3-5 词) prompt: string; // 子代理要执行的具体任务 subagent_type: string; // 子代理类型(对应配置中的 key) model?: string; // 可选:指定使用的模型 resume?: string; // 可选:恢复之前的执行 run_in_background?: boolean; // 可选:后台运行 max_turns?: number; // 可选:最大对话轮次}
如何定义子代理?
子代理通过 AgentDefinition 配置定义。以下是一个实际的代码审查场景:
import { query, AgentDefinition } from "@anthropic-ai/claude-agent-sdk";async function comprehensiveReview(directory: string) { for await (const message of query({ prompt: `对 ${directory} 执行全面的代码审查。使用 security-reviewer 检查安全问题,使用 test-analyzer 分析测试覆盖率。`, options: { model: "opus", allowedTools: ["Read", "Glob", "Grep", "Task"], // Task 启用子代理 permissionMode: "bypassPermissions", maxTurns: 250, agents: { "security-reviewer": { description: "安全专家,用于漏洞检测", prompt: `你是安全专家。分析:- SQL 注入风险- XSS 漏洞- 认证/授权问题- 敏感数据暴露`, tools: ["Read", "Grep", "Glob"], // 只读工具,确保安全 model: "opus" // 安全审查用强模型 } as AgentDefinition, "test-analyzer": { description: "测试专家,用于覆盖率分析", prompt: `你是测试专家。分析:- 测试覆盖率缺口- 缺失的边界情况- 测试质量和可靠性- 额外测试建议`, tools: ["Read", "Grep", "Glob"], model: "haiku" // 简单分析用快速模型 } as AgentDefinition } } })) { if (message.type === "assistant") { for (const block of message.message.content) { if ("text" in block) { console.log(block.text); } else if ("name" in block && block.name === "Task") { console.log(`🤖 委托给: ${(block.input as any).subagent_type}`); } } } }}comprehensiveReview("./src");
子代理的关键优势
1. 上下文隔离
每个子代理维护自己的内存;只有关键结果返回给主代理。这防止了上下文窗口爆炸。
2. 并行化
可以并发运行多个搜索或分析任务。例如:
from claude_agent_sdk import query, ClaudeAgentOptionsasync def analyze_codebase(): # 启用 Task 工具让 Claude 自动生成子代理 async for message in query( prompt="分析这个代码库的安全漏洞", options=ClaudeAgentOptions( allowed_tools=["Read", "Glob", "Grep", "Task"] ) ): print(message) # Claude 可能会生成子代理用于: # - SQL 注入分析 # - XSS 漏洞扫描 # - 依赖审计
3. 专业化
不同子代理可以使用不同的模型和工具集,优化成本和性能。
Task 工具的输出
Task 执行完成后,会返回丰富的统计信息:
- •
result:子代理的执行结果 - •
usage: Token 使用量统计 - •
total_cost_usd:本次执行的成本 - •
duration_ms:执行耗时
这让你能够精确监控每个子代理的资源消耗。
子代理的局限性
需要注意的是,子代理目前不能创建子子代理。即使你在子代理的工具列表中包含了 Task,它也会报告该工具不可用。如果需要多层代理,需要在架构设计时考虑这个限制。
四、内置工具深度解析
让我们深入了解每个工具类别的实际使用场景和最佳实践。
文件操作工具:Read、Write、Edit
这三个工具构成了 Agent 与文件系统交互的核心。
Read 工具
Read 是最基础但也最强大的工具之一。它不仅能读取文本文件,还支持:
- • 多格式支持:代码文件、配置文件、Markdown、JSON、YAML
- • 二进制文件:图片(返回 base64)、PDF(提取文本)
- • 行范围读取:
Read(path="/src/app.py", start_line=10, end_line=50)只读取特定行,节省上下文
最佳实践:
# 大文件分段读取,避免上下文溢出options = ClaudeAgentOptions( allowed_tools=["Read"], system_prompt="读取大文件时,先用 Read 获取总行数,然后分段读取")
Write vs Edit
这两个工具的选择经常让人困惑:
| 场景 | 推荐工具 | 原因 |
|---|---|---|
| 创建新文件 | Write | 直接写入 |
| 完全重写文件 | Write | 更高效 |
| 修改几行代码 | Edit | 精确替换,保留其他内容 |
| 批量重构 | Edit | 可以多次调用,逐步修改 |
Edit 工具的强大之处:
# Edit 支持精确的字符串替换Edit( path="/src/config.py", old_text='DEBUG = True', new_text='DEBUG = False')# 可以替换多行Edit( path="/src/api.py", old_text='''def old_function(): return "old"''', new_text='''def new_function(): return "new"''')
命令执行工具:Bash、BashOutput、KillBash
Bash 工具是 Claude Agent SDK 中最具争议也最强大的工具之一。
Bash 工具的权限模型
Claude Code 对 Bash 命令有严格的权限控制。默认情况下,只有 117+ 个预定义的安全命令模式 被允许执行。
例如,这些命令默认允许:
- • 只读命令:
ls,cat,grep,find - • Git 操作:
git status,git log,git diff - • 包管理:
npm install,pip install
但这些命令默认被阻止:
- • 危险操作:
rm -rf,sudo,chmod 777 - • 网络操作:
curl,wget(除非明确允许) - • 系统修改:
apt-get,yum
如何自定义 Bash 权限:
// .claude/settings.json{ "allowedTools": ["Bash"], "bashPatterns": [ "npm run test", "docker-compose up -d", "curl https://api.example.com/*" ]}
后台执行模式
Bash 工具支持三种执行模式:
-
- 前台执行(默认): Claude 等待命令完成
-
- 后台执行:命令在后台运行,Claude 继续工作
-
- 超时控制:通过
BASH_DEFAULT_TIMEOUT_MS环境变量设置
- 超时控制:通过
实际案例:
// 启动开发服务器(后台)await agent.run({ prompt: "启动开发服务器并继续工作", options: { allowedTools: ["Bash", "BashOutput"], bashPatterns: ["npm run dev"] }});// Claude 会:// 1. 执行 Bash("npm run dev", background=true)// 2. 继续处理其他任务// 3. 定期用 BashOutput 检查服务器状态// 4. 如果需要,用 KillBash 终止进程
安全陷阱与防护
社区发现了多个 Bash 工具的安全漏洞,Anthropic 已经修复了大部分。但你仍需注意:
- • 命令注入:永远不要将用户输入直接拼接到 Bash 命令中
- • 权限提升:避免使用
--dangerously-skip-permissions标志 - • 资源耗尽:设置合理的超时和资源限制
搜索工具:Glob vs Grep
这两个工具经常被混淆,但它们服务于不同的目的。
Glob:文件名匹配
# 查找所有 TypeScript 文件Glob("**/*.ts")# 查找测试文件Glob("**/*.test.{js,ts,jsx,tsx}")# 排除 node_modulesGlob("src/**/*.py", exclude=["**/node_modules/**"])
Grep:内容搜索
Grep 底层使用 ripgrep(rg),这是一个极快的搜索工具。
# 查找所有包含 "TODO" 的文件Grep(pattern="TODO", path="./src")# 正则表达式搜索Grep(pattern=r"function\s+\w+\(", path="./src")# 区分大小写Grep(pattern="API_KEY", case_sensitive=True)
性能对比:
| 任务 | Glob | Grep | 推荐 |
|---|---|---|---|
| 查找所有 .py 文件 | ✅ 快 | ❌ 慢 | Glob |
| 查找包含特定函数的文件 | ❌ 不支持 | ✅ 快 | Grep |
| 查找最近修改的文件 | ✅ 支持 | ❌ 不支持 | Glob |
| 复杂正则搜索 | ❌ 不支持 | ✅ 强大 | Grep |
MCP 集成:无限扩展的可能
Model Context Protocol (MCP) 是 Claude Agent SDK 最强大的扩展机制。
什么是 MCP?
MCP 是 Anthropic 定义的标准协议,让 AI Agent 能够连接到外部服务和数据源。把它想象成“AI 的 API”。
内置 MCP 支持
SDK 提供了两个工具来使用 MCP:
- • ListMcpResources:列出可用的 MCP 服务器和资源
- • ReadMcpResource:读取特定资源的内容
创建自定义 MCP 服务器
import { createSdkMcpServer, tool } from "@anthropic-ai/claude-agent-sdk";import { z } from "zod";// 创建数据库查询 MCP 服务器const dbServer = createSdkMcpServer({ name: "database", version: "1.0.0", tools: [ tool({ name: "query_users", description: "查询用户数据库", parameters: z.object({ filter: z.string().describe("SQL WHERE 子句") }), execute: async ({ filter }) => { // 执行数据库查询 const results = await db.query(`SELECT * FROM users WHERE ${filter}`); return { users: results }; } }) ]});// 在 Agent 中使用const agent = new Agent({ mcpServers: { database: dbServer }, allowedTools: ["ListMcpResources", "ReadMcpResource"]});
社区 MCP 服务器生态
已有超过 100+ 个社区贡献的 MCP 服务器,覆盖:
- • 开发工具: GitHub, GitLab, Linear, Jira
- • 云服务: AWS, Google Cloud, DigitalOcean
- • 协作工具: Slack, Microsoft Teams, Miro
- • 数据存储: Google Drive, Box, Dropbox
- • 监控工具: Sentry, Datadog
MCP vs 自定义工具
| 特性 | MCP 服务器 | 自定义工具 |
|---|---|---|
| 标准化 | ✅ 跨平台兼容 | ❌ SDK 特定 |
| 可重用性 | ✅ 社区共享 | ❌ 项目内部 |
| 开发复杂度 | 中等 | 低 |
| 性能 | 略慢(进程间通信) | 快(同进程) |
| 适用场景 | 外部服务集成 | 简单内部逻辑 |
五、工具组合模式与最佳实践
理解单个工具只是第一步,真正的力量来自于工具的组合使用。
模式 1:读取-分析-修改循环
这是最常见的代码重构模式:
from claude_agent_sdk import query, ClaudeAgentOptionsasync def refactor_codebase(): async for message in query( prompt=""" 重构 src/ 目录下的所有 Python 文件: 1. 用 Glob 找到所有 .py 文件 2. 用 Read 读取每个文件 3. 分析代码质量问题 4. 用 Edit 修复问题 5. 用 Bash 运行测试验证 """, options=ClaudeAgentOptions( allowed_tools=["Glob", "Read", "Edit", "Bash"], bashPatterns=["pytest *"] ) ): print(message)
模式 2:搜索-过滤-聚合
适用于代码审计和分析:
// 查找所有 API 密钥泄露const agent = new Agent({ allowedTools: ["Grep", "Read", "Write"], systemPrompt: ` 安全审计流程: 1. 用 Grep 搜索可疑模式(API_KEY, SECRET, PASSWORD) 2. 用 Read 读取匹配的文件 3. 分析是否为真实泄露 4. 用 Write 生成审计报告 `});await agent.run({ prompt: "审计代码库中的敏感信息泄露"});
模式 3:并行子代理 + 结果聚合
利用 Task 工具实现复杂的多任务处理:
options = ClaudeAgentOptions( allowed_tools=["Task", "Read", "Write"], agents={ "security-scanner": AgentDefinition( description="安全扫描专家", tools=["Grep", "Read"], model="haiku" # 快速扫描用轻量模型 ), "performance-analyzer": AgentDefinition( description="性能分析专家", tools=["Bash", "Read"], model="sonnet" ), "doc-generator": AgentDefinition( description="文档生成专家", tools=["Read", "Write"], model="haiku" ) })# Claude 会自动并行执行三个子代理async for msg in query( prompt="全面分析这个项目:安全、性能、文档", options=options): print(msg)
模式 4: MCP 驱动的外部集成
将内置工具与 MCP 服务器结合:
const agent = new Agent({ allowedTools: ["Read", "Grep", "ListMcpResources", "ReadMcpResource"], mcpServers: { github: { command: "npx", args: ["-y", "@modelcontextprotocol/server-github"], env: { GITHUB_TOKEN: process.env.GITHUB_TOKEN } }, database: { command: "npx", args: ["-y", "@modelcontextprotocol/server-postgres"], env: { DATABASE_URL: process.env.DATABASE_URL } } }});await agent.run({ prompt: ` 分析最近的 GitHub PR: 1. 用 MCP GitHub 获取最近 10 个 PR 2. 用 Read 读取相关代码文件 3. 用 MCP Database 查询相关的 bug 报告 4. 生成代码审查报告 `});
最佳实践总结
1. 工具选择原则
- • 最小权限:只授予完成任务所需的最少工具
- • 性能优先:优先使用快速工具(Glob > Grep > Read)
- • 安全第一: Bash 工具需要严格的权限控制
2. 上下文管理
# ❌ 不好:一次性读取所有文件options = ClaudeAgentOptions( allowed_tools=["Read"], system_prompt="读取 src/ 下所有文件并分析")# ✅ 好:分阶段读取options = ClaudeAgentOptions( allowed_tools=["Glob", "Read"], system_prompt=""" 1. 用 Glob 列出文件 2. 按优先级排序 3. 逐个读取和分析 4. 只读取必要的文件 """)
3. 错误处理
const agent = new Agent({ allowedTools: ["Bash", "Read"], onToolUse: (tool, input) => { console.log(`[TOOL] ${tool}:`, input); }, onError: (error) => { if (error.tool === "Bash") { console.error("Bash 命令失败,尝试回退方案"); // 实现重试逻辑 } }});
4. 成本优化
| 策略 | 节省 | 实现 |
|---|---|---|
| 使用 Glob 代替 Read 遍历 | 90% | 先用 Glob 过滤,再 Read |
| 子代理用 Haiku 模型 | 80% | 简单任务用轻量模型 |
| 限制 Read 行数 | 50% | 指定 start_line/end_line |
| 批量操作 | 30% | 一次 Edit 多处修改 |
六、工具权限与安全模型
Claude Agent SDK 的安全模型是其生产就绪的关键。

权限模式
SDK 提供三种权限模式:
1. Interactive(交互模式)
options = ClaudeAgentOptions( permission_mode="interactive" # 默认)# 每次工具调用都需要用户确认
2. AcceptEdits(自动接受编辑)
options = ClaudeAgentOptions( permission_mode="acceptEdits")# 自动允许 Read、Edit、Write# 但 Bash 仍需确认
3. BypassPermissions(绕过权限)
options = ClaudeAgentOptions( permission_mode="bypassPermissions")# ⚠️ 危险:所有工具调用都自动执行# 仅用于可信环境
细粒度工具控制
options = ClaudeAgentOptions( allowed_tools=["Read", "Grep", "Bash"], denied_tools=["Write", "Edit"], # 明确禁止 bash_patterns=[ "git status", "git diff", "npm test" ] # 只允许这些 Bash 命令)
沙箱与隔离
文件系统隔离:
options = ClaudeAgentOptions( allowed_tools=["Read", "Write"], working_directory="/project/sandbox", # 限制工作目录 allowed_paths=[ "/project/sandbox/**", "/project/config.json" # 白名单特定文件 ])
网络隔离:
options = ClaudeAgentOptions( allowed_tools=["WebFetch"], allowed_domains=[ "api.github.com", "*.anthropic.com" ], blocked_domains=[ "*.internal.company.com" # 阻止内网访问 ])
审计与监控
import { Agent } from "@anthropic-ai/claude-agent-sdk";const agent = new Agent({ allowedTools: ["Read", "Write", "Bash"], // 工具调用钩子 onToolUse: (tool, input, output) => { // 记录到审计日志 auditLog.write({ timestamp: new Date(), tool, input, output, user: getCurrentUser() }); // 实时告警 if (tool === "Bash" && input.includes("rm")) { alert.send("检测到危险的 Bash 命令"); } }, // 成本跟踪 onTokenUsage: (usage) => { costTracker.record({ input_tokens: usage.input_tokens, output_tokens: usage.output_tokens, cost_usd: usage.total_cost_usd }); }});
七、从 claude-code-sdk 迁移到 claude-agent-sdk
如果你之前使用的是旧版 SDK,需要注意以下变化:
1. 包名和导入变化
# 旧版from claude_code_sdk import query, ClaudeCodeOptions# 新版from claude_agent_sdk import query, ClaudeAgentOptions
2. 系统提示的重要变化
这是最关键的破坏性变更:新版 SDK 不再默认使用 Claude Code 的系统提示。
# 旧版:默认使用 Claude Code 系统提示options = ClaudeCodeOptions(allowed_tools=["Read"])# 新版:需要显式指定options = ClaudeAgentOptions( allowed_tools=["Read"], system_prompt={"type": "preset", "preset": "claude_code"} # 显式指定)
3. 新增子代理能力
新版最大的增强就是 Task 工具和子代理系统,这是旧版所没有的。
总结
Claude Agent SDK 的工具体系代表了 AI Agent 开发的最新范式:
-
- 18+ 内置工具 覆盖文件操作、命令执行、搜索、Web、用户交互、任务管理、代理编排、计划模式、技能调用和工具发现等核心场景
-
- 三层任务概念 明确区分 Task 工具(子代理编排)、TodoWrite 工具(任务列表管理)和 Tasks 系统(Claude Code 产品层的持久化任务管理)
-
- WebSearch 服务端工具 通过 Anthropic 服务端执行搜索,让 Claude 获得实时信息能力
-
- Task 工具 引入子代理编排能力,实现复杂任务的专业化处理和并行执行,支持前台和后台两种执行模式
-
- TodoWrite 工具 让 AI 的工作计划可见,实现透明的任务管理和进度追踪
-
- Plan Mode 通过 EnterPlanMode 和 ExitPlanMode 工具,实现“思考”与“执行”的分离,确保复杂变更的安全性
-
- Skill 工具 作为元工具,支持动态加载和执行预定义的工作流,实现知识封装和团队协作
-
- ToolSearch 工具 解决大型工具集的上下文污染问题,支持按需动态加载工具,节省 60-80% 的上下文 token
-
- 工具组合模式 通过合理组合内置工具,实现复杂的自动化工作流
-
- MCP 生态系统 100+ 社区 MCP 服务器,无限扩展 Agent 能力
-
- 安全模型 细粒度的权限控制和审计机制,确保生产环境安全
-
- 活跃生态 从 Skills 到 Plugins,持续丰富的社区扩展
如果你正在构建 AI Agent 应用,Claude Agent SDK 的这套工具体系值得深入学习和实践。特别是 Task 工具的子代理编排能力和 TodoWrite 工具的任务管理能力,它们让 Claude 从“更好的聊天界面”真正转变为“自主开发代理”。
AI时代,未来的就业机会在哪里?
答案就藏在大模型的浪潮里。从ChatGPT、DeepSeek等日常工具,到自然语言处理、计算机视觉、多模态等核心领域,技术普惠化、应用垂直化与生态开源化正催生Prompt工程师、自然语言处理、计算机视觉工程师、大模型算法工程师、AI应用产品经理等AI岗位。

掌握大模型技能,就是把握高薪未来。
那么,普通人如何抓住大模型风口?
AI技术的普及对个人能力提出了新的要求,在AI时代,持续学习和适应新技术变得尤为重要。无论是企业还是个人,都需要不断更新知识体系,提升与AI协作的能力,以适应不断变化的工作环境。
因此,这里给大家整理了一份《2026最新大模型全套学习资源》,包括2026最新大模型学习路线、大模型书籍、视频教程、项目实战、最新行业报告、面试题、AI产品经理入门到精通等,带你从零基础入门到精通,快速掌握大模型技术!
由于篇幅有限,有需要的小伙伴可以扫码获取!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。

2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

4. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

5. 大模型行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

为什么大家都在学AI大模型?
随着AI技术的发展,企业对人才的需求从“单一技术”转向 “AI+行业”双背景。企业对人才的需求从“单一技术”转向 “AI+行业”双背景。金融+AI、制造+AI、医疗+AI等跨界岗位薪资涨幅达30%-50%。
同时很多人面临优化裁员,近期科技巨头英特尔裁员2万人,传统岗位不断缩减,因此转行AI势在必行!

这些资料有用吗?
这份资料由我们和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


大模型全套学习资料已整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】

更多推荐


所有评论(0)