W5D4 学习手册 1.归属原则2.谁拥有3.Agent角色4.审计留痕 5.审计字段6.HITL关系7.可追溯8.Langfuse 9.边界10.可观测达标①达标② 自测速记

FDE W5 Day 4 学习手册 · 业务状态归属与审计

W5 Day4 · A 级(必须掌握,面试核心)· 4h · 学完能讲透"业务状态由谁拥有(Agent 不拥有)、审计字段怎么设计、为什么企业级必须可溯源"

本日定位:前三天讲"Agent 自己的状态"(Context/Checkpoint/Runtime)。Day4 讲更关键的边界——业务状态(理赔单、审批)不归 Agent 所有,以及"每一次动作都要留痕"。这是企业级 AI 合规的底线。
学完能回答:① 业务状态归属原则(Agent 只驱动、业务系统才拥有);② 审计字段设计(who/what/when/result)和为什么企业级必须可溯源;③ 与 W4 HITL 的关系(人工审批是状态变更关键节点,必须留痕)。
使用方法:通读原理 → 重点看「工程含义」「面试话术」「易错点」→ 做自测清单 → 配合《FDE-W5D4-评测题.md》。选中不熟的词可标注(左下★重要 / 右下📌待查)。候选人背景:36岁,Java+大数据+医疗保险行业,示例围绕特药理赔/保险知识库。

一、业务状态归属原则:Agent 不拥有业务状态

核心原则一句话:Agent 是业务流程的"驱动者",不是业务状态的"所有者"。理赔单状态、审批结论、报销金额——这些是企业核心业务数据,必须有唯一可信的 owner,而这个 owner 是业务系统(核心交易/理赔系统),不是 LLM Agent。

Agent:提议 / 推荐 / 执行动作(在授权内) │ 业务系统:拥有状态、做最终权威记录、保证一致性
把"业务真相"放在 Agent/LLM 侧是灾难:模型可能前后不一致、可能被注入改口、可能崩溃丢失。业务系统用数据库事务 + 状态机保证权威性和一致性,这才是 owner 该做的事。Agent 只是"聪明的操作员"。
原则:Agent 不拥有业务状态,只驱动流程。理赔单/审批的权威状态归业务系统,Agent 只读或经授权写。Agent 内部的中间态只是临时工作态,不是真相。
① 最危险的错:把 Agent 里"算出的报销金额"当成理赔结论直接展示给用户,而不写回业务系统由它确认——模型算错就是错赔。② Agent 的"草稿态"和业务系统的"正式态"要区分清楚,不能让用户看到草稿以为生效。③ "Agent 拥有状态"会让职责混乱:谁对理赔结果负责?必须是业务系统,可追责。

二、业务状态由谁拥有:业务系统才是 owner

状态ownerAgent 的角色
理赔单状态(草稿/已提交/审批中/已赔付/拒赔)理赔核心系统(DB + 状态机)触发状态流转(提交/查询),不自行判定
审批结论审批系统 / 人工审批人准备材料、发起审批、读结果
报销金额计费/理算系统调用理算工具,展示工具返回,不自己拍板
Agent 工作态(已收集字段/当前步)Agent(Checkpointer)自管,临时性
示例:特药理赔 Agent 算出"奥希替尼可报 60%",但这个 60% 只是 Agent 调用"理算工具"得到的返回值。真正的理赔结论由理算系统落库、审批人确认后才生效。Agent 不能自己宣布"赔你 60%"。
这意味着 Agent 的工具调用本质是"对业务系统的读写请求",业务系统才是裁判。金额/状态的最终一致性和持久化由业务系统的事务保障,Agent 不重造轮子。对 Java 背景:这就像"Controller 调 Service,Service 才操作 DB 并带事务",Agent ≈ Controller,业务 Service 才是 owner。
理赔单/审批/金额都由业务系统(带事务+状态机)做权威 owner;Agent 只是发请求、读结果。金额必须经理算系统落库、审批确认才生效,Agent 不能自己宣布结论。
① 有人让 Agent 把"结论"存在自己内存/文件当真相——多实例/重启后结论可能不一致,且无事务保障,绝对不可取。② 业务系统做 owner 也意味着"拒绝 Agent 的不合理写入":若 Agent 想改一个已结案单,业务系统应基于状态机拒绝,而非盲从。③ 权限要分清:Agent 能"发起提交"不代表它能"直接改金额",关键写操作仍需业务系统+人工审批。

三、Agent 的角色:驱动者而非所有者

明确 Agent 的定位,避免"越权"和"责任不清":

