Function Call(函数调用 / 工具调用)是什么?

4 阅读3分钟

Function Call(函数调用 / 工具调用)是什么?

Function Call 是大语言模型(LLM)与外部工具交互的核心能力,也被称为 Tool CallingTool Use。它是把 LLM 从“只会聊天”变成“能做事”的 Agent 的关键技术。

简单一句话总结:

Function Call = LLM 主动告诉系统“我需要调用某个工具”,然后系统执行工具并把结果返回给 LLM。


一、Function Call 的本质

传统 LLM 只能输出文本,无法直接访问互联网、运行代码、查数据库等。
Function Call 让 LLM 拥有了“动手能力”:

  1. 开发者提前定义好工具函数(Functions / Tools),并告诉 LLM 这些工具的名称、描述、参数格式
  2. LLM 在思考时,如果需要外部信息或操作,就会输出一个结构化的调用请求(而不是直接回答)。
  3. 系统解析这个请求,真正执行工具,把结果塞回 LLM 的上下文。
  4. LLM 拿到结果后,继续思考或给出最终答案。

二、工作流程(以 ReAct 为例)

graph TD
    A[用户提问] --> B[LLM 思考]
    B --> C{需要工具?}
    C -->|是| D[输出 Function Call]
    D --> E[系统执行工具]
    E --> F[把结果返回 LLM]
    F --> B
    C -->|否| G[直接输出最终答案]

三、Function Call 与普通 Prompt 的区别

维度普通 Prompt 输出Function Call 输出
输出类型纯文本结构化 JSON(工具名 + 参数)
自主性被动回答主动请求外部帮助
准确性容易幻觉通过真实工具结果大幅降低幻觉
能力边界仅限训练知识可调用实时数据、代码、API 等
可控性高(开发者定义工具权限)

四、实际例子

用户问题:帮我查一下今天新加坡温度并告诉我穿什么衣服合适。

没有 Function Call 时(纯 LLM):

“今天新加坡大概28度,建议穿短袖…”

(可能是 hallucination,数据不准)

使用 Function Call 时

  1. LLM 输出:
    {
      "name": "get_weather",
      "arguments": {
        "city": "Singapore",
        "date": "2026-04-21"
      }
    }
    
  2. 系统执行工具,得到真实结果:{"temp": 31, "condition": "多云"}
  3. LLM 继续生成最终回答:

    “今天新加坡31℃,多云转晴,建议穿短袖+薄外套,注意防晒。”


五、主流平台的 Function Call 支持(2026年现状)

  • OpenAI:最早提出,最成熟(tools 参数)
  • Anthropic (Claude):强烈支持,表现优秀
  • Grok (xAI):原生支持工具调用(我现在就在使用)
  • Google Gemini:Function Calling
  • Meta Llama:开源模型也广泛支持
  • 国产:通义千问、DeepSeek、Kimi 等均已支持

六、Function Call 在 Agent 中的地位

  • ReAct 模式:最依赖 Function Call
  • Plan-and-Execute:规划阶段决定调用哪些工具
  • Multi-Agent:不同 Agent 之间通过 Function Call 协作
  • Agentic Workflow:Function Call 是连接各个节点的“胶水”

没有 Function Call,就没有真正的 Agent。


七、开发者视角:如何定义一个 Tool

# 示例(LangChain / OpenAI 风格)
tools = [
    {
        "name": "search_web",
        "description": "联网搜索最新信息",
        "parameters": {
            "type": "object",
            "properties": {
                "query": {"type": "string", "description": "搜索关键词"}
            },
            "required": ["query"]
        }
    }
]

结语

Function Call 是 LLM 进化成 Agent 的“分水岭”
它让 AI 从“知识库”变成了“行动者”,是目前所有 Agent 框架(LangChain、LangGraph、CrewAI、AutoGen 等)的核心基石。

掌握 Function Call,你就掌握了构建 Agent 的入门钥匙。