首页/工具/函数调用

函数调用

定义自定义工具函数,让 Grok 智能体自动调用以完成复杂任务。

函数调用允许你定义自定义工具,模型可以根据用户请求自主决定何时调用这些工具。 当定义工具时,xAI 模型始终生成严格遵循工具输入 JSON Schema 的工具调用参数 (strict 标志隐式始终为 true)。

定义工具

工具使用 JSON Schema 定义参数格式:

Python (OpenAI)
from openai import OpenAI
import json

client = OpenAI(api_key=os.getenv("XAI_API_KEY"), base_url="https://api.x.ai/v1")

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "获取指定城市的天气",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "城市名称"},
                "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
            },
            "required": ["city"]
        }
    }
}]

response = client.responses.create(
    model="grok-4.5",
    input="北京今天天气怎么样?",
    tools=tools,
)

工具调用流程

  1. 模型接收用户请求和可用工具定义
  2. 模型决定是否需要调用工具,并生成工具调用参数
  3. 你的代码执行工具调用,返回结果给模型
  4. 模型使用工具结果生成最终响应

工具 Schema 支持

工具 Schema 遵循与结构化输出相同的 JSON Schema 支持规则。支持以下类型:

  • string, number, integer, boolean, null
  • enum, const
  • array, object
  • anyOf, oneOf, allOf
  • $ref / $defs(仅非循环引用)

多工具调用

模型可以在一次响应中调用多个工具。你的代码需要处理多个工具调用结果, 并将所有结果返回给模型以生成最终响应。

接下来