语音摘要 — 点击播放以跟读:正在朗读的行会保持在顶部附近。
您可以构建自己的自定义工具,但某些功能非常常见,Anthropic已预先构建。您无需编写代码,也无需托管沙箱环境。只需声明工具,Anthropic便会运行它。
服务器工具:由您声明,由Anthropic运行
Anthropic提供在其基础设施上运行的服务器工具。这些调用无需您执行——由Anthropic完成。这意味着您不需要为这些调用构建代理循环。Claude会自主调用工具,结果将在同一响应中返回。
主要工具包括:
- 网络搜索 —— 搜索互联网并返回带引用的结果
- 代码执行 —— 在沙箱中编写并运行Python代码
- 网页抓取 —— 从URL获取完整内容
单文件中的两个服务器工具
让我们在一个文件中查看两个主要工具:包含messages. create调用的网络搜索和代码执行。
import anthropic
client = anthropic. Anthropic()
search_response = client. messages. create( model="claude-opus-4-8", max_tokens=1024, tools=[{"type": "web_search_20260209", "name": "web_search"}], messages=[ {"role": "user", "content": "What is Anthropic's latest model release? Answer in one sentence. "} ], )
for block in search_response. content: if block. type == "server_tool_use": print(f"工具调用: {block. name} — {block. input}") elif block. type == "text": print(block. text)
code_response = client. messages. create( model="claude-opus-4-8", max_tokens=1024, tools=[{"type": "code_execution_20260120", "name": "code_execution"}], messages=[ {"role": "user", "content": "Calculate the mean and standard deviation of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"} ], )
for block in code_response. content: if block. type == "server_tool_use": print(f"工具调用: {block. name} — {block. input}") elif block. type == "bash_code_execution_tool_result": print(f"标准输出: {block. content. stdout}") elif block. type == "text": print(block. text)
需要注意两点:
- 这里没有代理循环。我们不需要处理stop_reason切换,也不需要回传工具结果。Anthropic在服务端运行工具,响应已包含结果。
- 响应包含新的区块类型。工具调用会生成server_tool_use区块,代码执行工具会输出结果区块,此外还有常规的text文本区块。
运行示例
对于网络搜索,您将看到Claude的工具调用记录,随后是关于最新模型发布的单句回答,并附带搜索引用。
对于代码执行,您将看到Claude实际编写的Python代码、沙箱运行的标准输出,以及最终的文本回答。
我们无需部署搜索引擎爬虫,也无需搭建Python沙箱环境。只需声明两个工具,即可免费获得这两项功能。
另一类别:客户端工具
值得了解的另一类别是客户端工具。这些工具在您的代码环境中运行。它们已集成在Claude SDK中,因此您无需自行定义模式。两个示例:
- 记忆存储 —— Claude可跨会话读写记忆
- Bash终端 —— 持久化的bash shell,Claude可执行命令
Anthropic文档中内置工具表格,其中记忆和bash作为客户端工具与网络抓取、代码执行等服务器工具并列
它们与自定义工具结构相同,但SDK已提供模式定义和合理的运行器。
生产环境中的重要性
在生产应用中,这是实现复杂功能的最短路径。例如,网络搜索可为事实核查接口提供支持,验证草案中的每个数字和法规声明是否符合实时网络信息。
提案审核应用使用网络搜索来验证草案中的法规和数字声明
但需注意:互联网验证的内容未必真实。请务必复核Claude的工作成果。
要点回顾
- 服务器工具(网络搜索/代码执行/网页抓取)在您的tools数组中声明,由Anthropic运行
- 结果会在同一响应中返回,无需代理循环。注意查找server_tool_use和工具结果区块,它们与常规文本区块并列
- 客户端工具(如记忆存储和bash)在您的代码环境运行,但SDK已提供模式定义和运行器
- "由Anthropic托管"的理念可扩展至更大范围:托管代理将其应用于整个代理系统,而不仅是单个工具