什么是工具调用(function calling)?为什么 Agent 离不开它?
function calling 是模型按你提供的工具 Schema 输出结构化调用请求(调哪个工具、参数是什么),由你的代码真正执行,再把结果喂回模型。没有它,模型只能说,不能做。
完整回答
关键边界:模型不直接执行任何函数,它只生成符合 Schema 的参数;执行、鉴权、超时、重试都在应用层。Agent 的感知(查数据)和行动(写数据)都经工具完成,所以工具契约(名称、参数 Schema、权限、失败返回)决定 Agent 的能力上限和安全边界;Schema 写不好,模型就会填错参数或选错工具。
加分信息
- 强调模型给意图、应用做执行的信任边界
- 提到工具 Schema 质量直接影响调用正确率
常见问题
- 以为模型自己在执行函数,忽略应用层要校验参数
- 工具返回一大段非结构化文本,模型难以使用
面试官可能追问
- 模型填错参数时怎么办?
- 哪些工具必须加人工确认才允许执行?
结合受控任务执行 Agent(/labs/controlled-agent)展示工具 Schema、权限守卫与执行结果的完整回路;/labs/mcp-tools 可对照协议层视角。