阿里 Agent 开发暑期实习一面
本场面试题
- 语义检索与向量数据库分别承担什么?
- 模型输出怎样满足业务规则?
- 多轮、多会话 Memory 怎样设计?
- 上下文管理如何优化?
面经与参考答法
阿里 Agent 开发暑期实习一面
作者记录这轮一面的面试时间为 8 月 2 号,原文日期文字未注明年份;该时间为作者自述,未独立证实。
这轮一面以项目深挖为主,从 Agent 主流程继续追问调优、语义检索、框架选型、结构化输出、记忆、容错和上下文管理,最后只记录为一道贪心题。
同一原问涉及多个既有专题时,下方分列复习入口;它们不代表新增独立题目或面试流程。题后的回答均为整理教学,不是候选人现场作答。
(1)怎样介绍 Agent 项目的架构和技术栈?
(1)怎样介绍 Agent 项目的架构和技术栈?
关联知识点待核实。
先说明用户目标和系统边界,再按入口、编排、模型、工具、检索、状态存储与观测画出主链路。技术栈选择要对应约束,例如图式编排用于分支与恢复,向量库用于语义召回,关系库存业务真相。明确本人负责的模块,并用成功率、P95 延迟、单任务成本和故障恢复时间证明效果。
(2)Agent 的完整流程是什么?
(2)Agent 的完整流程是什么?
关联知识点待核实。
请求经过鉴权和输入校验后建立 run,加载短期状态与必要记忆;规划或路由节点选择下一动作,工具执行器校验权限并调用,结果验证后写入状态,循环到满足成功条件、不可恢复失败或预算耗尽。外部写操作必须幂等,关键节点保存检查点,高风险操作设置人工确认。
(3)Agent 常见优化手段有哪些,怎样证明调优有效?
(3)Agent 常见优化手段有哪些,怎样证明调优有效?
关联知识点待核实。
先从真实失败轨迹分类:上下文缺失就优化检索与压缩,工具误选就改描述和候选路由,参数错误就加强 Schema 与校验,路径震荡则增加状态、重复检测和终止条件。随后在固定任务集做单变量对照,比较完成率、步骤正确率、平均轮次、延迟和成本。场景题也沿用“目标—约束—失败窗口—方案—验证”回答。
(4)语义检索与向量数据库分别承担什么?
(4)语义检索与向量数据库分别承担什么?
文档经清洗和切分后由 embedding 模型映射为向量,查询向量与候选通过余弦相似度或内积近邻搜索。向量数据库负责存储向量及元数据、构建 ANN 索引、过滤权限并返回候选;它不负责保证答案正确。生产系统还需关键词混合检索、重排、版本化索引与离线评测。
(5)同一原问的复习入口(向量数据库选型):语义检索与向量数据库分别承担什么?
文档经清洗和切分后由 embedding 模型映射为向量,查询向量与候选通过余弦相似度或内积近邻搜索。向量数据库负责存储向量及元数据、构建 ANN 索引、过滤权限并返回候选;它不负责保证答案正确。生产系统还需关键词混合检索、重排、版本化索引与离线评测。
延伸阅读:Embedding 与语义向量、向量数据库选型。
(5)为什么选择 LangChain 或 LangGraph,底层流程是什么?
(6)为什么选择 LangChain 或 LangGraph,底层流程是什么?
关联知识点待核实。
LangChain 提供模型、Prompt、检索器和工具等通用抽象;LangGraph 更适合把有状态、可分支、可循环的流程表示为图,并在步骤边界保存检查点。选型依据是流程复杂度、恢复、可观测性和团队维护成本。底层仍是读取 State、执行 Node、按 Edge 决定后继并合并状态,简单线性流程没有必要强行上图。
相关机制阅读(不计专题频次):工作流状态、检查点与断点续跑。框架与多会话原问可参考 State、thread/checkpoint 和跨 thread Store;原帖未问持久工作流 replay 或 Saga 专项。
(6)模型输出怎样满足业务规则?
(7)模型输出怎样满足业务规则?
优先使用 JSON Schema 或类型模型定义输出,模型生成后由服务端解析、校验枚举、范围和跨字段约束;失败时把精确错误反馈给模型做有限次数修复。涉及权限、金额、状态流转等规则必须由确定性代码裁决。自由文本可再做敏感信息、引用和安全检查,并保留原始输出供审计。
延伸阅读:工具结果校验、解析与反馈。
(7)多轮、多会话 Memory 怎样设计?
(8)多轮、多会话 Memory 怎样设计?
消息、摘要和未完成任务按 sessionId 隔离;长期偏好与事实按用户和租户隔离。每次只检索与当前目标相关的少量记忆,并记录时间、置信度和原始证据。写入前去重,冲突时保留版本或请求确认,过期信息按 TTL 或显式遗忘删除。数据库中保存结构化真相,向量索引只做检索入口。
延伸阅读:短期记忆、长期记忆与检索。
(8)系统异常时如何容错?
(9)系统异常时如何容错?
关联知识点待核实。
为模型、检索和工具分别设置超时、有限重试与指数退避,只重试幂等操作;持续失败时切换备用模型、降级为确定性流程或转人工。断路器防止故障扩散,检查点支持恢复,结构化日志和 trace 关联 run 与 tool call。外部副作用要用幂等键、事务或补偿处理“执行成功但状态未保存”的窗口。
(9)上下文管理如何优化?
(10)上下文管理如何优化?
把系统规则、用户目标、计划、证据和历史消息分区预算;保留不可丢约束与最新工具结果,对已完成过程摘要,对可重取内容只留引用。检索内容先去重和重排,避免“窗口越大越塞”。压缩后校验关键需求是否仍在,并通过长对话回归集检查事实遗漏与指令漂移。
延伸阅读:上下文工程。
(10)贪心算法题应怎样作答?
(11)贪心算法题应怎样作答?
关联知识点待核实。
原记录只写了“贪心相关”,没有题面、输入输出或约束,因此不能虚构某道常见题。现场应先识别局部选择,说明它为什么不会破坏全局最优,常用交换论证或保持领先法证明;若无法证明,就要考虑动态规划。最后给出复杂度,并用反例检查排序规则和边界条件。