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

全部评论
看着要问不少啊,涉及的面挺多的
点赞 回复 分享
发布于 03-14 22:05 陕西

相关推荐

03-13 15:01
南开大学 Java
多发面经多多攒人品---------------------------------------------------------1.个人的基本问题,有实习经历么(无)(3min)------------------------------------------项目时间(30min)---------------------------------------------------2.开始拷打项目,询问langgraph的知识了,问我的项目的架构是什么样的?3.agent的编排是怎么做的,运用到了什么样的模式呢,如何调度的?4.你说的混合记忆架构,短期记忆,长期记忆记忆槽位是如何做的呢?里面用的什么数据结构,存的具体是什么数据。5.那数据库存储和rag是咋做的?6.项目有什么问题么,遇到过比较难的问题?6.1.讲到token消耗,和mcp类似的上下文协议占用token的问题,以及如何减少这样的消耗呢?答:从最近的skills里面获得灵感,使用按需加载和渐进式披露。或者维护摘要或加入缓存工程。6.2.子agent在动态分配的过程当中如何做呢,通过什么技术来实现一种调度和分配,如何提高子agent的执行任务和工具调用的准确率。7.图数据库引入解决了什么样的问题?给我讲讲。----------------------------------------------------基本八股(15min)---------------------------------------------------8.  HashMap 底层实现,数据结构,扩容机制,哈希冲突解决的常用方法有哪些?9.HashMap 与 ConcurrentHashMap 区别,渐进式扩容,线程安全底层如何实现的?10.ReentrantLock底层的公平非公平如何实现?AQS是什么,抽象队列同步器,CLH的自愈合,包含什么数据结构等,waitset,双向链表,独占模式和共享模式有什么区别?11.MySQL 事务特性ACID,分别靠什么保证呢?12.最左前缀原则。13.Redis ZSET 实现。然后redis的持久化,AOF和RDB各自有什么优点和缺点,以及AOF重写机制讲一下。14.Kafka如何保证高可用性?生产者,broker,消费者各自怎么做的?--------------------------------------------------算法题(8min)---------------------------------------------------K个一组反转链表。面试官说给我10分钟来写。键盘开始冒烟-------------------------------------反问--(8分钟)--------------------------后续:20分钟后约二面。
查看16道真题和解析
点赞 评论 收藏
分享
评论
3
12
分享

创作者周榜

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