美团实习AI后端开发一面面经
《面试题目》
项目经历与AI Agent架构:
- 选一个项目,具体介绍一下都有哪些模块,以及你在里面遇到的一些问题,解决了哪些。
- 这个子Agent是怎么交互的呢?它交互协议是什么?
- 这个助手,它是一个固定的工作流吗?主Agent会判断调哪些子Agent吗?
- 这个控制你是怎么实现的呢?怎么让AI Agent动态地去识别?
- 这个子Agent是串行的还是并行的?
- 这个Agent是怎么去让它实现搜索或者查询的?是调的一些公开接口吗?
- 这个ReAct范式你是怎么理解的,以及怎么实现的?
- 针对你这个项目能举一个具体的例子吗?你是怎么做的?
- 这个循环3次是每次必须要跑3次吗?他会提前退出吗?
- 这个MCP协议是干嘛的?这个怎么理解呢?
- 你实现的这个助手里面不是有长短记忆吗?这个短期记忆你能介绍一下吗?
AI工程化与规范: 12. 你平时会用AI coding嘛? 13. 除了编码阶段,其他节点比如架构设计、接口设计有尝试吗? 14. 现在你们用AI去编码的话,AI写完之后你会去通读一遍,还是说只要测试没问题就不看也行? 15. 如果我想让AI每次编码的时候都遵循一定的规则,比如抛异常要打日志,或者方法不能超过500行,要怎么实现呢? 16. Skill和MCP以及Rule的区别是什么? 17. Skill怎么去控制我可以加载哪些呢?是Skill本身具备这个能力,还是使用Skill的工具具备这个能力呢? 18. 最近比较火的OpenClaw了解过吗?你觉得它是一个什么样的东西呢?它怎么能做到是个通用的Agent呢? 19. 你觉得Claude模型和Codex模型这两个模型,你觉得哪一个好?
后端基础: 20. Java里面那个接口和抽象类,这两者的区别是什么? 21. Redis对于那种到了过期时间的数据,他会怎么去清理?清理机制是什么样的? 22. 如果我想让它过期之后就立马删除,而不是等内存满的时候再删除,你能想想一些方案吗? 23. 我是要扫描所有的Key吗?以及多长时间去扫描一次?你觉得应该怎么设计呢?
《参考解析》
- ReAct范式:指Reasoning + Acting。核心是让LLM在执行操作前先输出推理过程,将复杂的任务拆解为“思考-行动-观察”的循环,通过思维链(CoT)提升Agent解决复杂任务的准确性。
- MCP协议:Model Context Protocol,是连接AI模型与外部数据/工具的标准协议,旨在统一不同工具的接入方式,让Agent能够标准化地访问数据库、API等上下文。
- Redis过期清理:Redis采用“惰性删除+定期删除”策略。若需实现“实时清理”,可考虑使用Redis集群的Pub/Sub订阅Key过期事件,或利用Lua脚本在操作时校验TTL,甚至引入外部消息队列处理过期通知。
- Java接口与抽象类:接口(Interface)侧重于行为约束,支持多实现;抽象类(Abstract Class)侧重于代码复用,拥有成员变量和构造方法。在AI开发中,接口常用于定义工具协议规范。
- AI Coding规范实现:可通过System Prompt(设定Prompt Engineering约束)或自定义IDE插件/拦截器(例如在Git Commit前通过Linter检查代码行数和日志规范)来确保AI生成的代码符合团队标准。