Agent 决策 = 建议 + 受控执行;业务系统 = 权威记录 + 最终判定;人 = 高风险节点裁决
这个边界让"可追责性"成立:出了问题能说清"是模型建议错了、还是业务系统判错了、还是人批错了"。若 Agent 既当运动员又当裁判(拥有状态又下结论),责任链就断了,合规无法交代。
Agent = 驱动者+建议者+非所有者:编排流程、给建议、受控执行,但不持有权威状态、不独自担责。业务系统做权威记录,人做高风险裁决。
① 把 Agent 当"所有者"会导致"黑盒决策不可追责"——监管问"这笔为什么赔"答不上来。② 建议和执行要分开:Agent 可以给"建议报销 60%",但落库动作必须经过业务系统校验+(必要时)人工确认。③ 角色边界要在架构文档里写清,面试时能画出"Agent / 业务系统 / 人"三方的职责边界是加分项。

四、审计:每次工具调用 / 决策留痕

企业级 Agent 的每一次动作都要可追溯。审计记录回答四个基本问题:谁(who)、做了什么(what)、什么时候(when)、结果如何(result)。

维度含义例子
who操作者身份会话用户/角色(保单持有人)、Agent 实例 ID、是否代操作
what动作调用 query_policy / 提交 submit_claim / 模型给出建议
when时间戳精确到毫秒,含时区
result结果成功/失败/拒绝 + 关键输出(如返回金额、拒绝原因)
audit_log: { who, what, when, result, request_id, session_id, tool, args_digest, latency, token_cost }
审计不是"锦上添花",是保险/金融行业的合规刚需(谁在何时基于什么查了患者病历、改了理赔)。没有审计,既无法复盘事故,也无法满足监管(如个保法、监管要求的可追溯)。审计要"不可篡改"(WORM 存储/追加日志)。
审计四要素:who(谁)/ what(做什么)/ when(何时)/ result(结果如何)。每次工具调用和关键决策都要留痕,且不可篡改,这是金融保险合规刚需。
① 审计要记"决策"不只是"调用"——模型基于什么给出了"建议报销 60%"这个决策,也要留痕(输入摘要+输出),否则只记工具调用查不到"为什么这么赔"。② 审计日志含患者敏感信息,要脱敏/加密存储,且访问受控。③ 审计记录要"防篡改":用追加日志或 WORM 存储,不能谁都能改历史。

五、审计字段设计

一个企业级审计条目建议包含的字段:

{
  "event_id": "uuid",
  "session_id": "会话ID",
  "agent_id": "Agent实例/版本",
  "who": { "user_id": "...", "role": "policy_holder|claim_agent|admin", "on_behalf_of": null },
  "what": "tool:query_policy | tool:submit_claim | llm:decision",
  "args_digest": "sha256(入参摘要)",   // 不全存明文,敏感字段脱敏
  "result": "SUCCESS|DENIED|ERROR|PARTIAL",
  "result_detail": "返回金额/拒绝原因/错误类",
  "request_id": "幂等键",
  "when": "2026-07-23T10:23:45.123+08:00",
  "latency_ms": 312,
  "token_cost": 1840,
  "model": "qwen-max",
  "parent_event_id": "上游事件(追踪因果链)"
}
字段设计要"够复盘、可追责、护隐私"三者平衡。太粗(只记"调了工具")复不了盘;太细(全量明文敏感字段)又违反隐私。用摘要+脱敏+权限访问折中。
审计字段至少含:event/session/agent_id、who(用户+角色)、what(工具/决策)、args_digest(脱敏)、result、request_id(幂等)、when、latency、token、model 版本、parent_event_id(因果链)。
① 别为"省事"只记成功不记失败——恰恰失败/拒绝路径(如拒绝查病历)最该记全,用于合规和异常检测。② request_id 必须和重试/补偿链路同源,否则对账时"重试那次算几次"说不清。③ model/agent 版本要记,否则模型升级后出问题无法回溯"当时哪版干的"。

六、与 W4 HITL 的关系:人工审批是状态变更关键节点

W4 讲的 Human-in-the-Loop(人在环)本质是一个高风险业务状态的变更节点,它正好落在"业务状态归属"的边界上:

Agent 准备材料 → 触发 HITL(暂停)→ 人工审批(业务系统状态变更:审批中→已赔付)→ 结果回流 → Agent 继续
HITL 是"业务状态归属原则"的最直接体现:Agent 把"决定权"交还给人,自己不拥有"赔付与否"的结论。这也让 Agent 在保险这类强监管场景里"可被接受"——关键裁决有人负责。
HITL = 高风险状态变更节点。Agent 发起/准备/等结果,不替人做赔付审批;审批由人+业务系统落库并留痕。HITL 处用 Checkpointer 暂停,结果回流后恢复。这正是"Agent 不拥有业务状态"的体现。
① 别让 Agent "模拟"人工审批——比如模型自己输出"审批通过",这是把决定权偷回给模型,违背 HITL 初衷,合规上不成立。② HITL 暂停期间 Agent 状态(Checkpointer)和业务状态(审批系统)要一致,不能 Agent 显示"待审批"但业务系统已是"已赔付"——状态对账要做。③ 审批留痕要包含"模型给的建议"作为参考,但结论字段必须来自人,不能混。

