137、Function Calling 深潜:让 LLM 调用你的函数,实现代码即工具

📅 2026/7/5 5:40:58
137、Function Calling 深潜:让 LLM 调用你的函数,实现代码即工具
137、Function Calling 深潜:让 LLM 调用你的函数,实现代码即工具一个让我熬夜到凌晨三点的Bug去年秋天,我在做一个智能客服系统。需求很明确:用户问“帮我查一下订单状态”,LLM要能调用我的query_order函数,返回真实数据。我按照OpenAI文档写了Function Calling的代码,测试时一切正常——直到上线。用户问:“我的订单怎么还没发货?”LLM回复:“您的订单已发货,物流单号SF1234567890。”但实际数据库里,这个订单根本没有物流信息。我查了三天日志,发现LLM在调用函数时,传入了错误的参数——它把用户说的“还没发货”理解成了“已发货”,然后自己编造了一个物流单号。Function Calling确实被调用了,但参数完全不对。这个坑让我意识到:Function Calling不是简单的“LLM调用函数”,而是一场精心设计的“参数博弈”。你给LLM的函数定义,决定了它能不能正确理解你的意图。Function Calling的本质:不是调用,是协商很多人以为Function Calling就是LLM直接执行你的Python函数。错了。真正的流程是:你告诉LLM:“我有这些函数,参数长这样”LLM分析用户输入,决定“我需要调用哪个函数,参数应该是什么”