A9 · Agent 责任边界与合规
把伦理与合规要求落成可实现、可测试、可审计的工程能力,而不是一份贴在墙上的原则
本模块产出:Decision Record、可解释性 API、数据权利端点、偏见测试集、责任矩阵 · 新增模块,无前置依赖
这个模块讲工程,不讲道德说教
微软 AI-For-Beginners 用一整课讲 Responsible AI,我们的课程原本只有第 9 周 Security 的技术侧,缺的正是这一块。但本模块的做法不是列举原则,而是把每一条责任要求翻译成可实现、可测试、可审计的代码与流程。凡是不能落成验收标准的条目,不进这个模块。
同时说清楚:本模块是工程教学,不是法律意见。真实业务上线前请咨询你所在司法辖区的法务。
学前自测
1. 你的 Agent 自动改了一个商品价格,导致公司亏了五万。谁负责?
这题没有唯一答案,但你必须能说清责任链:写工具的人、配置权限的人、批准这次操作的人、决定不设审批的人。如果你的系统答不出「这次操作是谁批的、依据什么策略」,那么责任无法归属,法务和管理层就不会让这个 Agent 上线。责任可归属是 Agent 进入真实业务的前置条件,不是加分项。
2. 用户问「为什么 AI 拒绝了我的退款申请」,你能回答吗?
要能,而且答案不能是「模型判断的」。可解释性在 Agent 场景比在传统 ML 场景更可行,因为你有完整的执行轨迹:召回了哪些证据、命中了哪条策略、调了哪些工具、哪一步做的判断。把这条轨迹翻译成人话,就是可解释性。做不到的话,一旦有用户投诉或监管问询,你只能沉默。
3. Agent 的偏见和模型的偏见,是同一个问题吗?
不完全是。模型偏见来自训练数据,你改不了。但 Agent 系统会放大或引入新的偏见:检索排序偏向某类文档、工具权限按用户等级不同、Prompt 里的措辞诱导。这部分是你造成的,也是你能测能修的。把责任推给底层模型是不成立的。
4. 什么场景下法律要求必须有人工介入,不能全自动?
各辖区规定不同,但共同模式是:对个人产生重大法律或经济影响的自动化决策,通常要求可解释、可申诉、可要求人工复核。典型场景包括招聘筛选、信贷审批、保险定价、内容封禁。这直接决定你的 Approval Policy 怎么配,不是可选的产品设计。
学习目标
把伦理与合规要求落成工程能力:责任可归属、决策可解释、数据权利可行使、偏见可测量、事故可追溯。
这个模块的商业价值很直接:它是很多企业不敢上 Agent 的真正卡点。 程序员基础版第 3 周和第 9 周解决了「Agent 不会技术性地闯祸」,这个模块解决「闯祸了能说清楚、能负责、能改」。能把这两层都讲明白的候选人,在面 To B 团队时优势极大。
课程内容
责任链与可归属性
- RACI 责任矩阵:开发者、运营者、审批人、最终用户各自的边界
- Decision Record:一次高风险决策必须记录的字段
- 审批的法律意义:谁批的、依据什么、能不能推翻
- break-glass 紧急通道与事后复核
- 自主性分级:建议、草稿、执行加事后通知、全自动
可解释性
- Agent 的可解释性优势:执行轨迹本身就是解释
- 从 Trace 生成人类可读的决策说明
- 证据链:结论到检索片段到原始文档
- 面向用户、面向运营、面向监管的三种解释粒度
- 不可解释的部分怎么诚实标注
数据权利
- 知情、访问、更正、删除、可携带五项权利
- 派生数据的删除范围:摘要、向量、缓存、评测集
- 训练数据与用户数据的边界,日志能不能拿去训练
- 跨境传输与数据驻留对 Provider 选型的影响
- 留存期限与自动清理
偏见与公平
- Agent 系统引入偏见的三个位置:检索排序、工具权限、Prompt 措辞
- 分组对照测试集的构造方法
- 公平性指标的选择与冲突
- 反馈回路:Agent 的输出成为下一轮的输入
披露与边界
- AI 生成内容的标识义务
- 专业建议边界:医疗、法律、金融、心理
- 拒答设计:什么时候必须拒绝,怎么拒绝得体
- 高风险场景清单与人工介入要求
责任链长什么样
实施任务
给 Agent OS 补齐五项能力:
1. Decision Record
对每一次高风险操作,除程序员基础版第 3 周的审计日志外,额外记录决策依据:
interface DecisionRecord {
runId: string
decision: string // 做了什么
autonomyLevel: 'suggest' | 'draft' | 'execute-notify' | 'autonomous'
evidence: EvidenceRef[] // 依据哪些检索片段 / 数据
policyHits: PolicyDecision[] // 命中哪些策略
approvedBy: Actor | null // 人批的还是策略自动批的
overriddenBy: Actor | null // 有没有人推翻过
reversible: boolean
timestamp: string
}2. 可解释性 API
GET /runs/:id/explanation?audience=user|operator|auditor,从 Trace 生成三种粒度的人话说明。面向用户的版本不暴露内部工具名和 Prompt,面向审计的版本包含完整证据链。
3. 数据权利端点
导出、更正、删除三个端点,删除必须级联到派生数据。补齐 A2 的 Session、程序员基础版第 5 周的 Chunk、第 8 周的长期记忆,以及摘要、向量、缓存、已进入评测集的样本。
4. 偏见测试集
构造分组对照用例:同一业务请求,只改变一个受保护属性(地域、性别相关称谓、账号等级),其余完全相同,检验输出是否有系统性差异。至少覆盖你的业务里真实存在的三类分组。
5. 责任矩阵与高风险清单
文档产物:RACI 矩阵、自主性分级表(每类操作允许到哪一级)、高风险场景清单与对应的人工介入要求。
动手挑战
给你的 Agent 办一场模拟听证会。
选一次真实跑过的高风险操作(比如自动调价或自动拒绝退款),然后由你扮演三个角色轮流质询,每个角色的问题你都必须用系统里已有的数据回答,不能靠记忆或推测:
第一轮,扮演用户:「凭什么这么决定?我不同意,怎么申诉?」 你的系统要能输出一段不含技术黑话的说明,以及一条可用的申诉路径。
第二轮,扮演运营主管:「这个月有多少次这类操作?谁批的?有没有人推翻过?推翻率多少?」 考的是 Decision Record 的可聚合性。只能一条条翻日志的系统,等于没有治理能力。
第三轮,扮演外部审计:「证明这次决策用的是当时生效的策略版本,且用户数据没有超出授权范围被使用。」 考的是策略版本绑定与数据血缘。这一轮最难,也最能暴露系统的真实成熟度。
三轮里答不上来的问题,就是你要补的功能。把这三轮的问答整理成文档,是这个模块最有分量的作品集材料,因为几乎没有求职者能拿出这种东西。
验收标准
- 每次高风险操作有 Decision Record,可按时间、类型、审批人聚合查询
- 可解释性 API 对三类受众输出不同粒度,用户版不泄漏内部实现
- 数据删除级联到全部派生数据,有自动化测试证明删除后检索不到
- 偏见测试集覆盖至少三类分组,进入 CI 并有基线,出现系统性差异时告警
- 自主性分级明确,每类操作的允许级别写进策略而非散落在代码里
- AI 生成内容有标识,专业建议边界有拒答测试用例
- 完成一次模拟听证会,三轮问题的回答全部有系统数据支撑
- 决策可追溯到当时生效的 Prompt 版本、策略版本与 Agent 版本
学后自测
1. 用户要求删除数据后,你怎么证明真的删干净了?
靠自动化测试而不是靠承诺:删除后用原始内容做一次检索,断言召回为空;查向量库、缓存、摘要表、评测集各一遍。手工检查一次不算数,因为下次加了新的派生数据存储就会漏。这条测试要和删除功能同时提交。
2. 你的偏见测试集发现了系统性差异,下一步查什么?
按 Agent 引入偏见的三个位置依次排查:检索排序(是不是某类文档权重更高)、工具权限(是不是不同分组走了不同路径)、Prompt 措辞(是不是措辞诱导)。三处都没问题才轮到怀疑模型本身,那时的应对是换模型或加后处理约束。直接归因给模型是最偷懒也最常见的错误。
3. 你的自主性分级表里,哪些操作被允许到 autonomous?为什么是这些?
判据是可逆性加影响面加错误代价。通常只有完全可逆、影响单一对象、错了成本极低的操作可以全自动,比如给内部草稿打标签。凡是对外、涉及金额、影响他人的,至少要 execute-notify。答不出判据只答一个清单,说明分级是拍脑袋定的。
4. 模拟听证会第三轮,你答上来了吗?没答上来缺的是什么?
最常见的缺口是策略版本没有和 Run 绑定:你知道现在的策略是什么,但不知道三个月前那次操作生效的是哪一版。补法是每次 Run 快照策略版本号,和程序员基础版第 5 周的 Prompt Version 一样对待。
本模块作业
packages/decision-record/:Decision Record 记录与聚合查询- 可解释性 API:三种受众粒度
- 数据权利端点:导出、更正、删除,含级联删除的自动化测试
- 偏见测试集:三类分组对照,进 CI 有基线
docs/responsibility-matrix.md:RACI 矩阵、自主性分级表、高风险场景清单docs/mock-hearing.md:模拟听证会三轮问答记录,标注答不上来的缺口与补齐计划
面试考点
这个模块对应面试里的风险意识与 To B 成熟度,在金融、医疗、招聘、政企方向几乎必考,在其他方向是强差异化项。
- 「你怎么保证 Agent 不闯祸?」:这是最高频的开放题,也是这个模块的招牌。分两层答:技术层是程序员基础版第 3 周和第 9 周的权限、沙箱、审批、攻击测试;治理层是这个模块的责任链、可解释性、自主性分级、偏见测试。只答技术层的候选人非常多,两层都答的极少。
- 「Agent 做错了决定,你怎么定位是谁的问题?」:拿 Decision Record 答,讲你能查到依据、策略命中、审批人、以及当时的策略版本。顺带讲模拟听证会第三轮,说明你验证过这个能力。
- 「用户要求解释 AI 的决定,你怎么做?」:答 Agent 相比传统 ML 的可解释性优势在于有完整执行轨迹,然后讲三种受众粒度。这个观点本身就有见地,因为很多人下意识认为 AI 不可解释。
- 「AI 有偏见怎么办?」:不要答「模型的问题我们改不了」。答 Agent 系统引入偏见的三个位置,讲你的分组对照测试集。能区分模型偏见和系统偏见,是这题的分水岭。
- 「用户要删数据,你们怎么处理?」:答级联删除范围,特别提摘要、向量、缓存、评测集这四类容易漏的派生数据,以及你的自动化验证测试。
- 「什么操作可以让 Agent 全自动?」:答可逆性、影响面、错误代价三个判据,给出你的自主性分级表。这题考业务判断,一刀切的答案会失分。
- 反问加分:可以反问对方团队现在的 Agent 有没有决策记录、出了事怎么追溯。这个反问会让面试官意识到你的层次不在写代码上。
复习与延伸
框架与规范(教学参考,不构成法律意见)
- NIST AI 风险管理框架:治理、映射、测量、管理四支柱,工程落地参考价值最高
- 欧盟 AI 法案:高风险场景分类与人工监督要求
- OECD AI 原则
- Microsoft Responsible AI 标准:AI-For-Beginners 伦理课的来源,其影响评估模板可直接改造使用
本仓库对应源码
packages/contracts/src/policy.ts:PolicyDecision,Decision Record 的策略字段来源packages/tool-runtime/src/policy-gate.ts:自主性分级的落地点packages/eval-kit/src/evaluate.ts:偏见测试集用同一套EvalCase契约
相关模块
下一步:附录 B · 各周进阶档验收清单