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