美团 AI Agent 开发二面

1. Agent 工具调用你知道怎么训练吗?训练集应该包含哪些?怎么得到训练数据集?

如果只是让模型“知道有工具”,那只需要在 SFT 里教会它工具名和参数格式;但如果想让它真的会用工具,训练集必须覆盖完整决策链路。至少要有三类样本:一类是该调用工具的,一类是不该调用工具的,还有一类是要调用多个工具且有依赖关系的。否则模型很容易学成“逢问题必调用”。

训练数据来源一般有几种。最理想的是业务日志里已有高质量人工操作轨迹,把用户问题、检索条件、调用参数、返回结果和最终回复串起来。没有现成轨迹时,就要靠规则模板、专家构造、模型自蒸馏和人工校验混合生成。真正难的地方不在造正样本,而在构造反例,比如参数缺失、工具返回为空、多个工具都能回答但代价不同,这些不补齐,模型上线后会非常脆。

2. 假如一个 query 有两个工具都可以调用,训练集应该怎么设计?

这个问题本质上在考“工具选择偏好是怎么学出来的”。如果两个工具都能答,训练集不能只保留其中一个,否则模型会误以为另一个永远不该用。更合理的做法是把样本拆成几种情况:一种是两个工具都可用但其中一个更便宜、更快、更稳定;一种是两个工具精度不同;还有一种是一个工具适合粗召回,另一个适合精查。

训练时最好显式标出为什么选这个工具。也就是说,不只是让模型输出 tool call,还要让它学到选择依据,比如“优先选结构化接口,因为结果更稳定”“优先选本地缓存接口,因为时延更低”。如果训练集没有把这些偏好编码进去,模型最后只会学会表面模式,而不是策略。

3. 你构造数据集时遇到过什么难点?怎么解决问题?

最大的难点通常不是数据量,而是分布不真实。很多人造数据写得太标准,用户输入特别工整,参数全都给齐,工具永远成功,这种数据拿去训模型,线上一遇到省略、歧义、错别字、跳步提问,马上就崩。

解决方法一般有三层。第一层是把真实线上 query 分桶,按意图、复杂度、是否多轮、是否缺参来采样;第二层是专门补边界样本,比如工具冲突、返回异常、部分字段为空;第三层是做反事实增强,也就是把同一个问题改写成几种表达,甚至故意删字段,看模型会不会澄清。高质量 Agent 数据集不是“整理干净”就行,而是要尽可能模拟线上脏场景。

4. 细问一下 Agent 是怎么设计的?

如果面试官这么追问,通常不是要你背一个 ReAct 或 Plan-and-Execute,而是看你有没有真正把系统拆开。我一般会从五层来说:意图理解、任务规划、工具决策、状态管理、结果校验

真正决定上限的往往不是模型本体,而是状态管理。因为多轮 Agent 一旦没有明确状态,模型上一轮调用了什么工具、拿到了什么中间结果、哪些参数已经确认、哪些还不确定,很快就会乱。成熟一点的系统一般会把“自然语言对话状态”和“结构化执行状态”拆开,前者给模型理解上下文,后者给执行器判断下一步该做什么。

5. MCP 和普通 tool call 的区别是什么?

普通 tool call 更像是“模型输出一个函数调用”,重点在调用动作本身;MCP 更像是一套标准化的上下文和工具协作协议,它不只是让模型会调函数,而是让外部能力以统一方式暴露给模型,包括工具、资源、提示模板、上下文对象等。

说白了,tool 更像单个能力接口,MCP 更像能力接入规范。前者解决“怎么调”,后者解决“怎么让不同系统稳定接进来并被模型理解”。如果公司要做大量内部系统接入、跨团队共享能力、支持统一权限和上下文管理,那 MCP 的价值会更大。

6. 如何开发一个 MCP 服务?

核心不是写个 HTTP 接口,而是把能力抽象清楚。一个 MCP 服务至少要解决三件事:第一,暴露哪些 resource、tool、prompt;第二,输入输出 schema 怎么定义;第三,权限、鉴权、超时、错误码怎么做统一约束。

工程上通常会先把内部已有能力包装成标准 schema,再补 discoverability,也就是让模型或宿主知道这个服务里有什么能力。真正难的是稳定性和可观测性:你不能只关心“能不能调用成功”,还要知道调用失败时是 schema 不匹配、参数缺失、超时、下游异常还是权限问题。MCP 一旦做成,只是第一步,后面可观测、回放、审计才是长期成本。

7. LoRA 和全参数微调的区别是什么?

LoRA 本质上是在原权重旁边加一个低秩增量,让你不用动全部参数,只训练少量适配矩阵;全参数微调则是直接更新整个模型。前者最大的好处是省显存、省训练成本、方便多任务切换,适合做领域适配和风格适配;后者自由度更高,但成本也高,容易把原模型能力带偏。

