百度 AI Agent 开发 二面

1、自我介绍

2、我看你做了3个项目, 讲一下你觉得最具代表性的项目

3、项目的Agent怎么设计的

4、Agent 基于什么框架

一般会基于 LangChain 或者 LangGraph 这类框架来实现。如果任务流程比较线性,比如“识别任务 -> 调工具 -> 汇总结果”,LangChain 就够用,因为它比较适合快速搭建工具调用链路和 Prompt 编排。如果任务流程里状态比较多、分支比较复杂,比如失败重试、条件跳转、多轮状态推进、人工确认节点这些,LangGraph 更合适,因为它本质上是图结构编排,更容易描述有状态的 Agent 工作流。

如果是校招项目或者实习项目,比较常见的做法是:底层模型调用、Prompt 模板、输出解析、工具封装用 LangChain,状态控制和复杂分支用自己代码补充;如果项目更完整一点,就会直接用 LangGraph 组织整个流程。

5、LangChain 有哪些常用工具

LangChain 常用的能力主要有 PromptTemplate、LLM、OutputParser、Memory、Retriever、Tool、Agent、Chain 这些。PromptTemplate 用来管理 Prompt 模板;LLM 是模型调用接口;OutputParser 负责把模型输出解析成结构化格式;Memory 用来做对话历史管理;Retriever 用来接知识库检索;Tool 用来封装外部能力,比如搜索、数据库、OCR、接口调用;Agent 负责决定何时调用工具;Chain 用来把多个步骤串起来。

如果是做 RAG,常用的是文本切分、Embedding、向量库检索和 Retriever。如果是做 Agent,常用的是 Tool、AgentExecutor、PromptTemplate、OutputParser 这些组件。

from langchain.tools import tool

@tool
def query_expense_policy(keyword: str) -> str:
    """查询差旅报销制度"""
    if "机票" in keyword:
        return "机票报销需提供行程单和发票"
    if "酒店" in keyword:
        return "酒店报销需提供发票和入住明细"
    return "未查询到相关制度"

print(query_expense_policy.invoke("机票报销"))

6、模型微调经验、微调参数、训练轮次、模型输入输出

如果做过微调,一般是基于现成预训练模型做监督微调,不会从零训练底座模型。微调目标通常有两类,一类是让模型更适配业务场景,比如报销问答、票据理解、知识库问答;另一类是让模型在固定格式输出、工具调用、指令跟随上更稳定。

训练数据一般是指令数据或者问答数据。输入通常是 system prompt、用户问题、上下文信息、工具返回结果这些;输出通常是 assistant 需要生成的目标答案,或者固定 JSON 结构。

训练参数上,常见设置是学习率在 (1e^{-5}) 到 (5e^{-5}) 之间,batch size 结合显存决定,常配合梯度累积,训练轮次一般是 2 到 5 轮。因为指令微调数据通常没有预训练那么大,轮次不会特别高,更多是靠数据质量和任务定义来控制效果。如果是 LoRA 微调,还会有 rank、alpha、dropout 这些参数。比如 rank 常见是 8、16 或 32,dropout 常见是 0.05 左右。

输入输出的本质可以理解成:输入是“问题 + 上下文 + 任务约束”,输出是“目标回答或目标结构”。训练时通常只对 assistant 的回答部分计算 loss,用户输入和系统提示只是条件,不参与监督。

sample = {
    "instruction": "根据用户上传的票据和OCR结果,判断是否可以提交报销",
    "input": {
        "user_query": "帮我看下这次出差材料能不能报销",
        "ocr_text": "机票行程单 金额1200 日期2025-03-01",
        "policy": "机票报销需提供行程单和发票"
    },
    "output": {
        "status": "缺少材料",
        "missing_fields": ["发票"],
        "message": "当前缺少发票,暂时不能提交报销"
    }
}

7、什么是 RAG,和直接让大模型回答有什么区别

RAG 是 Retrieval-Augmented Generation,中文叫检索增强生成。它的核心思想是在模型生成答案之前,先去外部知识库检索相关内容,再把检索结果连同用户问题一起交给模型生成答案。

和直接让大模型回答相比,RAG 的优势主要在三个方面。第一,知识更新更灵活,不需要每次更新知识都重新训练模型;第二,可以接入企业私有知识,解决大模型参数里没有这部分内容的问题;第三,可以减少模型幻觉,让回答尽量基于检索结果而不是纯凭参数记忆生成。

一个标准 RAG 流程一般包括文档清洗、切分、向量化、建索引、召回、重排和生成。其中真正影响效果的关键点不只是检索到了,而是切分是否合理、召回是否准确、重排是否有效、Prompt 是否限制模型必须参考检索结果。

8、Agent 和普通工作流有什么区别

普通工作流通常是固定流程,节点和调用顺序提前写死,输入到输出的路径比较明确。Agent 则更强调自主决策能力,模型会根据当前任务、上下文和工具结果来决定下一步做什么。

比如一个固定工作流可能写成:收到用户输入后先 OCR,再分类,再抽取,再返回结果。而 Agent 会先判断用户是否真的要走附件解析流程,还是只想查询报销制度;如果材料缺失,还可能选择先询问补充信息,而不是继续往下执行。

简单说,工作流更偏确定性执行,Agent 更偏基于上下文的动态决策。在实际工程里,这两者通常是结合使用的:主流程用工作流保证稳定,局部决策交给 Agent 提升灵活性。

