面灵AI→

凌迪前端实习面试:Agent 搭建与 MCP 辨析

时间
2026-09
来源
牛客网

《面试题目》

  1. 怎么来搭建一个 agent?
  2. 有没有接触过大模型测评?怎么知道 AI 生成的内容是不是对的?
  3. 知不知道 agent 路由?
  4. MCP 和 function call 有什么区别?
  5. 介绍一下 skill
  6. 讲一下你对 AI 的理解
  7. 自我介绍,介绍实习和项目;为什么有这么多段实习、为什么离职、怎么平衡学校课程和实习
  8. 反问:团队做什么方向?

《参考解析》

怎么搭建一个 agent

一个能用的 agent 至少要有四件事:模型、工具、记忆、循环。流程是接收用户输入,把系统提示词、历史对话和工具 schema 一起交给模型;模型要么直接回答,要么输出工具调用;宿主执行工具并把结果写回上下文,进入下一轮,直到模型给出最终答案或达到步数上限。工程上真正决定成败的是这几处:工具粒度要按「一个动作一件事」拆,参数用 JSON Schema 约束并做校验;循环要有最大步数、超时和重试,避免打转烧 token;记忆分短期(对话窗口)和长期(向量库或结构化档案);失败要能回滚和有兜底回答。前端同学常做的那一层是编排与可视化(工具调用过程、流式输出、人工确认),底层模型调用交给 SDK。

Agent 路由

路由解决的是「一个入口进来,该交给哪个 agent 或哪条流程」。常见做法有三种:规则路由(关键词、正则、槽位匹配,快但脆)、语义路由(把用户问题向量化,和每个 agent 的描述向量比相似度,取最近的;也可以先让 LLM 给问题打意图标签)、以及让 LLM 直接做分类(把候选 agent 的名称和能力描述丢进提示词,让它输出一个枚举值)。生产里一般是规则兜底加模型分类:先命中明确规则,剩下的走模型。做路由必须准备评估集,否则改一次提示词就会悄悄把某些意图路由错。

MCP 和 function call 的区别

Function calling 是模型侧的能力:你把工具的名字、描述、参数 schema 放进请求,模型在需要时输出一个结构化的调用请求,参数由模型填,执行由你的程序做,结果再由你塞回上下文。它解决的是「模型怎么表达我要调工具」。

MCP(Model Context Protocol)是集成侧的协议:它把「外部能力怎么接进来」标准化成 client 和 server,走 JSON-RPC,提供 tools、resources、prompts 三类原语,工具通过 tools/list 被发现。任何实现了 MCP 的宿主都能连同一个 server,不用为每个模型厂商重写一遍适配层。

两者不是替代关系:MCP server 暴露的工具,最终还是要通过 function calling 交给模型决策;区别在于 function calling 是「模型输出什么格式」,MCP 是「工具从哪来、怎么被复用」。回答时把这两层分开说,比笼统地讲「MCP 是升级版 function call」准确得多。

怎么知道 AI 生成的内容对不对

分三层。离线评测:准备带标准答案的评测集,指标看准确率、召回、忠实度和幻觉率;开放生成任务用 LLM-as-judge 打分,但裁判模型本身要先和人工标注对齐(看一致率),否则只是在测裁判的偏好。在线验证:用规则做硬校验(格式、取值域、引用是否存在),对高风险的输出做人工抽检,再做 A/B 对比业务指标(采纳率、修改率、投诉率)。

具体到「回答有没有依据」这件事,最有效的是要求模型带引用,然后逐条回查引用片段是否真的支持结论;检索增强的场景还要单独评估检索环节的召回,否则答案错了你分不清是检索没召回还是模型乱编。回归集要长期维护,每次改提示词、换模型都跑一遍,这样「这次改动到底变好了还是变差了」才有答案。

Skill 是什么

以 Claude 的 Agent Skills 为例,一个 skill 就是一个目录,里面放一份带元数据的 SKILL.md(说明什么时候用、怎么用),需要时还可以带脚本、模板、参考资料。它和工具的区别在于:工具是「一个动作」,skill 是「一套做法」——把提示词、流程、脚本打包,按需加载。加载策略是渐进式披露:先只把名称和描述给模型,模型判断相关了再读全文,避免一次塞进过多上下文。前端接进去要做的就是扫描目录、把元数据注入系统提示,并处理多 skill 之间的优先级冲突。