🔧 Tool Calling (Function Calling)

AI Agent的核心能力 — 让LLM能够调用外部工具和API

AI核心LLMAgent能力2026基础

📖 定义

Tool Calling (工具调用),也称为 Function Calling,是指大语言模型(LLM)能够识别何时需要调用外部工具,并生成正确的调用参数的能力。这是AI Agent从"聊天机器人"进化为"行动者"的关键能力。

简单来说,Tool Calling 让AI不仅能"说",还能"做"——搜索网页、查询数据库、发送消息、执行代码等。

🧠 工作原理

用户提问
LLM分析
识别工具需求
生成调用参数
执行工具
返回结果
生成回答

技术实现

Tool Calling 的核心步骤:

  • 工具定义 - 描述工具的功能、参数和返回值(JSON Schema)
  • 意图识别 - LLM 分析用户意图,判断是否需要调用工具
  • 参数生成 - LLM 生成符合工具定义的调用参数
  • 执行与返回 - 执行工具调用,将结果返回给LLM
  • 结果整合 - LLM 整合工具结果,生成最终回答

💻 OpenClaw 中的 Tool Calling

OpenClaw 提供了强大的工具系统,支持多种工具类型:

1. 内置工具

# OpenClaw 内置工具示例 内置工具: - web_search # 网页搜索 - web_fetch # 获取网页内容 - read/write/edit # 文件操作 - exec # 执行命令 - browser # 浏览器控制 - message # 发送消息 - cron # 定时任务

2. MCP 工具集成

# 通过 MCP 集成外部工具 mcp: servers: - name: "github" tools: - list_issues - create_issue - add_comment

3. 自定义工具 (SKILL.md)

# 在 SKILL.md 中定义自定义工具 ## 工具定义 { "name": "search_database", "description": "搜索产品数据库", "parameters": { "type": "object", "properties": { "query": {"type": "string", "description": "搜索关键词"}, "limit": {"type": "number", "description": "返回数量"} } } }

🎯 实战案例:智能客服Agent

用户问:"我的订单 #12345 到哪了?"

Agent 处理流程:

  • 识别意图 → 查询订单状态
  • 调用工具 → order_status(order_id="12345")
  • 获取结果 → "订单已发货,预计明天到达"
  • 生成回答 → "您的订单 #12345 已发货,预计明天到达。"

📊 主流LLM的Tool Calling支持

模型并行调用流式支持工具数量
Claude 3.5+128+
GPT-4o128+
Gemini 2.064+
Qwen 2.5+64+

✅ 优势

  • 扩展LLM能力边界
  • 结构化输出,可靠执行
  • 支持复杂工作流
  • 标准化接口(MCP)

⚠️ 挑战

  • 工具定义占用上下文窗口
  • 幻觉可能导致错误调用
  • 嵌套调用增加延迟
  • 安全审查不可忽视

🔗 相关术语