小米 AI Agent 二面:金融理赔的确定性与追责
- 轮次
- 二面
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 请你先做一个自我介绍,然后讲讲传统后端和 LLM 应用开发的核心差异。
- LLM 应用的确定性怎么保证?概率性怎么处理?你怎么看这个问题?
- 幻觉怎么处理?格式不稳定怎么处理?上下文丢失呢?
- 上下文丢失怎么处理?模型版本变化怎么处理?有没有兜底方案?
- Prompt 注入怎么防?有哪些具体手段?你实际用过哪个?
- 如何设计一个面向保险理赔的 Agent?整体方案是什么?
- 理赔场景需要哪些工具?工具调用顺序怎么编排?依赖关系怎么处理?
- 如果用户材料不全,Agent 怎么处理?怎么引导用户补充?
- 多轮对话中用户改了口供,怎么处理?之前的结论怎么回滚?
- 理赔金额计算错误怎么办?怎么校验?谁来兜底?
- 高风险操作怎么二次确认?人工审核怎么介入?什么时候转人工?
- 你怎么做权限控制?租户隔离怎么做?数据怎么隔离?
- 数据脱敏怎么做?脱敏后怎么排查问题?会不会丢关键信息?
- 审计日志怎么设计?记录哪些字段?怎么保证不可篡改?
- 如果 Agent 给出错误结论,怎么追责?责任怎么划分?
- 你怎么做 Agent 的可观测性?Trace 怎么设计?关键指标有哪些?
- 关键指标有哪些?告警阈值怎么设?怎么发现异常?怎么定位?
- 线上故障怎么排查?熔断降级怎么做?如果模型服务挂了怎么兜底?
- 你怎么控制成本?有哪些具体策略?省了多少?怎么算的?
- 如果让你设计一个金融风控 Agent,你会怎么做?和理赔有什么区别?
- 规则引擎和模型怎么配合?谁先谁后?冲突了听谁的?
- 误杀和漏杀怎么权衡?哪个更重要?为什么?
- 你怎么做 A/B 测试?流量怎么切?怎么评估效果?
- 你怎么评估 Agent 的业务价值?ROI 怎么算?
- 如果让你从零搭建一个金融 Agent 平台,你会怎么做?分几步?
- 团队怎么分工?你怎么推进?遇到阻力怎么办?
- 你怎么保证上线质量?有没有灰度?怎么回滚?
- 你销售多智能体项目里,多个 Agent 怎么协作的?怎么分钱?
- 销售场景里,Agent 怎么处理客户异议?话术怎么设计?
- 销售转化率怎么评估?Agent 贡献了多少?怎么归因?
- 反问:团队现在做的是金融哪块业务?
- 手撕:实现一个幂等状态机,支持支付请求的 INIT / REQUESTED / SUCCESS / FAILED / UNKNOWN 状态流转。
《参考解析》
传统后端与 LLM 应用的核心差异,以及该在哪一层要确定性。 传统后端的输出由代码路径决定,同样的输入必然得到同样的结果;LLM 应用的输出是采样结果,输入相同输出也可能不同,而且失败是「看起来像对的错」——格式对、语气对、事实错,这让传统的异常处理失效。工程上的应对不是追求「让模型确定」,而是把确定性推到系统边界:模型负责理解与生成候选,边界之外的判定、计算、写库、外发全部交给确定性代码。具体做法包括结构化输出约束(函数调用/JSON Schema)、让模型只填内容字段而由代码拼装最终产物、关键数值一律由代码或外部系统计算而非模型口算、以及在流程里设置校验节点,校验不过就重试或转人工。概率性则通过工程冗余来吸收:重试、多候选取一致(自一致性)、以及把不影响主流程的部分做成软失败。上下文丢失本质上是状态管理问题,靠外部持久化 + 每轮重建关键上下文解决,而不是指望模型记住。
幻觉、格式不稳、模型版本变化的兜底。 格式不稳用结构化输出 + 校验 + 有界重试解决,重试仍失败就走降级路径(退回模板或转人工),绝不能把解析失败的半截结果当成功往下传。幻觉在金融场景要按风险分级:低风险的知识性表述可以容忍,凡是进入金额、责任认定、承诺类的话术必须做到「无出处不说」。落地手段是强制引用与事实校验(结论必须能映射到保单条款、理赔单、政策库里的具体条目,校验不过即拦截)。模型版本变化是很容易被忽略的一类风险:上游模型小版本更新就可能让提示词效果漂移、工具调用率变化,所以要做模型版本固定 + 变更前跑回归集 + 保留一键切回的能力,同时把提示词与模型版本一起版本化,任何一次上线都能说明「这批结果是哪个组合跑出来的」。兜底方案要有明确的分级:模型不可用 → 切备用模型或渠道;备用也失败 → 走规则/模板的确定性流程;再不行才是排队与人工。每一级都要能在监控上看见切换次数,否则降级会长期静默存在。
保险理赔 Agent 的工具编排与多轮一致性。 理赔 Agent 的骨架建议是「材料解析 → 责任判定 → 金额计算 → 结论与告知」四段,每段有明确的输入输出契约。工具上至少需要保单查询、条款检索、理赔单读写、影像/OCR、身份与反欺诈校验、金额计算器、以及工单与转人工接口。编排要点是依赖关系显式化:用任务图或步骤机描述「哪些可以并行(如多项材料解析)、哪些必须串行(先定责才能算钱)」,不要靠模型自由决定顺序;每个工具声明前置条件与幂等键,失败时按依赖回溯重跑而不是整单重来。材料不全的处理原则是「一次问清、可续传、不猜」:解析后输出缺失项清单(区分必填与可选),生成结构化的补件请求,支持用户分次上传并保留已解析结果,绝不推测缺失字段的值。用户改口供要按「留痕 + 重算 + 作废旧结论」处理:每轮输入带版本号,条款适用的结论依赖的材料版本变化时,把受影响的中间结论标为失效并沿依赖链重算,同时保留历史版本用于审计与纠纷复盘——这比「覆盖」更符合金融场景的证据要求。
金额校验、二次确认与转人工的触发条件。 金额计算应该完全脱离模型:模型只负责把材料映射成计算所需的输入(赔付类型、比例、免赔额这些参数抽取),计算走确定性代码,再用规则做上下限校验(是否超过保额、是否与同类案件分布明显偏离、关键字段是否为空),偏离超阈值就拦截转人工。二次确认的设计要区分「谁确认」:影响用户权益的动作由用户确认(展示计算依据与结果,要求显式点击),超出权限的动作由有权限的角色确认(坐席/审核员),自动化只能做「准备动作」而不能做「终局动作」。转人工的触发条件建议写成可枚举的清单:置信度低于阈值、规则校验不通过、金额超过阈值、涉及拒赔或免责条款、用户明确要求人工、以及连续两轮无法推进。实践中还有一个反直觉的点:转人工不是失败,而是产品的一部分,因此要把「转人工率」「转人工时带过去的信息完整度」也当成指标来优化,让坐席接手时不需要用户再讲一遍。
权限、租户隔离、脱敏与审计日志。 权限模型按「用户—角色—动作—数据范围」四元组设计,数据范围落到具体维度(自己、团队、机构),并且所有查询在数据访问层强制注入范围条件,不做「先查全量再过滤」。多租户隔离要区分逻辑隔离与物理隔离:常规 SaaS 用逻辑隔离(每表带 tenant_id + 行级安全策略 + 每租户独立密钥做字段加密),涉及敏感或监管要求高的客户再上独立库/独立部署。脱敏与可排查性的平衡靠分层:展示层与常规日志脱敏,原始数据在受控的「证据库」里加密保存,排查时通过带审批的通道临时授权访问并全程留痕。审计日志的字段至少要有事件 id、时间、操作主体(人/Agent/系统)、租户、会话与 Trace id、动作类型、输入摘要、输出摘要、使用的模型与版本、命中的规则、以及结果状态;不可篡改的实现是追加写的日志存储 + 逐条哈希链(每条记录包含前一条的哈希),再定期把根哈希做外部锚定,任何删改都会破坏链式校验。这也顺带回答了「怎么追责」:追责的前提是能还原「谁在什么上下文里基于什么信息做了什么决策」,所以可回溯性比「让模型保证正确」更重要。
金融风控 Agent 与规则引擎的配合、误杀漏杀的权衡。 风控和理赔的差别在于目标函数:理赔追求「该赔的赔到、不该赔的不赔」,风控追求「在可接受的误杀率下把欺诈压到最低」,且负样本极少、分布随时间漂移。规则引擎和模型的正确配合是「模型提分、规则定策」:模型输出风险概率与理由特征,规则引擎根据分数区间、名单、场景与业务约束决定最终动作(通过、加验、人工、拒绝)。冲突时以规则为准,因为规则代表的是合规与业务底线,模型只在规则留出的空间里做区分度。误杀和漏杀哪个更重要取决于场景的损失结构:信贷欺诈通常漏杀更贵(一次欺诈可能吃掉几十笔正常收益),所以阈值偏低、宁可多转人工;而营销风控或额度调整往往误杀更贵(伤体验伤收入),阈值应偏保守。做这个权衡不能拍脑袋,要用成本矩阵算:把两类错误各自的钱数与发生率乘起来,选期望损失最低的阈值,并定期用回溯数据重估。评估上除了 AUC,更要看业务口径的指标(拦截率、误杀率、人工复核通过率、以及在固定人工产能下的净收益)。
A/B、ROI 与从零搭平台的推进节奏。 A/B 在 Agent 场景的难点是样本量、指标滞后与体验污染:建议先做单元级实验(提示词/模型/工具策略)在离线评测集上筛,再做线上小流量灰度看业务指标,流量切分按用户或会话维度保持一致性(同一个用户不要一半新一半旧),并提前固定主指标与护栏指标(投诉率、转人工率、平均处理时长、成本)。ROI 的口径要说清三件事:省下的人力成本(按处理量与单位工时折算)、带来的增量收益(转化提升、赔付准确率带来的损失下降)、以及新增的模型与基础设施成本,三者放同一时间窗口里算,并给出对照组。从零搭平台的路径建议分四步:先做单场景闭环(一个流程、少量工具、完整可观测),再把工具与权限体系沉淀成平台能力,然后补评测与灰度发布机制,最后扩展到多场景与多租户。团队分工上,平台侧负责编排、工具网关、状态与观测,业务侧负责场景提示词、判据与评测集,质量侧负责红线用例与人工复核校准;推进遇到阻力的破法通常是用一个可量化的闭环小胜仗换取信任,而不是先要大而全的平台预算。
销售多智能体协作、归因与手撕幂等状态机。 销售多智能体的切分一般是「线索评估、话术生成、客户答疑、跟进节奏」几个角色,协作的关键同样是接口而非智能:角色之间传结构化的客户画像与阶段状态,动作(发消息、改阶段)走统一网关并做频控与合规检查,避免多个 Agent 同时触达同一个客户。「怎么分钱」这类问题本质是归因,实践上很难做到精确归因,务实口径是按「接触序列 + 影响窗口」做多触点归因(首触、末触、时间衰减),并把 Agent 发起的动作与人工动作分开统计,先保证口径稳定可复现,再谈精确。销售转化评估要看漏斗每一段的转化率与响应质量,而不是只看最终成交,归因则用留出实验(对一部分线索完全不启用 Agent)作为基线,否则很难剥离自然成交。手撕幂等状态机这道题考的其实是分布式事务的常识:状态集合 INIT / REQUESTED / SUCCESS / FAILED / UNKNOWN,其中 UNKNOWN 是「发出去了但没拿到结果」,必须靠查询对账来收敛,不能当失败处理。设计要点:只允许合法迁移(如 INIT→REQUESTED、REQUESTED→SUCCESS/FAILED/UNKNOWN,终态不可再迁移),迁移用「带版本号或前置状态条件的 CAS」实现(比如数据库 UPDATE ... WHERE id=? AND status=? 影响行数为 1 才算成功),幂等靠业务幂等键(请求 id)加唯一索引,重复请求直接返回既有结果;UNKNOWN 状态要有对账任务按幂等键向对方查询并推进状态。写代码前先把状态图与非法迁移的返回约定讲清,比直接开始写更容易拿分。