美团 Agent 开发一面:Markdown 没标题怎么切分?
- 轮次
- 一面
- 结果
- 挂
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
行程规划场景题
- 设计一个“智能行程规划 Agent”,用户输入“周末去南京玩两天”,请描述工具编排和异常处理。
- 如果第二天南京下雨了,Agent 怎么应对?
- 如果用户临时想把两天压缩成一天,怎么处理?
- 用户需求模糊,比如“我想找个好吃的”,Agent 怎么多轮澄清?
- 澄清策略是什么?每轮问什么问题?怎么判断澄清结束?
RAG 与检索
- RAG 完整流程是什么?
- Markdown 文档没有标题怎么切分?有没有试过语义切分?
- 切分粒度怎么确定?文档切分策略怎么选、chunk size 怎么定?
- 短 Query(如“降价”)和长 Chunk(如 200 字商品描述)向量化后怎么比较?差异在哪?
- 混合检索中关键词检索和向量检索各有什么优缺点?
- 两路结果怎么融合?RRF 的 k 值怎么设?
- RAG 召回效果不好怎么排查?
电商搜索排序与推荐 Agent
- 设计一个“电商搜索排序 Agent”,用户搜“连衣裙”,怎么设计排序模型?
- 排序特征有哪些?
- 双塔召回和生成式召回各有什么优劣?
- 大模型生成的推荐理由怎么保证吸引人且不重复?
- 用户行为序列怎么高效输入大模型?
- 场景题:用户搜“夏天穿什么”,大模型怎么结合天气、地域、用户画像做个性化推荐?
- 怎么解决大模型推荐中的“信息茧房”?
- 怎么评估大模型生成推荐文案的点击率和转化率?AB 实验怎么设计?
- 商品推荐 Agent(用户画像 + 行为)怎么设计?
工程与成本
- Agent 输出 JSON 怎么做 Schema 校验?
- 记忆压缩怎么实现?怎么保留关键信息?
- 工具调用失败常见原因?怎么优化成功率?
- Agent Token 成本从哪些维度优化?
- 手撕:实现一个简单的双塔召回模型前向传播(PyTorch)。
《参考解析》
1. 行程规划 Agent 的工具编排与异常处理。 编排要分层而不是全丢给模型:意图解析(天数、人数、预算、出发地)→ 规划器产出“天—时段—活动”骨架 → 工具层取真实数据(POI、路线耗时、天气、票务)→ 求解器在约束下排程(位置聚类减少通勤,再按营业时间与天气调整)。约束要显式:一天拆成若干 TimeSlot,模型只从候选 POI 里挑选与排序,代码校验时间不重叠、通勤够、景点在营业。异常分四类:工具超时或空返回(退避重试 + 降级到缓存或同类工具,拿不到就让模型给候选并标注未核实);约束冲突(下雨换室内并说明改了什么);需求变更(两天压一天当约束变更,保留已确认项重新求解,不从头生成);不可满足(讲清哪条做不到,给两三个选项让用户挑)。工程上要幂等可回滚:每次重规划产出新版本行程并保留旧版,下单类调用带 requestId 去重。
2. 多轮澄清策略与结束判据。 澄清是把模糊需求变成可执行约束。槽位分两类:刚性(几天、几人、哪天走)缺了必须问;柔性(口味、预算档)先给默认值再让用户改。追问要一次一组、给选项而不是开放题,每轮 1~2 个问题。判断结束看三个信号:刚性槽位齐全且候选收敛;出现“就这个 / 都行”这类确认语;或连续两轮没有新信息——此时直接给默认方案并邀请纠偏,而不是继续追问。实现上做成状态机:槽位表、已填值与缺失项都是显式数据,模型只负责抽槽位与生成问法,是否继续追问由代码判定,避免模型自问自答式无限澄清。
3. RAG 全流程与无标题 Markdown 切分。 链路是解析、清洗、切分、向量化(并建关键词索引)、检索、融合重排、拼上下文生成、引用与评测。Markdown 没标题时不能按 # 切,可行做法:按空行与段落聚合成语义块再合并到目标长度;滑窗切分并保留 10%20% 重叠;把列表项、表格、代码围栏当弱分隔。更稳的是语义切分:按句切、算相邻句向量相似度、在骤降处断开,再用长度上限兜底,成本更高但适合结构混乱的文档。粒度要用评测反推:固定 top-k 与 prompt,只改 chunk size 与 overlap 看召回率与答案质量,256512 token 是常见起点;每块带父级标题与位置元数据,做到“小块命中、大块喂模型”。
4. 短 Query 与长 Chunk 的向量化差异。 短文本信息少、向量落点泛化,受分词与停用词影响大;长文本语义平均化,多个主题压成一个中心向量,与短 query 的余弦相似度被稀释,于是“短 query 检长 chunk”系统性偏弱。缓解有四条路:查询扩展(同义词、类目词、LLM 改写成完整问句、HyDE);双粒度索引(小块向量 + 文档级向量,命中后上卷);按官方约定给 query 与 passage 加不同前缀(query: / passage:)补齐非对称训练;训练用“短 query—长 passage”正样本对做对比学习。最后用 rerank 交叉编码器精排,它对长度不对称不敏感,能把被稀释的相关性捞回 top-k。
5. 混合检索、RRF 与召回排查。 BM25 强在字面精确(型号、专有名词、数字),可解释、无需训练,弱在同义改写;向量强在语义泛化与跨语言,弱在精确字面,也表达不了“必须包含某词”的硬约束。融合最常用 RRF:对每路结果按排名给 1/(k + rank) 再相加,只用排名不用分数,避开量纲问题。k 越大越平滑、长尾越容易进结果,k 越小越强调各自榜首,60 是稳妥默认,但应与各路召回条数(常 20~50)、进入 rerank 的条数一起做小规模网格评测。硬约束用 filter 表达而不是靠分数。召回排查按五层:答案是否存在于原文;切分是否切断答案;embedding 模型与归一化、索引是否建全;纯关键词、纯向量、混合三路的召回率对比;rerank 是否把正确块挤出 top-k。
6. 电商排序与推荐 Agent 的设计与评估。 链路是召回(双塔、关键词、图)→ 粗排 → 精排 → 重排(多样性、业务约束)。特征五类:query 与商品文本匹配、类目属性匹配、商品统计(销量、评分、转化)、用户画像与实时行为、上下文(时间、地域、天气)。双塔可预计算、效率高但交互弱;生成式召回语义与长尾更强,但训练成本高、可控性差,线上通常混用。推荐理由要兼顾吸引力与不重复:留结构化槽位(场景 + 属性 + 收益)、用商品真实属性做事实校验防幻觉、n-gram 去重与句式轮换。行为序列不要把全量塞 prompt:近期 N 条做结构化摘要进上下文,更长序列交给序列模型或检索式召回。信息茧房靠探索位、重排打散、覆盖度与新颖度指标治理。AB 实验要分流稳定、算清样本量与最小可检测效应、主指标之外配护栏指标(退货、投诉)。