百度 AI Agent 开发 一面

1、自我介绍

2、我看你实习做过差旅报销 Agent 项目,简单介绍下

3、这个差旅报销 Agent 是单 Agent 还是多 Agent

整体上更接近单 Agent + 多工具协同。系统只有一个主控 Agent,负责理解用户当前诉求、决定调用哪些工具、根据工具结果继续推进流程。OCR、分类、抽取、规则校验这些模块虽然很多,但本质上都是工具,不是独立自治的 Agent,所以不能严格算多 Agent 系统。

如果要说架构特点,就是由一个 Agent 负责统筹任务,把工具能力串起来,完成一个完整报销闭环。

4、你在这个项目里主要负责哪部分

主要负责的是任务理解、工具路由、Prompt 设计、流程编排和结果后处理。具体来说,一方面要把用户输入识别成明确任务,比如提交报销、补充材料、查询进度、修正信息;另一方面要把 OCR、分类、字段抽取、规则校验这些模块串起来,保证输入输出格式统一,结果能真正落到业务系统里。

另外也做了一部分上下文管理和异常分支处理,比如票据识别置信度低、材料冲突、字段缺失、重复票据这类情况,不能只依赖模型生成,要在流程上做显式控制。

5、这个项目的输入输出分别是什么

输入主要有两类,一类是用户自然语言输入,比如“帮我报销这次上海出差”;另一类是附件输入,比如发票照片、火车票截图、机票行程单、酒店订单 PDF。系统接收后,先做任务识别,再对附件内容进行 OCR 识别和材料分类,把图片文本转成结构化字段,例如金额、日期、票据类型、出发地、目的地、乘车人、开票单位等。

输出也有两类,一类是结构化结果,比如报销单字段、附件解析结果、校验状态;另一类是面向用户的自然语言反馈,比如缺哪些材料、哪些字段有冲突、哪些票据识别失败、是否已经满足提交流程。

6、这个 Agent 里面用了哪些工具,怎么调度的

主要用了 OCR 工具、票据分类工具、字段抽取工具、规则校验工具和业务系统接口工具。OCR 工具负责把图片或 PDF 中的文本识别出来;分类工具负责先判断当前材料是什么类型;字段抽取工具从 OCR 结果里提取金额、日期、行程信息等关键字段;规则校验工具根据企业差旅制度判断是否合规;最后通过接口工具把结构化结果写入报销系统,或者返回给前端展示。

调度方式是程序控制主流程 + 大模型辅助决策。固定链路一般是:

用户输入 -> 任务识别 -> 附件解析 -> OCR -> 材料分类 -> 字段抽取 -> 规则校验 -> 结果汇总

比较强约束的部分用代码显式控制,比如调用顺序、字段校验、状态推进;语义理解和异常说明部分交给模型。

7、OCR 识别能力是自己做的还是接入现成服务

OCR 这块通常优先接入现成能力,比如云厂商 OCR 或者公司内部已有识别平台,因为票据识别本身已经比较成熟,直接复用效率更高,落地也更稳。项目里真正需要自己做的,更多是 OCR 之后的后处理,比如文本清洗、字段定位、关键词匹配、格式纠错、置信度筛选,而不是从零训练整套 OCR 模型。

8、票据分类工具是做什么的,怎么来的

票据分类工具的作用是判断当前上传材料属于哪一类,因为不同材料对应不同抽取逻辑和校验规则。比如机票和酒店发票都属于报销材料,但关注的字段完全不一样。如果分类错了,后面字段抽取基本也会跟着错。

来源上一般有三种方式:规则、模型、规则和模型结合。规则适合明显类别,比如出现“发票号码”“税额”“开票日期”等关键词;模型适合处理复杂样本和模糊场景;规则和模型结合是最常见的工程方案,兼顾准确率和稳定性。

9、分类模型是自己训练的吗

一般不会完全从零开始训练,而是在现成预训练模型或者已有分类模型基础上做微调。原因是底层特征抽取能力已经有了,业务里真正缺的是对具体票据类别的适配。用业务数据做微调,效率更高,也更符合实际落地场景。

如果输入主要是 OCR 后的文本,就可以做文本分类;如果票据版式差异明显,也可以结合版面信息或视觉特征一起做。

10、训练数据规模大概是多少

预训练通常不是项目里自己做的,更多是直接用公开预训练模型或者公司已有底座模型。真正可控的是微调数据。如果是票据分类这种任务,微调数据规模通常在几千到几万之间,核心是要覆盖常见票据类型、不同拍摄质量、遮挡模糊、边界样本和错误样本。

如果业务类型不多,几千条高质量数据就能做出不错效果;如果材料种类复杂、噪声大、类别分布不均衡,样本量还需要继续补。

11、这个 Agent 的整体架构是什么

整体可以分成四层:输入层、理解编排层、工具执行层、结果输出层。输入层负责接收用户问题和附件;理解编排层负责识别任务、维护上下文、决定工具调用链路;工具执行层负责 OCR、分类、字段抽取、规则校验和业务系统写入;结果输出层负责把执行结果整理成结构化数据和用户可读反馈。

