刚面完阿里国际的agent开发岗,趁热把面试题记下来。说实话,面完那一刻我有点懵——不是题难,是那种“你会但差一点点”的遗憾感,最难受。

下面是我还记得的问题,有些答得好,有些答得不好,都写出来给大家参考。

一、LangChain和LangGraph到底有啥区别?

面试官问的第一个技术问题就是这个。

我说,LangChain像是一个工具箱,里面有各种链、各种工具、各种模板,帮你快速搭一个单Agent应用。你写代码的时候,思路是线性的:用户输入 → 调一个工具 → 调LLM → 输出。

LangGraph不一样。它是在LangChain基础上做的图结构编排框架。你的任务可以分叉、可以循环、可以有条件跳转。比如一个场景:先让AgentA规划,然后AgentB执行,执行完让AgentC检查,检查不通过就回到AgentA重新规划。这种逻辑在LangChain里写起来特别别扭,但在LangGraph里就是加一条边的事。

面试官追问了一句:“那你觉得哪个更好?”

我说没有更好,看场景。简单任务用LangChain够用,复杂协作必须上LangGraph。面试官点了点头,没继续追问。

二、LangGraph踩过什么坑?

这个问题我回答得不太好,因为项目里踩的坑太多,一时不知道说哪个。

我选了最疼的一个:状态管理。

LangGraph里每个节点都能读写一个共享的state对象,但不同节点是并发执行的。有一次我发现,两个节点同时修改state里同一个字段,后执行的直接把先执行的覆盖了,完全没有警告。

解决方式是在节点里做“合并写”,不要直接覆盖,而是判断一下这个字段是不是已经被别的节点改过了。

面试官听完说:“这是LangGraph的已知问题,你能自己发现并解决说明真的用过。”

三、RAG原理和Embedding模型怎么选的?

先说原理

RAG就是先搜后读。用户问一个问题,先去知识库里找相关的段落,然后把问题和这些段落一起丢给大模型,让它照着搜到的信息回答。

Embedding模型

我项目里用的是text-embedding-3-small,主要原因是便宜且够用。但我也对比过两个方案:

方案 优点 缺点
text-embedding-3-small 成本低、速度快 中文语义理解一般
BAAI/bge-large-zh 中文效果好 需要自己部署,延迟高
混合检索(Embedding+BM25) 召回最稳 实现复杂,两套系统

最后选了small,因为项目对成本敏感,而且业务场景对召回率要求没那么极端。

面试官追问:“你说embedding模型对比过,具体怎么对比的?”

我说做了一个小测试集,人工标注了50个问题和对应的正确答案段落,然后算每种方案的Hit Rate(召回率)。small是82%,bge是89%,差7个百分点,但small的API调用成本是bge自部署的1/10,所以选了small。

四、上下文压缩怎么做?各有什么优劣?

这是RAG里的经典问题。检索回来的段落可能很长,直接塞进prompt会超过token限制,所以需要压缩。

我试过三种方式:

方式一:截断

直接取每段的前500个字。简单粗暴,但可能丢掉后面的关键信息。

方式二:重排序+截断

先让一个轻量模型给每个段落打分,把分数高的放前面,然后截断。这样至少保证重要的内容在前面,不会被切掉。

方式三:LLM摘要压缩

把每个段落单独丢给小模型生成一句话摘要,然后把这些摘要拼起来。优点是信息密度高,缺点是会丢失细节,而且多一次LLM调用增加延迟。

面试官问:“你觉得哪种最好?”

我说看业务。客服场景用户问“怎么退货”,细节很重要,截断可能把“需要订单号”这条信息切掉,所以我用重排序+截断。如果是做新闻摘要,用LLM压缩效果更好。

五、Fallback怎么做的?

大模型调用不可能100%成功,所以必须有降级方案。

我设计的fallback分三层:

第一层,重试。网络抖动导致的失败,重试一次就能好。

第二层,换模型。主模型用的是GPT-4,如果一直超时,就切到Claude或者本地部署的Qwen。虽然效果差一点,但至少能返回结果。

第三层,兜底话术。如果所有模型都挂了,返回“系统繁忙,请稍后再试”。这个话术虽然没用,但比报错好。

面试官追问:“你怎么判断‘失败’?超时还是返回空?”

我说两个都算。超时阈值设的30秒,超过就算失败。返回空或者返回“我不确定”这种无效回答也算失败,会触发fallback。

六、AgentState的作用是什么?为什么不用全局变量?

这个问题我在LangGraph踩坑那部分已经提过,面试官专门拎出来细问了。