9、Function Calling 是什么

Function Calling 本质上是让大模型不直接生成最终答案,而是先生成一个结构化的函数调用请求,包括调用哪个函数、传什么参数,然后由程序真正执行函数,再把执行结果返回给模型或者直接返回给用户。

它适合做那些需要外部信息或者外部操作的场景,比如查天气、查数据库、调用业务系统接口、执行搜索、创建订单、查询报销记录等。如果不使用 Function Calling,而只是让模型自由生成,它可能会编造函数参数或者直接幻觉出结果。用了

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

AI-Agent面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论
同学很优秀,看面经跟我们在招聘的岗位比较符合,想要投下拼多多试试吗?多一次投递,可能就多一个offer,多一个选择。
点赞 回复 分享
发布于 昨天 16:59 上海

相关推荐

03-11 20:19
已编辑
门头沟学院 Java
太压力了,面了2个多小时,本菜比已经被拷打的瑟瑟发抖面完两个小时后通知过了1.算法题三道(1)leetcode124 二叉树中最大路径和hard题 因为不久前才刷过撕出来了,又来了一道(2)leetcode 300 最长递增子序列变种除了递增之外还加了一个权重因素,但是思路没变,dp就行(3)寻找词汇库里符合固定长度前缀的匹配单词应该是他们自己题库的题。给了一串单词列表,然后又给了一个单词,一个下标,根据这个下标的前缀去单词列表里面找到所有匹配的单词再返回思路是创建一个单词前缀树,然后根据树找,但是可能是构件树数有问题没撕出来2.全方位项目拷打基本没有问八股,全部都是项目企业场景题,哎哟我操,完全不会。我就纯八股战士,结果没想到一道八股都没问反正尽可能把企业场景往八股上引吧。。1. 微服务多点部署其中一个宕机了怎么办2. 要是mq占据大量CPU该怎么排查?MySQL占据大量CPU该怎么排查?3. 假如说让你实现视频点赞功能,你打算怎么设计?讲讲思路(我知道多级缓存,但是碰巧没背……寄)4. Redis延迟双删是什么,分布式锁,哨兵模式5. MySQL到es同步的延迟该怎么优化6. Rabbit mq的队列是怎么实现的?(这个完全没整明白,可能是队列的底层结构? 反正我硬扯的讲了一下rabbit mq的架构)还扯了很多,但是往后完全就慌了),记住的是这些
不知道怎么取名字_:2小时确实有压力,持续性的脑力劳动啊
查看9道真题和解析
点赞 评论 收藏
分享
一共一个小时,面试难度以及自己的回答算是最近的面试压力比较大的,实习问了30分钟,中间穿插八股。1.redis数据结构2.redis持久化机制3.mysql索引底层4.聚簇索引与非聚簇索引5.索引优化6.索引失效7.mysql执行一条sql8.那么多索引mysql怎么选(不会)9.tcp与udp区别10.tcp为什么可靠11.消息队列作用12.kafka怎么保证消息有序性13.mcp是什么?14.skills是什么?15.jvm内存分配与回收过程(我讲了从创建对象到判断垃圾对象到垃圾回收我全说了一遍,是这个吗?)16.fullgc触发机制17.tcp的拥塞控制流程(不会了)18.分布式事务解决方案,说了2pc,3pc,tcc。算法是反转双向链表,没有按格式输出,但是面试官没让继续写了,面完以为挂了,结果晚上秒过,看看复试什么情况吧。今天百度打电话准备发offer了,业务跟在手子的差不多,很垂,并且说不分日常暑期,只看表现,会有转正机会,但是考虑再三还是拒绝了,百度实习薪资确实有点低,title也不如之前了,但是面试的二位业务老师我很喜欢,对我的评价也不错,希望之后能有机会共事。从三月份到现在一共面了六家,面试次数总共是8场,情况如下:脉脉二面(无答复,默认挂)百度二面已oc美团一面过,下周一二面shein一面过直接HR面游族一面过直接HR面腾讯一面过等待约二面滴滴明天一面面试通过率还是蛮高的,但是大部分都是日常,感觉对我现在的加成不大,大概率不会去,不知道暑期会是什么情况呢唉,希望能有面试吧,继续加油。字节被无hc直接取消了,现在还没人捞,有没有字节HR救救我
不管什么都不想跳动了:本人美团百度快手都待过,建议肯定是直接留快手多一点产出后转正or直接冲字节腾讯暑期吧。一是快手从福利到基建都吊打另外两家。美团现在这个业务比较惨,本来毛利就很低,亏损严重,今年很可能要优化人力降低成本,去了别说日常,就算暑期后面都很可能被优化。百度其实实习生权限挺高的,可以接触到一些含金量高的项目,但是现在的风评不如之前了,薪资也不高。二是转正概率和薪资是跟产出挂钩的,你都在手子已经积累产出了,去其他家日常实习产出都是从0开始,肯定不可能有你在手子转正可能性大啊,现在日常压根没必要去,而且我有两个师弟都是在快手日常转正的,不用太担心,安心留在手子一边多做一点产出然后一边冲字节腾讯暑期,字节腾讯今年实习岗位非常多的,不如好好把握这个,加油。
今天你投了哪些公司?
点赞 评论 收藏
分享
评论
点赞
9
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务