百度后端一面:ReAct、规划与流式工具参数

岗位:后端开发 · 5 道题 · 更新于 2026-10-20

本场面试题

  1. ReAct 怎样形成循环,又怎样限制无效循环?
  2. ReAct 和先规划再执行、必要时重规划怎样比较?
  3. 流式工具参数只有半段 JSON 时应该执行吗?
  4. 单 Agent 加多个工具是否足够,怎样证明需要多 Agent?
  5. RAG 一定需要独立向量数据库吗?

面经与参考答法

问题选自作者自述的百度 后端开发一面记录。以下短答为备面讲解,不代表作者当场作答。页面发表于北京时间2026-09-23;面试绝对日期未确认。

(1)ReAct 怎样形成循环,又怎样限制无效循环?

Agent根据当前目标与观察选择行动,执行工具后把结果作为下一步输入,直到满足结束条件。工程上应有明确终止判定、步数和预算上限,并检测重复行动与重复失败;退出时保留当前状态和失败原因。ReAct范式本身不保证一定收敛。

(2)ReAct 和先规划再执行、必要时重规划怎样比较?

ReAct更强调根据每次观察即时决定下一行动;先规划再执行会显式保存阶段目标和依赖,执行遇到新信息后再调整计划。短且探索性强的任务常适合较紧凑的行动循环,依赖清晰的长任务可能需要显式计划;实际选择要以任务评测为准,二者也可组合。

(3)流式工具参数只有半段 JSON 时应该执行吗?

不执行。按运行及工具调用标识分别缓存增量,等对应参数流明确完成,再解析完整 JSON、校验 Schema、业务语义和权限后交执行器。如果本执行器尚未发起工具,断流时应记录参数未完成、未执行,不能猜补参数。只有执行请求已经发出却失去回执时,才把执行结果记为未知,并通过结果查询及幂等协调判断能否重试。网络 chunk、完整 SSE 事件和参数完成是不同边界,恢复与完成信号都要按实际提供方协议处理。

(4)单 Agent 加多个工具是否足够,怎样证明需要多 Agent?

先用单Agent实现基线,再看是否需要隔离职责、权限和上下文,或能并行处理相互独立的子任务。引入多Agent会增加路由、通信和合并失败的机会,只有在同条件任务集上取得可解释收益才值得使用;不能把“更智能”当作架构理由。

(5)RAG 一定需要独立向量数据库吗?

不一定。应按相似度检索能力、数据规模、过滤与权限、更新频率、延迟和运维成本选存储。普通关系数据库可承担文档元数据、权限和词法查询,也可能通过相应产品能力提供向量检索;不能把某个MySQL版本默认没有的能力泛化成所有关系数据库都不支持。

面经是候选人自述,解析为 Agent Journey 整理。更多大厂 AI / Agent 岗面经 · 按目标公司模拟面试