阿里云二面面经:Agent 框架选型、工具权限隔离与上下文压缩
- 轮次
- 二面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
二面
- 这个 Agent 的用户群体是谁?内部哪些角色在使用,分别用来做什么?
- Agent 的业务背景、业务价值是什么?
- 你在这个项目中具体承担哪些工作?
- 项目为什么选用 LangGraph + Deerflow 框架?
- 除了 LangGraph/Dearflow,你还了解哪些 Agent 框架?
- Agent 工具的权限隔离怎么做?什么场景需要切换权限?
- 群聊和私聊会话的上下文有什么区别?长期记忆是如何处理的?上下文压缩策略是什么?
- Agent 调用工具时做了哪些异常、超时、重试处理?模型是怎么做负载/排队调度的?
- 讲一个你实习遇到的线上意外问题,发生原因、怎么解决的?
- 这个 Agent 开发最大的工程难点是什么?
- 项目团队规模、日常任务量、服务用户规模大概是什么情况?
- 项目 2:讲下整体设计。
- 你的研究方向介绍一下
- 对自己的评价:业务理解、编程能力分别怎么样?
- 你平时怎么学习新技术?是看概念、看博客,还是会去读源码?
- 你会主动去啃开源框架源码吗?举例说明。
《参考解析》
-
框架选型别只报名字,要给判断维度:LangGraph 的价值在于把流程显式建成图/状态机——节点、边、条件分支、检查点(checkpoint)都可持久化,适合「流程可控但要动态分支」的 Agent;纯 ReAct 循环适合轻量问答,一旦要人工审批、要断点续跑、要并行分支就撑不住了。答选型时给一组维度:编排能力(条件分支、循环、并行)、状态与持久化(能不能中途落库续跑)、可观测与调试、工具生态与接入成本、团队熟悉度与社区活跃度。至于其他框架,能讲清 Dify/Coze 偏低代码编排、AutoGen 偏多智能体对话、CrewAI 偏角色协作、原生 SDK 偏自定义,各占什么位置就够了。
-
工具权限隔离怎么做:核心是「模型不能自己决定自己有多少权限」。做法是——身份与权限不放在 prompt 里让模型遵守,而是服务端从会话上下文里取当前用户与场景,映射成一组允许调用的工具白名单,未授权的工具在注册表层面就不暴露给模型;每次工具调用前做一次后端校验(谁在什么场景、要对哪个资源做什么操作),高风险写操作要求显式确认或走审批流;数据侧做租户与行级隔离,工具拿不到越权数据;全过程留审计日志(谁、何时、调了什么、参数与结果摘要)。需要切换权限的典型场景是角色变化(员工 / 管理者)、会话类型变化(群聊里能看的和私聊不同)、以及跨租户的代操作,切换要发生在服务端而不是靠模型自述。
-
群聊和私聊的上下文差异与长期记忆:私聊是一对一连续对话,上下文天然属于同一条主线;群聊是多主体交织的流,必须先把「谁在说、说给谁」解析出来,再决定哪些信息进入当前任务上下文——否则 A 的需求会被 B 的话污染。工程上给每个会话一个隔离的上下文存储,群聊里再按「话题片段」切分并标注参与者。长期记忆只存稳定、可复用、有明确出处的内容(用户偏好、固定身份信息、历史结论),写入走结构化抽取 + 去重 + 冲突处理(新覆盖旧并保留时间与来源),并设 TTL 与定期复核,避免过期信息污染判断。
-
上下文压缩策略:分层来做——最近的 N 轮保留原文;更早的历史做摘要,但摘要只压缩闲聊和已完成的中间过程,关键实体(单号、金额、时间、用户显式约束)永远保留原文;工具返回的内容按相关性裁剪,只留与当前子目标相关的片段,长文档走检索而不是整段塞进上下文。再往上可以给上下文分配 token 预算(系统指令 / 硬约束 / 历史摘要 / 检索证据各占多少),超预算时按优先级丢最不重要的部分。判断压缩做得好不好,看的是「压缩之后任务成功率有没有掉」,所以要留一个固定用例集做回归。
-
工具调用的异常、超时、重试与模型排队调度:先把错误分类——可恢复(超时、限流、临时不可用)走指数退避重试,且必须有次数上限和总耗时上限;不可恢复(参数错、权限不足、资源不存在)不要重试,直接失败并把原因回填给规划模块;重试要幂等(带 request_id),避免重复下单这类副作用。模型侧的负载/排队调度讲的是:请求进队列按优先级与配额分发、对单个上游渠道限流并做熔断、多渠道路由与降级(主模型不可用切备用)、按任务复杂度选模型而不是一律用大模型,同时记录排队时长与 P99 延迟做容量评估。
-
「讲一个线上意外」怎么讲:用固定结构——现象(谁在什么时候发现、影响面多大)、定位过程(看了哪些日志与指标、怎么把范围缩小)、根因、修复动作(先止损再根治)、以及事后改了什么(监控、告警、流程、测试)。挑一个你真参与过的、有一定技术含量的例子,别选「重启一下就好了」这种。收尾时补一句「后来我加了什么监控」,面试官对这句的反应通常最正面。