AgentState是一个贯穿整个graph的共享对象,每个节点都能读和写。

# 伪代码示例class AgentState(TypedDict):    messages: List[BaseMessage]    current_step: str    intermediate_results: dict

为什么不用全局变量?

三个原因:

第一,全局变量在多线程环境下不安全。LangGraph的节点可能是并发执行的,两个节点同时修改同一个全局变量,结果不可预测。

第二,全局变量没法回溯。你改完就改完了,没有历史记录。但AgentState每次更新都可以保存快照,方便调试和重放。

第三,全局变量不支持图结构特有的“条件恢复”。比如你的图执行到一半挂了,从上一个checkpoint恢复时,全局变量的状态已经丢了,但AgentState可以从序列化的快照里原样恢复。

面试官听完说了句“不错”,没有继续追问。

七、整体的失败重试机制怎么设计的?

这个问题范围比较大,我把三个层面的重试都说了一遍。

Node层

每个节点执行失败,会重试3次,间隔2秒、4秒、8秒递增。3次都失败就标记这个节点为“失败”,整个graph暂停,发告警。

RAG链层

检索失败(比如向量数据库超时),会降级到关键词检索(BM25)。BM25也失败的话,返回空召回集,让模型用自身知识回答。

Tool层

工具调用失败,比如调天气API返回500,会重试2次。还失败就返回“工具暂时不可用”,并且把这个信息写回给LLM,让LLM告诉用户“查不了天气”。

面试官问:“你有没有考虑过部分失败的情况?比如RAG召回了3段,其中1段对应的文档源挂了?”

我说这个场景没考虑到,真要处理的话可以给每段召回加一个“可用性”标记,不可用的段落直接丢掉,不参与后续生成。面试官说这是个好方向,可以想想。

八、Transformer原理和多头注意力

这部分问得比较基础,但也细。

Transformer,简单说就是“Attention is all you need”那篇论文提出的架构。它不依赖RNN的循环结构,全靠注意力机制捕捉序列中不同位置的关系。

多头注意力,可以理解为让模型从多个角度观察同一段文本。

举个例子。“他打篮球打得好,但他受伤了”这句话里的两个“他”,指向同一个人。一个注意力头可能关注“篮球”和“打”的关系,另一个头关注“受伤”和“他”的关系。多个头并行计算,最后把结果拼在一起。

面试官没再追问,应该是觉得基础过关了。

九、实习IM项目的实现

一个即时通讯系统的后端,支持单聊、群聊、已读回执、离线消息。

我负责的是消息可靠性保证,核心是两件事:消息不丢、消息不重。

消息不丢靠“先存后发”。用户发消息,服务器先写进数据库,状态标记为“发送中”,然后再推给接收方。接收方收到后回一个ack,服务器再把状态改成“已送达”。

消息不重靠客户端生成的唯一消息ID,服务端用这个ID去重。同一个ID的消息如果收到两次,第二次直接忽略。

面试官问:“群聊的已读回执怎么做的?1000人的群,每人读一下你都要存吗?”

我说存,但是存的是“最后已读位置”。每个用户只记录自己读到了哪条消息,而不是记录每条消息的已读状态。这样已读回执的存储量从O(M×N)降到了O(N)。

十、实习Agent客服项目的RAG与回答生成

这个项目是把RAG用在了电商客服场景。

RAG实现

知识库是商品FAQ、退货政策、优惠券规则这些文档。用户问“这个手机能7天无理由退货吗”,先检索“7天无理由+退货条件”相关的文档段落,然后把这些段落拼进prompt,让大模型生成回答。

回答生成

不只是把检索结果直接贴给用户。检索回来的可能是“7天无理由退货适用于未激活的商品”,但用户问的“这个手机”是不是已经激活了?需要从对话历史里找。

所以生成阶段有两步:

  1. 判断用户问题里是否缺少关键信息(比如是否激活)
  2. 如果缺少,反问用户,而不是瞎回答

面试官问:“你怎么判断‘是否缺失关键信息’?”

我用了最笨但有效的办法:写规则。把每个业务场景的必需字段列出来,比如退货场景必须有“订单号+商品状态”,缺一个就触发反问。当然这个方案不够智能,但电商场景业务清晰,规则够用。

十一、魔改LangGraph项目的记忆系统设计

这是我个人项目里最花时间的一块。

LangGraph原生支持短期记忆(通过AgentState传messages),但长期记忆需要自己搞。

我设计的记忆系统分三层:

工作记忆:当前会话的所有对话,存在内存里,会话结束就清空。