七、审计的可追溯性与合规

"可追溯"不只是"有日志",而是能回答:任何一个业务结果,都能还原出完整因果链——谁、基于什么输入、调了什么、模型怎么建议、人怎么批、最终怎么落库。

合规要求对应设计
谁查了患者隐私who + what=query_policy + args_digest,拒绝也记
为什么这么赔llm:decision 留痕(输入摘要+建议)+ 审批结论 + 理算返回
记录不可篡改WORM/追加日志,防事后改
可复盘/可追责parent_event_id 因果链 + agent 版本
对保险行业,可追溯是监管底线(理赔纠纷时要有完整证据链)。Agent 引入后,传统"人操作的系统"变成了"人+模型协作",审计必须覆盖模型的每一步决策,否则出现"模型暗箱建议导致错赔"无法举证。
可追溯 = 任一业务结果都能还原完整因果链(谁/输入/调了什么/模型建议/人批/落库)。用 parent_event_id 串因果、WORM 防篡改、agent 版本可复盘——保险监管刚需。
① "有日志"不等于"可追溯":若日志之间没因果链(parent_event_id),出了事只能看一堆孤立记录,还原不出"这笔为什么赔"。② 模型决策留痕要保留"输入摘要",否则只记"建议报销60%"不知道是基于什么材料建议的,复盘无效。③ 隐私和审计冲突时要"脱敏记摘要"而非"不记"——不记等于放弃合规。

八、用 Langfuse 等工具做 Trace / 审计

手写审计成本高,生产中常用可观测平台。以 Langfuse 为例(开源 LLM 工程观测):

能力对应本节
Trace / Span 树把一次会话的 LLM 调用、工具调用串成树(= 因果链 parent_event_id)
元数据 / 标签记 user/role/session/request_id/model 版本
评分 / 反馈人工审批结论、质量评分也可落为 observation
成本 / 延迟token_cost / latency 自动统计
注意区分:Langfuse 这类是观测/调试/评测平台,偏"工程可追溯";而保险合规要求的"审计台账"往往还要独立落库(WORM)。两者互补:Langfuse 管开发运维期追溯,合规审计系统管监管期留证。
工具能大幅降低审计落地成本,但"记什么字段、是否防篡改、是否满足监管"仍要自己设计(见 s5/s7)。别以为"接了 Langfuse 就合规了"——它不减你的设计责任。
Langfuse 把 LLM 调用+工具调用串成 Trace 树(=因果链),自动记 user/session/request_id/成本/延迟,降低审计落地成本。但它偏工程观测,合规审计台账仍要独立防篡改落库,两者互补。
① 别把 Langfuse 当"合规审计系统"用——它默认不保证 WORM/防篡改,监管可能不认。② 敏感字段(患者身份证)进 Langfuse 前要脱敏,否则观测平台变成隐私泄露点。③ 观测数据量大,生产要采样/分级,但合规要求的"关键业务全量审计"不能靠采样。

九、状态变更与审计的边界

厘清"哪些动作要审计、哪些不必",避免审计泛滥或遗漏:

动作是否审计理由
读业务数据(查保单/知识库)✅ 记(who+what+结果)隐私访问必须可查
写业务数据(提交/审批)✅ 记(含结果+请求ID)状态变更,关键
模型决策(建议/拒答)✅ 记(输入摘要+输出)决策可追溯
Agent 内部工作态(Checkpoint)⚠️ 轻量记调试用,非业务真相,可不进合规台账
纯展示/无副作用❌ 可不记无业务影响
审计边界:读/写业务数据、模型决策都记;Agent 内部 Checkpoint 轻量记(调试用,非合规);纯展示不记。核心是"有副作用/有隐私/有决策"的必记。
① "读"也别漏——谁查了患者病历是隐私合规重点,只读也要审计。② Agent 内部 Checkpoint 是工作态不是业务真相,混进合规审计台账会污染"业务真相"记录,要分层存储。③ 别为了"全记"把每个 token 都写审计库,成本和隐私都扛不住,按"副作用/隐私/决策"分层。

十、资源与监控:审计与状态一致性

