🐵指尖猴全新升级
第5课:工具调用Function Calling
🧰

工具调用Function Calling

给AI发一套工具,让它从动嘴到动手!

📖知识引入

🧰工具是什么
你写好的Python函数:查天气、读文件、算数学,注册给模型调用
📋JSON Schema声明
用name、description、input_schema描述工具,模型照说明书写「申请单」
✉️tool_use申请
模型不会执行代码!它只返回tool_use块:工具名+参数JSON
🏃执行权在Harness
真正跑函数的是你的代码——模型只「下单」,跑腿的永远是你
💡
工具的description要写清「什么时候用」,模型全靠这段文字决定何时下单

🔍声明一个查天气工具

tools = [
    {
        "name": "get_weather",
        "description": "查询某城市当前天气。当用户问天气相关问题时使用。",
        "input_schema": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "string",
                    "description": "城市名,如「北京」"
                }
            },
            "required": ["city"],
        },
    }
]

response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "北京今天几度?"}],
    tools=tools,  # 把工具说明书交给模型
)
# 模型不会真的去查天气,而是返回一张「申请单」:
# content=[ToolUse(id="toolu_xxx", name="get_weather",
#                  input={"city": "北京"})]

模型读完schema生成参数JSON,执行这一步永远留给你的Harness

🎯小测验

第1题:Function Calling中,谁真正执行工具函数?

第2题:工具定义中的input_schema用来做什么?

第3题:模型决定调用工具后返回的是?

📝本课知识点

  • ✓工具=你写的函数+JSON声明
  • ✓模型只下单,代码才执行
  • ✓description决定模型何时用工具
第5课完成!继续探索下一课吧 🚀