整个系统不是让模型全权控制,而是模型负责语义理解和生成,程序负责流程和状态,工具负责提供确定性能力。这样稳定性会更高。

12、你们用的是哪个大模型,怎么调试

大模型选型一般更看能力维度,而不是只看名字。比较关注的点包括中文理解、工具调用能力、结构化输出能力、多轮对话稳定性和成本。调试主要分三个层面。第一层是 Prompt 调试,看模型是否能稳定识别任务、遵守输出格式;第二层是工具链调试,看每个模块输入输出是否规范、是否容易出错;第三层是线上样本回放,看真实用户数据下有没有误路由、乱补字段、漏掉异常情况等问题。

一般会把失败样本沉淀下来,做回归测试,修改 Prompt 或流程后重新验证。

13、这个 Agent 是流式返回的吗

前端展示层面一般会支持流式返回,这样用户体验更好,比如可以先告诉用户“正在识别附件”“正在校验报销规则”。但从任务执行层面来说,很多步骤是分阶段完成的,比如 OCR、分类、抽取、校验这些都需要先拿到结果再进行下一

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

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

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

全部评论

相关推荐

一共一个小时,面试难度以及自己的回答算是最近的面试压力比较大的,实习问了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开始,肯定不可能有你在手子转正可能性大啊,现在日常压根没必要去,而且我有两个师弟都是在快手日常转正的,不用太担心,安心留在手子一边多做一点产出然后一边冲字节腾讯暑期,字节腾讯今年实习岗位非常多的,不如好好把握这个,加油。
今天你投了哪些公司?
点赞 评论 收藏
分享
前情提要 本人29届毕业,这几天也是春招火热期,于是在boss上投了几个公司。发了几份简历之后,第四范式公司hr初步问我了一些vibe coding的经历,之后打算联系我进行面试。面试内容问:简历中AI Agents的开发经历是个人开发的还是在实习?答:前两个项目是个人开发,后一个是团队开发的(项目:工作流、AI框架、Agent多端应用)问:索要项目上线的网址和在这个Agent多端应用中负责什么方向?答:这个项目的后端是一个golang、python的微服务架构,其中golang负责后端,python负责ai层。前端则是web端为vue3,移动端为flutter。我负责的是全部的的ai层和golang后端的跨域通信和部分后端功能和web前端功能的改进设计。问:询问项目的主要功能,和如何实现?答:使用langchain、langgraph框架,首先把工具通过mcp-adapters进行打包,之后ReActAgent进行调用工具与数据库进行交互,另一方面在进行增删改操作时由于ai输出不一定满足用户的需求,我做了一个独立的确认节点作为拦截中间件,截断了数据的写入,而用户可以来自行编辑或保存删除。问:Agent的工作模式都有什么?答:ToolsCallingAgent、ReActAgent、ReflectionAgent、PlanAndSolveAgent(并粗略展开每一种大概机制,此处不多赘述)问:介绍一下你对RAG的理解?答:我平时不太喜欢用RAG,主要因为两点,自己开发的时候大多数用不到这个技术,RAG最好在垂直领域来使用,尤其是ToB或者专精某一特定领域,而且前段时间不少人说RAG已死,指的是现在很多东西能替代RAG的功能;其次RAG的召回率并不算太高,想要优化召回率只能花费大量人力财力来进行经验微调。知识库开发的流程一般是,先进行数据清洗,之后进行向量化储存到向量数据库,召回时在进行一个向量匹配的操作问: 看到你做了一个memory上下文记忆功能的处理,可以说一下处理逻辑吗?答: 记忆可以分成长期记忆和短期记忆,我在长期记忆这里使用的是RAG技术,将用户强调或者比较有价值的数据存入,这样可以作为一个跨对话窗口的上下文,而短期记忆我也是做了一个上下文压缩,用了一个经验值作为阈值,等上下午到一定程度之后就会进行精炼,而精炼又有两种模式,我分为智能模式和机械模式,智能模式是通过llm进行关键信息等提炼,机械模式是通过正则处理去除冗余的工具调用日志和结构化导致的上下文污染问:对于模型的选型你是否有考虑呢?答:之前自己做过coding agent等类似的项目,在多智能体系统中对于不同的任务采用的模型不同,比如plan使用主力模型opus,编写代码使用中等模型sonnet,而探索项目结构可以使用haiku等小模型,这样的话既可以节省token花销也可以不降低代码质量问:你是否有AI编程的经历和理解?答:略(先是说了市面上各ai编程工具的差异性优点及缺点和我自己的订阅情况,之后说了开发模式相关如spec driven。ps:可参考该文章 AI 原生工程)问:对于Agent有没有什么熔断机制?你有接触过么?比如你的基模直接卡死了,你的后端是否有什么保底机制?答:有的,在项目中我对tool calling做了一个熔断机制如果工具调用失败超过三次就会进行熔断处理,防止反复重试导致系统崩坏。如果基模卡死的话,完全可以弄一个集群来处理,如果一个服务器掉了可以快速转到另一个提供llm的服务器。最终也算是过了
查看9道真题和解析
点赞 评论 收藏
分享
评论
1
5
分享

创作者周榜

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