深度

Claude Tool Use 完整指南:Client Tools、Server Tools 与 Agent Loop 实战

Claude Tool Use 官方文档中文整理:工具在哪里执行、client tools 和 server tools 的差异、tool_use/stop_reason/tool_result 的循环机制、strict schema、工具描述写法、成本构成与 Agent 安全设计。

2026/5/213分钟 阅读ClaudeEagle

Tool Use 是 Claude API 构建 Agent 的核心能力。没有工具时,模型只能生成文本;有工具后,Claude 可以查询数据库、调用 API、执行代码、搜索网页、编辑文件,形成真正的“观察—行动—反馈”循环。


两类工具:Client Tools 与 Server Tools

Anthropic 文档把工具按执行位置分为两类。

Client Tools

由你的应用执行。Claude 只返回结构化工具调用:

json
{
  "type": "tool_use",
  "name": "get_weather",
  "input": { "location": "Shanghai" }
}

然后你的代码执行这个函数,并把结果作为 tool_result 发回 Claude。

适合:

  • 内部数据库查询
  • 企业 API 调用
  • 私有系统操作
  • 需要自定义权限和审计的工具

Server Tools

由 Anthropic 基础设施执行,例如 web search、code execution、web fetch 等。你不需要自己实现执行逻辑。

适合:

  • 快速接入通用能力
  • 不想维护工具执行环境
  • 搜索、代码执行等标准化工具

Agent Loop 如何工作?

一个典型工具循环:

  1. 用户提出任务
  2. Claude 判断需要工具
  3. API 返回 stop_reason: "tool_use"
  4. 应用执行工具
  5. 应用把结果作为 tool_result 发回
  6. Claude 基于结果继续回答或继续调用工具

这就是 Agent Loop。复杂任务可能循环多次,直到 Claude 判断任务完成。


工具定义怎么写?

工具定义通常包括:

  • name:稳定、清晰、可读
  • description:说明何时使用、何时不要使用
  • input_schema:JSON Schema,定义参数

示例:

json
{
  "name": "get_customer_order",
  "description": "Fetch a customer's order by order_id. Use only when the user provides an order ID.",
  "input_schema": {
    "type": "object",
    "properties": {
      "order_id": { "type": "string" }
    },
    "required": ["order_id"]
  }
}

描述越具体,Claude 越不容易误用工具。


strict tool use

对于生产环境,建议启用 strict schema,让 Claude 的工具调用严格符合 schema。

好处:

  • 减少无效参数
  • 降低后端校验复杂度
  • 更适合自动化执行
  • 让工具调用更可预测

但 strict 不代表业务安全。你仍然需要在工具执行层做权限验证、参数校验和审计。


参数缺失时会怎样?

如果用户说“查一下天气”,但工具需要 location

  • 更强模型更可能追问位置
  • 某些情况下模型可能尝试推断默认值
  • 行为不应被当作绝对保证

生产系统应在 Prompt 和工具描述中明确:缺少必填信息时先追问,不要猜。


成本构成

Tool Use 会增加 token:

  • 工具定义本身会进入输入 token
  • tool_use 块会进入输出/输入上下文
  • tool_result 会进入后续输入
  • server tools 可能有额外按次计费

如果工具很多、schema 很长,建议:

  • 只暴露当前任务需要的工具
  • 精简 schema 描述
  • 对稳定工具定义使用 Prompt Caching

安全最佳实践

  • 工具执行层永远不要信任模型参数
  • 对危险操作加入人类确认
  • 对读/写/删除权限分开设计工具
  • 不要把“万能 execute_sql”直接暴露给模型
  • 记录每次 tool_use 和 tool_result
  • 对外部网页、邮件、Issue 内容做 prompt injection 防护

来源:Anthropic 官方文档 - Tool use with Claude | 整理:ClaudeEagle

相关文章推荐

深度Claude API 工具调用完全指南:Tool Use 函数调用从入门到实战Claude API Tool Use(工具调用/函数调用)完整教程:工具定义格式、单工具/多工具调用、工具结果传回、并行工具调用、流式工具调用、Python/Node.js 代码示例,以及构建 AI Agent 工具调用循环的最佳实践。2026/3/15深度Claude Computer Use 完整指南:桌面自动化、Agent Loop 与安全隔离实践Claude Computer Use 官方文档中文整理:功能定位、支持模型、beta header、工具配置、截图/鼠标/键盘控制、agent loop、参考实现、Docker 沙箱、网络 allowlist、prompt injection 风险和生产安全建议。2026/5/21深度Anthropic 2026 Agentic Coding 趋势报告:8 大预测解读,工程师角色从实施者转向编排者Anthropic《2026 Agentic Coding Trends Report》完整解读:60% AI 协作但只有 0-20% 完全委托的关键数据、8 大趋势(SDLC 压缩/多 Agent 团队/长时间 Agent/智能监督扩展/新用户群/经济重塑/全组织扩展/安全架构),以及 Rakuten/Fountain/TELUS/Zapier 的真实案例数据。2026/4/22深度MCP 代码执行模式深度解析:Anthropic 官方揭秘如何减少 98.7% 的 Token 消耗Anthropic 工程博客深度解析:传统 MCP 直接调用的两大 Token 浪费问题(工具定义占满上下文 + 中间结果来回传递),以及代码执行模式如何把 150,000 Token 降到 2,000 Token。涵盖文件树结构设计、按需加载工具、数据过滤、隐私保护和 Skill 持久化。2026/4/21深度Claude API 速率限制完全指南:限额说明、错误处理与优化策略Anthropic Claude API 速率限制完整说明:请求频率限制(RPM)、Token 用量限制(TPM/TPD)、不同使用层级的限额对比(免费层/Build/Scale/Enterprise)、429 错误的标准处理方式(指数退避重试)、提升限额的申请方法、Prompt Caching 和 Batch API 绕过限制的技巧,以及高并发场景的队列设计方案。2026/3/18深度Claude Extended Thinking 深度思考模式:复杂推理场景实战指南Claude Extended Thinking(扩展思考)完整指南:工作原理、支持模型、API 用法、thinking budget 配置、流式输出处理、适用场景(数学/架构/安全审计)、成本控制与常见误区。2026/3/15