监控项用途
审计落库成功率审计本身失败=合规缺口,要告警
Agent 态 vs 业务态一致性发现"Agent 显示待审但业务已赔"等错配
越权/拒绝事件异常检测(如某角色频繁被拒)
关键节点留痕完整性确保 HITL 审批必有对应审计条
审计落库失败要告警(否则合规出现缺口);监控 Agent 态与业务态一致性,防止两者错配;越权/拒绝事件用于异常检测。
① 审计写失败不能"静默忽略"——它是合规缺口,要有降级(本地缓存+重发)和告警。② 状态一致性监控常被忽略:Agent 暂停在"待审批"但业务系统已"拒赔",用户看到的状态是错的,必须定期对账。

十一、面试达标线①:业务状态归属原则

要点说明
Agent 不拥有业务状态只驱动流程;理赔单/审批/金额的权威副本在业务系统
业务系统才是 owner带事务+状态机,保证权威性与一致性;Agent 只读或经授权写
Agent 角色驱动者+建议者+非所有者;高风险裁决交人
与 HITL 关系人工审批是状态变更关键节点,Agent 不替人决定
核心:Agent 只驱动不拥有;业务系统(事务+状态机)是业务状态 owner;Agent 是驱动者/建议者/非所有者;HITL 处把决定权交还人。这样责任链清晰、可追责。

十二、面试达标线②:审计字段设计和为什么企业级必须可溯源

审计四要素:who / what / when / result │ 字段:session/agent_id/args_digest(脱敏)/request_id(幂等)/parent_event_id(因果链)/model版本 必须可溯源:监管刚需(理赔纠纷证据链) + 可追责 + 防篡改(WORM) + 模型决策也要留痕
  1. 字段设计:event/session/agent_id、who(用户+角色)、what(工具/决策)、args_digest(脱敏)、result、request_id(幂等)、when、latency、token、model 版本、parent_event_id(因果链)。
  2. 为什么必须可溯源:保险/金融监管要求任一业务结果能还原完整因果链(谁/输入/调了什么/模型建议/人批/落库);模型引入后决策变"人+模型协作",不覆盖模型步骤就无法举证错赔;且需防篡改(WORM)、可追责。
  3. 隐私与合规平衡:敏感字段脱敏/摘要存储,不记明文;但"不记"等于放弃合规,要脱敏记而非不记。
  4. 工具:Langfuse 等降低落地成本,但合规审计台账仍要独立防篡改落库,工具不减设计责任。

十三、W5D4 自测清单

十四、高频面试题速记卡

Q:Agent 能拥有理赔单状态吗?
不能。Agent 只驱动流程,理赔单/审批/金额的权威副本在业务系统(事务+状态机)。Agent 内部态只是临时工作态,不是真相。
Q:Agent 算出"报销 60%"能直接告诉用户吗?
不能当成结论。这只是调用理算工具的返回值,必须经理算系统落库、审批确认才生效。Agent 可展示"建议/测算值",但不自行宣布赔付结论。
Q:审计四要素是什么?
who(谁)/ what(做什么)/ when(何时)/ result(结果如何)。每次工具调用和关键决策都要留痕,且不可篡改。
Q:审计条目要记哪些关键字段?
session/agent_id、who(用户+角色)、what、args_digest(脱敏)、result、request_id(幂等)、when、latency、token、model版本、parent_event_id(因果链)。
Q:HITL 和状态归属什么关系?
人工审批是高风险状态变更关键节点。Agent 发起/准备/等结果,不替人做赔付审批;审批由人+业务系统落库并留痕,正是"Agent 不拥有业务状态"的体现。
Q:"有日志"就等于"可追溯"吗?
不等于。还要有因果链(parent_event_id 串起一棵树)和防篡改(WORM),否则只能看孤立记录、还原不出"这笔为什么赔"。
Q:Langfuse 能当合规审计系统吗?
不能。它偏工程观测/调试,默认不保证防篡改,监管可能不认。合规审计台账要独立防篡改落库,两者互补。
Q:模型决策需要审计吗?
需要。模型"建议报销60%"这类决策要留痕(输入摘要+输出),否则出现错赔无法举证"当时基于什么材料建议的"。
Q:读操作(查保单)要审计吗?
要。谁查了患者隐私是合规范重点,只读也要记 who+what+结果,拒绝访问也要记。
Q:隐私和审计冲突怎么办?
脱敏记摘要而非不记。敏感字段(身份证)存 digest/脱敏值,不存明文;"不记"等于放弃合规,不可取。
FDE W5D4 学习手册 · 业务状态归属与审计(面试级)· 配合《FDE-W5D4-评测题.md》自测 · 资源:Langfuse(审计/Trace)langfuse.com
📌 待查★ 重要