如果追问更深一点,我会说 LoRA 不是简单“效果差一点但便宜”,关键要看任务对表示空间改动有多大。如果只是改说话风格、工具格式、业务术语,LoRA 往往就够了;如果是很强的分布迁移或者能力迁移,LoRA 可能不够,需要更高秩、更多 target modules,甚至直接全参。

8. DPO、PPO、GRPO 这三种对齐方法怎么比较?

PPO 是强化学习范式,核心是 reward 最大化,所以灵活但复杂;DPO 是把偏好学习改写成一个更直接的优化目标,不显式做 RL rollout,训练更稳;GRPO 则更适合一组候选之间做相对偏好优化,它不一定只依赖二元 chosen/rejected。

如果站在工程角度看,DPO 的性价比通常最高,因为数据和训练链路都简单;如果你要做复杂在线反馈、过程奖励、长链决策,PPO 仍然更有表达力;GRPO 介于两者之间,特别适合候选重排、组内比较这类场景。真正高级的

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

AI-Agent面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论
同学 拼多多暑期实习考虑吗 核心部门 hc目前还充足 可以看我主页帖子或私聊 可以传授经验
点赞 回复 分享
发布于 04-07 21:21 上海

相关推荐

04-29 07:35
已编辑
门头沟学院 前端工程师
结合前端工程化、交互、全栈、浏览器 runtime 优势,整理最适配、好切入、薪资高的Agent方向岗位:1. AI 应用端Agent开发【首选、无缝转型】• 核心:对话智能体、AI助手、Web端智能应用、流式交互、AI客户端• 工作:Agent 会话编排、流式渲染、工具调用前端对接、记忆层交互• 前端优势:SSE/流式渲染、组件封装、复杂交互、状态管理直接复用2. MCP/工具调用Agent工程师【当前爆款】• 核心:基于MCP协议、Function Call,搭建可执行任务的智能体• 工作:插件工具编排、权限控制、指令解析、多工具联动调度• 适配点:前端熟悉接口、协议、配置化开发,上手极快3. RAG 智能体开发(前后端协同)• 核心:知识库问答、企业私有Agent、文档检索+回答• 工作:检索结果渲染、引用溯源、文档解析、对话上下文管理• 优势:前端B端业务、文档渲染、长列表优化经验完美契合4. 全栈AI Agent开发【涨薪最高】• 核心:独立搭建轻量化Agent服务、端到端智能应用• 技术:Next.js/Nuxt + 大模型SDK + 简单服务层• 前端转最容易:只需要补少量Node服务、向量库基础5. 企业数字化Agent工程师【B端稳定岗】• 核心:内部办公Agent、流程自动化、低代码智能助手• 工作:业务流程编排、表单智能填写、数据查询Agent• 适配:前端B端、中后台、低代码开发经验6. 端侧/WebLLM 轻量化Agent【前沿稀缺】• 核心:浏览器本地大模型、离线智能体、前端私有化AI• 技术:WebLLM、Wasm、模型轻量化、端侧推理优化• 独家优势:只有前端懂浏览器环境,壁垒极高7. Agent 平台&中台研发• 核心:智能体管理平台、Agent 市场、角色配置、会话中台• 工作:中台系统、配置化、权限、监控、智能体模板开发• 适配:前端中台/组件化/工程化能力8. AI 提示词&Agent 策略工程师【低代码转型】• 核心:智能体人设设计、任务流程Prompt、Agent行为规则• 适合:不想重度写代码,偏业务+逻辑编排的前端前端转Agent 核心天然优势1. 懂流式交互、实时渲染,是Agent体验核心;2. 熟悉协议、接口、状态管理,快速上手工具调用/多轮记忆;3. 全栈门槛低,Node 技术栈天然衔接Agent服务层。
点赞 评论 收藏
分享
一面 面试官非常专业问问题非常有条理,是在我介绍项目的中途插入一些扩展性问题或者基础性八股,一面无手撕1.介绍一下你对 HTTP 这个协议的一些理解2.HTTP2 的多路复用解决了并行发送的问题,但是在一条链路中并行发送 123 这些数据,它怎么知道哪些数据是属于第一个请求?哪些属于第二个请求?接收端它怎么知道当前收到这个数据包,它是属于一还是属于 2 还是属于3?3.有没有更深入一点的理解HTTP2 头部压缩是做什么?4.HTTP 的缓存机制5.项目实际项目之中是怎么去配置和怎么利用协商缓存和强缓存机制?实际项目中应该怎么去考量这个时间和过期机制?6.加载相关的优化业界是有哪些常见的优化方案?7.CDN详细说一下8.懒加载是怎么达到优化效果?以及它的核心理念是怎么样的?9.无限滚动那种场景除了你刚刚说的这个懒加载,这种长列表还有没有其他一些优化点呢?10.上面已经滚动到可视区以外的内容进行一个处理,具体是做了什么?(回收DOM)11.介绍一个你觉得最能体现你技术能力的一个功能或项目12.长列表的图片的延迟加载。用户他可能很快的往下滑,比如说他当前是属于第一屏。他下面的第二、第三屏,你们是先用占位的空间占着那个图片的位置。用户他可能一滑的话立马划过了,一下子到了第五、第六屏。那么第二、第三屏这些被他快速划过了,你们还会继续去加载渲染图片吗?(回答防抖优化)13.平时在开发项目和学习的过程中,你是有用 AI 吗?14.开发项目的流程之中有没有使用 AI 去帮你开发项目?会用哪些 AI 的工具呢?15.IDE 相关的有没有用?比如说 cursor 啊?平时 cursor 开发具体是怎么去用吗?比如说让它去给你开发项目的时候。16.用这种 cursor agent AI 给你开发这个过程之中,你觉得会有哪些坑?17.有没有了解过业界在编程使用 AI 的一些最佳实践或工作流?或者一些相关的配套的 skill MCP 还有实践经验来帮你更好的开发呢。18.除了开发之外,在哪些编程的节点或流程上,你觉得可以用 AI 继续进行一些辅助或者是提效的呢。19.在实际使用中或者你什么经验去怎么去review,或者是测试 AI 的产出,避免幻觉呢?20.有没有了解过多 agent 甚至是 team 模式?你觉得怎么利用多 agent 甚至是 agent 质检的这种模式在接入我们的开发流程之中呢?你觉得比较理想的,又能提高效率,又能提高 agent 的自身的代码质量的一个流程是怎么样?21.你平时是怎么去关注现在迭代很快的 AI 知识,或者是一些理论或一些实践22.有了解最近 Git上在编程方面有哪些比较火的一些项目吗?23.有没有自己搭一些openclaw?二面面试官也非常好1.实现流式传输,为什么选择RXJS,而不是用原生的event source? RXJS的核心价值是什么?2. SSE 和 Web SOCKET 有什么区别?3.流式输出的话在前端怎么渲染的?是逐字的去追加 DOM 呢?还是做缓冲区批量更新?有没有遇到一个频繁的DOM 更新导致的性能问题4.文件上传解析这部分前端主要负责的哪些部分?主要做了些什么?5.在这个项目中,你觉得前端部分和后端部分的工作量大概是什么比例?6.keepalive的作用7.typescript 的 type 和interface有什么区别?8.BFC是什么?9.从这个浏览器地址栏输入一个 URL 地址到页面呈现的一个过程10.webpack和vite11.算法题:防抖12.前面几次面试的不足点13.vue、node更擅长哪一块?14.职业发展方向?15.AI 的这个辅助编码和独立编码怎么看16.让你快速上手react ,会有一些什么方式三面实习经历为什么会考虑前端开发自学前端的学习路径选一个有挑战性的项目讲讲,有没有可以优化的点学习 AI 大概多久了skill 跟 MCP 有什么区别有开发过 skill 吗openclaw怎么实现用户需求的个人规划实现一个谷歌、百度首页搜索框要注意哪些点?算法:找一个链表中间的节点、找一个链表倒数第n个节点已oc,祝大家早日上岸
点赞 评论 收藏
分享
面试时间:4.27下午2点 时长50min暑期最后一次面试了,这场面完暑期就结束了,问题比较少,八股和项目也很少,更多是一些底层或者开放的问题,但是回答的感觉很不好,感觉要折戟在这里了,让我进一次字节吧,求求求求求求求求求求求求求求求求,唉,好伤心1. 自我介绍2. 为什么选择前端方向3. 你现在最熟悉、最常用的是哪个 AI 模型4. 你平时除了用 AI 写代码,还会怎么用 AI5. 流式响应和普通请求响应的主要区别是什么6. 为什么你的 AI 对话项目选择用 SSE7. SSE 相比普通请求模式,有哪些优点和缺点8. AI 对话这种高频流式返回场景,前端会遇到哪些性能问题9. 你是怎么做 SSE 渲染性能优化的10. requestAnimationFrame在你的优化方案里是怎么用的11. 列表和数组这两种数据结构,在“判断某个值是否存在”这个场景下,应该选哪个12. 从底层存储和缓存角度看,数组和链表有什么差别13. 为什么你会觉得链表更快,你的依据是什么14. 一个数组里取最大的 K 个数,怎么做15. 如果不用排序,最大的 K 个数还能怎么做16. 手撕:快排  (原本是栈实现队列的,但是js里没有这两个类型就换了快排)17. 100 个人里有 1 个带病毒的人,只有 2 张试纸,怎么尽量少检测次数找出来18. 反问
查看17道真题和解析
点赞 评论 收藏
分享
评论
1
23
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务