百度 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协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论
27届拼多多实习机会或看我主页 https://careers.pddglobalhr.com/campus/intern?t=4OmKPVeX9a
点赞 回复 分享
发布于 03-31 21:51 上海
加油
点赞 回复 分享
发布于 03-27 09:32 北京
同学很优秀,看面经跟我们在招聘的岗位比较符合,想要投下拼多多试试吗?多一次投递,可能就多一个offer,多一个选择。
点赞 回复 分享
发布于 03-13 16:59 上海

相关推荐

一、先破题:面试官到底想听什么?别上来就念定义,先抓核心:他想知道你懂不懂 RAG 的本质、会不会落地、他想看到你的深度思考。一句话开场就能拉好感:“RAG 本质就是给大模型‘外挂知识库’,让它先查资料再回答,既不用重新训模型,又能减少幻觉,特别适合企业私有数据场景。”二、核心回答框架:3 步讲 RAG 全流程1️⃣ 先讲原理:为什么要用 RAG?传统大模型的知识全靠预训练,新数据、企业内部数据它根本没见过,一问就容易瞎编。RAG 的思路很朴素:生成答案前先去外部知识库搜一遍,把相关资料塞给模型当参考,让它 “照着资料说”。这样既避免了微调的高成本,又能保证答案基于真实数据,还能随时更新知识库,很灵活。2️⃣ 再讲落地:项目里怎么搭 RAG 链路?别只说 “召回 - 过滤 - 生成”,要讲具体做了什么、用了什么工具,显得你真干过:第一步:搭知识库(离线准备)先把企业文档 / 业务数据切分:按语义段落拆,控制每段 token 数,太粗太细都影响检索效果用 Embedding 模型(比如 BGE、text-embedding-ada-002)把文本转成向量存到向量库(Milvus/FAISS/Pinecone 都行),方便后面做相似度搜索举个例子:我们做企业知识库时,会把长文档按章节 + 段落拆分,每段控制在 300token 左右,既保证信息完整,又不会太冗余。第二步:用户提问时的检索阶段先把用户问题也转成向量,去向量库做相似度检索,捞出 Top-K 相关文档关键:加个 rerank 模型(比如 CrossEncoder)做二次排序,把最相关的片段往前排,避免 “看似相关实则没用” 的文档干扰还可以加 query rewriting 优化提问,比如把口语化问题转成更适合检索的句式,提升召回准确率第三步:生成答案把检索到的文档片段 + 用户问题,拼进 Prompt 里,给模型明确指令:“请仅基于以下参考资料回答问题,不要编造内容,如果资料里没有答案就说‘未找到相关信息’。”喂给大模型生成答案,这样输出就完全基于检索到的真实数据,不会瞎编。3️⃣ 最后补深度:RAG 的关键与坑讲完流程,补几句踩坑经验,瞬间拉开差距:核心难点:文档切分、检索质量、Prompt 设计切分太粗:信息太杂,检索不准;太细:上下文断裂,模型看不懂检索差:哪怕模型再强,给错资料也会生成垃圾答案,所以 rerank 和 query rewriting 特别重要Prompt 要 “严”:必须约束模型只能用参考资料,不然它还是会忍不住瞎编局限性也要提:依赖 Embedding 质量,选不对模型检索直接拉胯长上下文会推高成本,太多参考资料反而让模型混乱实时性问题:知识库更新后要重新生成向量,不能秒级同步三、面试加分小技巧提架构:主动说 “我们用的是召回 - 过滤 - 生成三段式架构”,显得你体系化提优化:聊 rerank、query rewriting、多轮检索这些进阶手段,证明你不是只会基础版提场景:结合具体项目说,比如 “在企业客服知识库 / 内部文档问答里用 RAG”,比空泛讲理论更有说服力
查看11道真题和解析
点赞 评论 收藏
分享
评论
9
69
分享

创作者周榜

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