情景记忆:用户的历史行为,比如“上次问过空调怎么清洗”、“之前点过外卖到某个地址”。存在向量数据库里,按用户ID分桶。

语义记忆:从情景记忆里总结出来的抽象知识,比如“用户偏好便宜的商品”、“用户不喜欢等太久”。这个是定期用LLM从情景记忆里抽取的。

记忆的写入时机不是每轮都写,而是当LLM判断“这条信息未来可能有用”时才写。判断逻辑是用一个轻量模型打分,超过阈值才存储。

面试官追问:“你怎么解决记忆过时的问题?”

我说加了一个衰减机制。每条记忆有个权重,每次会话如果没用到它,权重就衰减一点。权重低于阈值就删掉。比如用户半年前说“喜欢黑色”,但最近三个月都在买白色,那条“喜欢黑色”的记忆就会被淘汰。

最后的手撕代码

二叉树蛇形遍历,leetcode第103题。

两分钟写出来了,核心逻辑就是层序遍历+翻转奇数层。但面试官让我自己构造一棵二叉树来跑测试,我脑子短路了——怎么new节点、怎么挂左右子树,居然卡住了。

# 我能写出来的是这个def zigzagLevelOrder(root):    if not root:        return []    res = []    queue = [root]    left_to_right = True    while queue:        level_size = len(queue)        level = []        for _ in range(level_size):            node = queue.pop(0)            level.append(node.val)            if node.left:                queue.append(node.left)            if node.right:                queue.append(node.right)        if not left_to_right:            level.reverse()        res.append(level)        left_to_right = not left_to_right    return res# 但构造二叉树我写不出来 😭

面试官说“没事,算法思路是对的”,但我感觉这里扣分了。

出来复盘才发现,构造二叉树不就是递归吗:

def build_tree_from_list(arr, i):    if i >= len(arr) or arr[i] is None:        return None    root = TreeNode(arr[i])    root.left = build_tree_from_list(arr, 2*i+1)    root.right = build_tree_from_list(arr, 2*i+2)    return root

可惜面试的时候就是没想到。

0 AI行业迎来前所未有的爆发式增长:从DeepSeek百万年薪招聘AI研究员,到百度、阿里、腾讯等大厂疯狂布局AI Agent,再到国家政策大力扶持数字经济和AI人才培养,所有信号都在告诉我们:AI的黄金十年,真的来了!

在行业火爆之下,AI人才争夺战也日趋白热化,其就业前景一片蓝海!

我给大家准备了一份全套的《AI大模型零基础入门+进阶学习资源包》,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。😝有需要的小伙伴,可以VX扫描下方二维码免费领取🆓

在这里插入图片描述

人才缺口巨大

人力资源社会保障部有关报告显示,据测算,当前,****我国人工智能人才缺口超过500万,****供求比例达1∶10。脉脉最新数据也显示:AI新发岗位量较去年初暴增29倍,超1000家AI企业释放7.2万+岗位……

单拿今年的秋招来说,各互联网大厂释放出来的招聘信息中,我们就能感受到AI浪潮,比如百度90%的技术岗都与AI相关!
图片

就业薪资超高

在旺盛的市场需求下,AI岗位不仅招聘量大,薪资待遇更是“一骑绝尘”。企业为抢AI核心人才,薪资给的非常慷慨,过去一年,懂AI的人才普遍涨薪40%+!

脉脉高聘发布的《2025年度人才迁徙报告》显示,在2025年1月-10月的高薪岗位Top20排行中,AI相关岗位占了绝大多数,并且平均薪资月薪都超过6w!

在去年的秋招中,小红书给算法相关岗位的薪资为50k起,字节开出228万元的超高年薪,据《2025年秋季校园招聘白皮书》,AI算法类平均年薪达36.9万,遥遥领先其他行业!

图片

总结来说,当前人工智能岗位需求多,薪资高,前景好。在职场里,选对赛道就能赢在起跑线。抓住AI风口,轻松实现高薪就业!

但现实却是,仍有很多同学不知道如何抓住AI机遇,会遇到很多就业难题,比如:

❌ 技术过时:只会CRUD的开发者,在AI浪潮中沦为“职场裸奔者”;

❌ 薪资停滞:初级岗位内卷到白菜价,传统开发3年经验薪资涨幅不足15%;

❌ 转型无门:想学AI却找不到系统路径,83%自学党中途放弃。

他们的就业难题解决问题的关键在于:不仅要选对赛道,更要跟对老师!

我给大家准备了一份全套的《AI大模型零基础入门+进阶学习资源包》,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。😝有需要的小伙伴,可以VX扫描下方二维码免费领取🆓

在这里插入图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