后端开发 / Agent 开发一面面经
完整信息
本篇目录
面试日期:不便透露 10天之内
岗位方向:阿里云
一、整体感受
这场面试和常见的“Agent 应用开发面试”差别很大。
我的项目经历主要集中在 Agent 工作流、LLM 工程化治理和业务本体化,但面试岗位处于更底层侧。面试官从一开始就明确指出:上层 Agent 只是平台的使用方,团队更关心的是模型协议转发、大模型网关、服务发现、流量治理、SSE背压、分片路由、弹性扩容以及 GPU 资源调度等问题。
整场面试最明显的特点是:
- 非常重视系统设计的抽象能力。面试官会不断要求我脱离京东实习的具体项目,设计一个可以承接任意用户、任意模态、任意领域请求的通用 AI 平台。
- 追问不是以知识点为终点,而是持续下压到工程细节。例如从SSE一直追到缓冲区、慢消费者、动态限流、资源水位、连接拒绝和弹性扩容。
- 强调商业目标和资源成本。我一开始只从用户体验和技术流程出发设计系统,面试官提醒我,平台消耗大量GPU、电力和带宽,商业化、计费与成本控制也是系统设计中的核心环节。
- 面试官愿意引导。很多问题并不是要求立即答出唯一答案,而是在观察我能否根据提示修正思路、继续向下推演。
二、面试流程
大致流程如下:
- 自我介绍;
- 了解岗位来源和对阿里云的认识;
- 京东项目深挖;
- 从领域 Agent 扩展到通用 AI 平台的系统设计;
- JSF / RPC 服务注册、发现与调用链;
- SSE、背压、限流和弹性扩容;
- JVM、Java 技术栈和编程语言;
- 在线 Coding;
- 反问与面试官反馈。
三、自我介绍
四、项目与岗位匹配追问
这个岗位是 HR 主动联系你的,还是你自己投递的?
你在大模型调用过程中,做过限流、协议中断或者断线重连吗?
京东所做的项目是内部系统还是对外售卖的系统?
你们的系统处理文本、语音和视频吗?是不是一个全模态系统?
你们是怎么提高识别准确率、降低大模型幻觉的?
如果系统从你们的领域扩展到其他领域,是否还要逐个写 Code 规则?
新增一个领域或 Action,是否一定要写代码上线?
五、通用 AI 平台系统设计
这一部分是整场面试的核心。
面试官给出的场景大致是:
设计一个类似通用搜索框或通用 AI 助手的入口。用户可能输入自然语言,也可能上传具体的文件、合同、图片、语音或视频。系统不能提前知道用户属于哪个固定领域,也不能为世界上每个领域都单独开发一个 Agent。平台需要承接超大规模请求,并完成解析、推理和结果返回。你会如何设计?
我的第一版方案
为什么要做用户自然语言理解?
是否要保留用户历史上下文?
多模态输入应该怎么统一处理?
意图识别之后怎么办?
请求前置“鉴权”应该鉴什么?
设计一个通用 AI 平台时,我漏掉了什么最重要的环节?
六、JSF / RPC 深挖
JSF 服务是怎么注册到注册中心的?Agent 最终怎么调用到后端服务?
Provider 和 Consumer 之间如何发现服务?
一台 Provider 机器有多个网卡,应该向注册中心上报哪个 IP?
面试官如果继续问:
Provider 监听 0.0.0.0,那注册什么?
- 哪些 Consumer 可以调用某个 Provider?是否所有注册上来的服务都能随便调用?
七、SSE、背压与大模型网关
Agent 调用大模型使用什么协议?
不同模型返回速度不一致,或者下游客户端消费很慢,SSE 怎么做背压?
大流量下如何平滑流量,防止 Agent 或网关内存被打爆?
为什么大模型流量不能像普通无状态 HTTP 请求一样随意迁移?
八、JVM 与 Java 基础
讲一下 JVM 的基本原理
京东使用的 JDK 版本是什么?
Java 应用使用什么框架?
还熟悉哪些语言?
九、在线 Coding
题目
给定:
● 一个整数数组 nums,每个元素代表一件商品的价格;
● 一个整数 target,代表预算。
要求:
● 必须选择恰好三件商品;
● 三件商品总价不能超过 target;
● 在满足条件的组合中,使总价尽可能接近 target;
● 输出最优的三件商品总价。
例如预算为 97,如果存在价格为 40、40、17 的三件商品,则最优结果可以是 97。
十、反问环节
十一、完整问题清单
按照面试顺序整理如下:
- 请做一下自我介绍。
- 这个岗位是 HR 主动联系你,还是你自己投递的?
- 你了解这个岗位和阿里云吗?
- 你做过大模型限流、协议中断和断线重连吗?
- 京东项目是内部系统还是对外系统?
- 你们的系统是否处理文本、语音和视频?
- 你负责的候选人总结模块具体处理哪些数据?
- 你们如何降低幻觉和误判率?
- 为什么不能只靠 Prompt 调优?
- 哪些任务交给 Code,哪些任务交给 LLM?
- 如果扩展到别的领域,是否要重新定制代码?
- Ontology 和 Action 如何支持领域扩展?
- 新增 Action 是否需要写代码和重新上线?
- 如何设计一个可以分析简历、财务报表和其他任意文件的通用 AI 入口?
- 用户自然语言理解的输入和输出分别是什么?
- 为什么要做意图标签?
- 通用平台能否为所有领域提前建设 Agent?
- 用户历史上下文是否应该参与当前请求?
- 文本、语音、图片和视频如何统一处理?
- 多模态解析后哪些元数据应该保留?
- 自然语言理解更适合输出标签,还是结构化任务表达?
- 前置鉴权应该校验哪些内容?
- 通用 AI 平台如何进行商业化和变现?
- 免费用户、付费用户和企业客户如何分层?
- JSF 服务如何注册到注册中心?
- Consumer 如何发现并调用 Provider?
- Provider 有多个网卡时,应该注册哪个 IP?
- 如何限制哪些 Consumer 可以调用某个 Provider?
- Agent 调用大模型使用什么协议?
- SSE 和普通 HTTP 返回有什么区别?
- 下游消费慢时,SSE 如何做背压?
- 缓冲区过大和过小分别有什么问题?
- 如何设计会话级缓冲队列?
- 如何根据 CPU、内存、连接数等指标动态限流?
- 资源不足时,应优先拒绝新连接还是断开旧连接?
- 如何处理积压严重的慢消费者?
- 突发流量下如何保护网关和 Agent 系统?
- 如何进行集群弹性扩容和跨分片流量迁移?
- KV Cache 为什么会影响请求迁移?
- 讲一下 JVM 的基本原理。
- 京东项目使用什么 JDK 版本?
- Java 应用使用哪些框架?
- 还熟悉哪些编程语言?
- Coding:从商品价格数组中选择恰好三件商品,使总价不超过预算且尽可能大。
- 代码时间复杂度是多少?
- 你有什么问题想问我?
#牛客AI配图神器#
一句话总结
这场面试不是在考“会不会调用大模型”,而是在考:
当一个平台需要同时承接海量、多模态、跨模型、跨地域的请求时,你能否从协议、连接、流量、状态、资源、成本和商业闭环等多个层次,把整个系统真正设计完整。
本篇目录
当前问题0145
- 01
请做一下自我介绍。
- 02
这个岗位是 HR 主动联系你,还是你自己投递的?
- 03
你了解这个岗位和阿里云吗?
- 04
你做过大模型限流、协议中断和断线重连吗?
- 05
京东项目是内部系统还是对外系统?
- 06
你们的系统是否处理文本、语音和视频?
- 07
你负责的候选人总结模块具体处理哪些数据?
- 08
你们如何降低幻觉和误判率?
- 09
为什么不能只靠 Prompt 调优?
- 10
哪些任务交给 Code,哪些任务交给 LLM?
- 11
如果扩展到别的领域,是否要重新定制代码?
- 12
Ontology 和 Action 如何支持领域扩展?
- 13
新增 Action 是否需要写代码和重新上线?
- 14
如何设计一个可以分析简历、财务报表和其他任意文件的通用 AI 入口?
- 15
用户自然语言理解的输入和输出分别是什么?
- 16
为什么要做意图标签?
- 17
通用平台能否为所有领域提前建设 Agent?
- 18
用户历史上下文是否应该参与当前请求?
- 19
文本、语音、图片和视频如何统一处理?
- 20
多模态解析后哪些元数据应该保留?
- 21
自然语言理解更适合输出标签,还是结构化任务表达?
- 22
前置鉴权应该校验哪些内容?
- 23
通用 AI 平台如何进行商业化和变现?
- 24
免费用户、付费用户和企业客户如何分层?
- 25
JSF 服务如何注册到注册中心?
- 26
Consumer 如何发现并调用 Provider?
- 27
Provider 有多个网卡时,应该注册哪个 IP?
- 28
如何限制哪些 Consumer 可以调用某个 Provider?
- 29
Agent 调用大模型使用什么协议?
- 30
SSE 和普通 HTTP 返回有什么区别?
- 31
下游消费慢时,SSE 如何做背压?
- 32
缓冲区过大和过小分别有什么问题?
- 33
如何设计会话级缓冲队列?
- 34
如何根据 CPU、内存、连接数等指标动态限流?
- 35
资源不足时,应优先拒绝新连接还是断开旧连接?
- 36
如何处理积压严重的慢消费者?
- 37
突发流量下如何保护网关和 Agent 系统?
- 38
如何进行集群弹性扩容和跨分片流量迁移?
- 39
KV Cache 为什么会影响请求迁移?
- 40
讲一下 JVM 的基本原理。
- 41
京东项目使用什么 JDK 版本?
- 42
Java 应用使用哪些框架?
- 43
还熟悉哪些编程语言?
- 44
Coding:从商品价格数组中选择恰好三件商品,使总价不超过预算且尽可能大。
- 45
代码时间复杂度是多少?
