8. Agent常见面试题:LLM 是如何学会调用外部 API 或工具的?1 训练数据让模型先“知道工具是怎么用的”在模型具备工具调用能力之前,它必须先在训练数据里看到足够多的工具调用示例。通常包含两类数据:1)真实 API / 工具调用代码或文档,例如:a. “要获取天气,请调用 get_weather(city=...)”b. “要计算数学表达式,请调用 calculator(expression=...)”2)人类标注或模型生成的“对话 + 工具调用”示范,例如:a. 用户问:杭州天气如何?模型示范:调用 tool.get_weather({city:"杭州"})再根据工具返回的结果继续回答。通过这些示例,LLM 学会了:什么问题对应调用什么工具;工具调用的格式是什么;什么时候不该调用工具。2 监督学习(SFT)使模型学会“根据指令选择工具”在 Fine-tuning 阶段加入大量的示例:1)该调用工具的场景2)不该调用工具的场景3)多工具协作场景例如:用户问「告诉我台北到上海的机票价格」。正确示例:a. 模型判断这需要实时信息b. 模型调用 flight_search API模型学习到:当遇到“需要外部信息/计算能力”的问题时,应倾向调用工具。3 通过 RLHF 让模型“偏好正确的工具调用行为”强化学习阶段会奖励:1)正确调用工具2)不乱调用工具3)工具调用后能给出正确结果惩罚:1)不必要的调用2)调用错误的工具3)调用格式不正确这一步让模型不仅会“模仿”,还会“懂得什么时候该调用工具”。4 ReAct / 规划式数据让模型学会 “推理后再决定工具”许多训练数据采用 ReAct 风格:1)模型先思考:要不要调用工具?2)再决定工具调用3)执行后再继续思考与回答这种数据让模型具备:1)任务分解2)长链路推理3)工具调用规划最终效果是:面对复杂任务,模型不会盲调,而是自行形成“推理 → 调用 → 再推理”的结构化流程。5 架构层提供“可调用工具的接口”现代 Agent 框架都会在推理阶段给模型提供一个结构化 schema:1)告诉模型有哪些工具2)告诉模型调用格式3)告诉模型每个字段是什么类型这样模型在生成内容时不需要“猜”,而是严格遵循系统提供的 schema,直接输出可执行的 JSON 或结构化调用指令。例如:1)系统提供工具:search(query: string)2)模型内部只需决定:要不要调用?,以及 query 内容是什么。6 推理时的实际行为:模型并不真的“执行工具”,而是生成结构化调用请求推理时发生的事情是:1)模型生成 JSON 指令,例如:{"tool":"search", "query":"杭州天气"}2)外部系统执行工具并将结果返回3)模型继续根据工具结果生成下一步行动或最终答案模型本身没有执行能力,它只是生成符合 schema 的字符串而已。总结LLM 学会调用外部 API / 工具,是一个“示例训练 + 强化学习 + 架构支撑 + 推理策略”组合的结果:1)先在数据里看到大量工具调用示范2)通过 SFT 学会该如何调用3)通过 RL 学会什么时候应该调用4)通过 ReAct 学会任务分解与步骤规划5)通过 functions/schema 让调用标准化因此模型看起来像真的“理解工具”,但本质是根据统计学习到的模式生成结构化指令。#ai创造营# #程序员#