知识域:Agent
深度考点
面试官怎么问「你说你搭过 Agent,那 Function Calling 底层怎么实现的?模型是自己执行了函数吗?」——答不清,你所有「我做过 Agent」的故事都会打折。
大白话版(零基础能懂)
模型并不会自己执行任何函数,它只会「说话」。你提前告诉它「我有几个工具,各自要什么参数」;用户问「北京今天多少度」,模型不联网,而是输出一段结构化的话:「我想调用 查天气(城市=北京)」。真正去执行、拿结果的是你写的外部代码,代码把结果喂回模型,模型才组织出回答。一句比喻:模型像个不能离座的军师,只会写纸条「派人去查」,跑腿的永远是你的程序。
进阶版(面试加分)
- 本质是「受约束的文本生成」:模型按你给的工具 schema 生成合法调用请求,输出的是「意图 + 参数」不是执行结果——所以它可能幻觉出不存在的参数/函数名,工程上必须校验。
- 完整回路是多轮往返:提问 → 模型决定调谁/填什么 → 你的代码执行 → 结果回填 → 模型判断「够了就答,不够再调」。一次任务可能来回好几轮,成本和延迟容易失控。
- 和 MCP 的关系:Function Calling 是「单模型怎么调工具」的底层机制;MCP 是把「工具怎么被描述、接入」标准化的协议,让工具能被不同模型复用。
- 工程兜底是重点:防死循环、参数幻觉、调用失败无 fallback——加最大轮数限制、参数校验、异常重试降级,这正是 Agent 面试从「背概念」转向「考工程」的原因。
记忆钩子:模型只负责「点菜」(输出调用意图),端菜的永远是你的代码——分不清这点,Agent 就永远搭不对。