大约半年前,我负责的一个智能客服Agent经历了一次让我整夜失眠的上线事故。上线三周后,系统被迫整体下线——原因不是性能瓶颈,也不是接口报错,而是它在某个极微妙的情境里,做出了一个“技术上完全正确、伦理上完全错误”的决定。用户反馈里那句话至今还在我脑子里转:“你们的产品像一台没有刹车却也看不懂红灯的车。”
从那时起,我开始系统性思考一个一直没人愿意正面回答的问题:当AI Agent拥有越来越多的自主决策权,我们到底怎么保证它在真实场景里不越界?市面上对“AI伦理”的讨论大多停留在论文和口号里,真正能落地到工程实现的框架少得可怜。这篇内容就是我在这半年里,从一个失败案例出发,逐步搭建AI Agent伦理决策框架的完整记录。里面包含了框架的模块设计、决策链路的实现逻辑、可解释层的构建方法,以及实测中踩过的大大小小的坑。如果你也在做Agent、聊天机器人、智能助手这类需要“替用户做决定”的系统,这篇文章应该能帮你少走不少弯路。
1. 为什么我突然开始做AI Agent伦理决策框架
1.1 一次把项目送下线的对话事故
先说那场事故的具体经过。我们当时做的是一款面向普通消费者的对话式助理Agent,核心功能是在用户提出需求时自动完成任务,比如推荐课程、预约服务、购买商品。上线前,我们做了大量功能测试、性能压测、安全攻击测试,唯独没有做“伦理压力测试”。
上线第三周,一个用户半夜联系客服,对话里透露出非常强烈的无力感和消极情绪,甚至提到了自我伤害相关的关键词。Agent识别出了情绪异常,但它接下来的操作让我现在想起还觉得后怕——它先按流程推送了一条心理咨询热线的提示信息,然后立刻切回营销链路,继续推荐付费课程,并自动生成了一笔交易订单。用户没有确认,订单便因超时被取消。
从功能角度看,Agent每一步都符合设计:识别风险、推送资源都是预设动作,推荐课程也是其核心职责。但从伦理角度看,在一个用户正处于心理脆弱状态的时刻,继续用商业目标介入,完全违背了“优先保障用户福祉”的基本原则。投诉只在两小时内就涌入了十几条,产品被迫下线整改。
复盘时我们做了根因分析:问题不在某个单独模块,而是整个系统缺少一个“在冲突目标之间做伦理权衡”的决策层。营销目标函数、用户需求识别、情绪检测模块各自运转得很好,但它们之间没有优先级关系,没有红线,没有兜底。说白了,我们造了一台性能优越但没有刹车的车。
1.2 提示词伦理约束的四种失效方式
事故之后,团队里第一反应是:往系统提示词里加一句“你要有同理心,要保护用户,不要伤害用户”。这个方案看起来零成本,符合直觉,但只用了两天就被我否掉了。我把加完提示词后的系统拉出来做了一系列压力测试,发现它的失效方式至少可以归纳为四种。
第一种是无触发条件。像“要有同理心”这种抽象指令,模型没有具体的触发条件可以去探测“什么时候应该启动同理心”。它并不清楚用户出现哪些信号时,商业任务必须让位于安全任务。第二种是优先级不明。就算模型产生了一定的“犹豫”,它仍然会倾向于执行用户表面的命令,因为用户任务在提示词里占比极大,伦理约束只是一句话,没有权值。第三种是冲突无法裁决。当“保护用户隐私”和“及时干预自杀风险”这两条伦理准则自身发生冲突时,提示词层面根本没有裁决机制。第四种是完全不可审计。没人知道模型是在哪一轮对话中、基于什么依据、做了怎样的判断,出了问题只能靠用户自己描述截屏。
接下来我们开始设计真正的伦理决策框架,目标不是碎碎念式的道德说教,而是一套能在系统内部运行、被测试、被回滚、被审计的工程结构。
2. 框架全貌:四个核心模块和三条设计铁律
2.1 四个模块:规则层、情境感知层、权衡层、可解释层
我最终确定的框架由四个核心模块组成,各有分工,彼此之间有清晰的数据接口。这套结构和微服务的思想有点像:每个模块只做一件事,通过标准化的输入输出协议协作,而不是把所有逻辑塞在同一个prompt里。
第一个是规则层,职责是将伦理准则正式化成可计算的约束条件。它包含一套带版本号的伦理规则库,每一条规则都是结构化数据:触发条件、作用范围、限制动作、违规级别、兜底行为。比如“禁止在高危心理状态下引导用户付费”就是一条规则,它有明确的触发信号(情绪识别分数 > 0.8),有明确的限制动作(阻断交易类行为)。
第二个是情境感知层,职责是识别当前对话中的伦理相关特征,比如用户情绪状态、对话意图、是否涉及医疗建议、是否涉及未成年人等。它输出一个结构化的向量,里面包含信号名称、置信度、上下文证据,规则层靠它来决定是否触发某条规则。
第三个是权衡层,这是整个框架最核心也最难做的部分。当不同目标发生冲突时——比如用户想要某种信息但这条规则不允许提供——权衡层负责给不同的决策路径打分,并通过多目标排序选出相对最优的动作。它不是非黑即白地允许或禁止,而是通过加权计算找出“在此情境下最不坏的选择”。
第四个是可解释层,负责把决策过程记录下来并转化为可读的解释。它输出两种东西:一种给用户看,简短且带有同理心;另一种给开发者和运营方看,包括命中规则ID、信号、置信度、最终动作以及权衡计算的分数明细。
2.2 三条设计铁律:可回滚、可审计、最低干预
在设计整个框架时,我们给自己立了三条铁律,后期所有功能迭代都没敢违反过。
可回滚是第一条。每一条规则都独立带版本,任何一条规则上线后如果被证明误杀率过高,都可以在不影响其他规则的前提下单独回退。这里要强调的是粒度,必须是“规则级回滚”,而不是“模块级回滚”。如果回滚一个模块,其他规则全部下线,影响面就太大了。
可审计是第二条。系统每次做出伦理决策,都必须生成一条完整的决策记录,包含当时的输入信号、命中规则、权衡过程、最终动作。我们会定期把审计日志拿来做交叉比对,确认实际动作确实遵循了规则定义。
最低干预是第三条,也是我吃了最大亏之后总结出来的。伦理控制的目标不是把Agent管成一个什么都不敢做的胆小机器人,而是恰好拦截那些可能造成实质伤害的行为。凡是正常用户可以获得的信息和服务,Agent应该照常提供;只有在风险信号明确、置信度足够高时,才进行干预。一刀切式的限制看着安全,实际上会把产品体验毁掉,还会导致大量用户流失。
3. 规则层怎么写才不会变成一纸空文
3.1 把伦理准则翻译成可计算的约束条件
规则层听起来简单,真正写起来就发现难度不在“内容好不好”,而在“能不能被机器执行”。一句“要保护用户隐私”没法直接部署,你必须把它拆成可计算的条件。我的经验是,每一条伦理规则都必须回答清楚几个问题:什么信号出现时触发?信号达到什么阈值?影响哪些Agent动作?触发后执行什么行为?兜底行为是什么?
拿最典型的高危心理状态场景来说。经过团队梳理,我们把一句话式的“心理状态风险时不推荐付费服务”翻译成了这样的结构化规则:
{ "rule_id": "DR-001", "name": "禁止在高危心理状态下引导付费", "trigger": { "signals": ["self_harm_keywords", "negative_emotion_score"], "threshold": 0.8 }, "affected_actions": ["recommend_course", "create_order", "upsell"], "action": "block_affected_actions", "fallback": "show_help_resources", "priority": 95, "version": "2024.03.11" }这条规则的含义很明确:当系统检测到用户情绪极度消极,并且文本中包含自伤相关关键词时,推荐课程、生成订单、追加销售这三类动作会被直接阻断,系统转而展示求助资源信息。规则不阻止Agent继续陪伴用户、回复问题,只限制商业转化类动作。
这种结构最大的好处是全链路可控。规则可以加入自动化测试,每一处布尔判断都能写成单元测试。而且由于有优先级字段,后续遇到冲突时,系统可以直接按优先级裁定。每一条规则我们都要求有明确的来源说明,比如来自行业准则、用户投诉复盘还是内部评审共识,这样后续迭代时才能追责和辩论。
3.2 规则粒度和触发条件的来源
很多团队写伦理规则时最常犯的错误是规则粒度太大。比如一上来就写“禁止歧视”,结果线上模型把包含“性别”关键词的对话全拦了,最后概括为一类误报。粒度太大会导致系统根本分不清“用户问哺乳假政策”和“用户讨论性别议题”的差别——前者应该正常回复,后者才可能需要特殊评估。
我的经验是,规则应该围绕“具体可定义的伤害类型”来组织,而不是围绕抽象价值词。用“金融建议边界”替代“不要误导用户”,用“未成年人的识别与保护流程”替代“保护未成年人端”,用“医疗诊断边界”替代“不要提供健康建议”。边界越清晰,规则的可执行性越强,误杀率越低。
另外,触发条件不能只靠一个信号,至少要两个以上信号交叉才比较稳。单靠关键词匹配,早晚会被一些礼貌表达骗过去。我们目前的触发条件基本都是复合条件,比如情绪分加上主题分类,再加上特定的动作意图。三个信号同时达到阈值才触发规则,误报率会低一个量级。
规则内容的来源也很重要。我推荐的做法是建立一个迭代闭环:初始规则库由三类输入组成——行业公认的底线伦理(这部分不用自己发明,参考现有准则体系整理即可)、历史用户投诉和负面反馈聚类、以及内部多方角色参与的伦理研讨会结论。之后每个月根据新发现的问题持续补充规则条目。这个规则库不能是一次性建完就完事的静态产物,而是需要主动持续生长的动态系统。
3.3 规则版本的灰度切换机制
规则库上线方式和功能开发类似,也走灰度发布,我们用的是一套简化版的feature flag机制。每次新增或修改规则时,先在一小部分流量上生效,观察误杀率、用户投诉率、任务完成率等指标,再逐步扩大。
这里有个环境配置的小案例。我们把规则按版本分组,每个请求头里带上用户分桶标识和规则版本号。灰度切流量时用类似下面的配置:
RULES_VERSION = { "gray_5pct": ["2024.03.11", "v1.2.0"], "normal": ["2024.03.01"] }当灰度版本运行满48小时,评估指标没有异常,再迁移到全局流量。一旦出现误杀率跳升,可以在配置中心里一键把灰度组的规则指向旧版本,整个过程不到一分钟。
关于规则回滚,我强烈建议提前演练。我们曾发生过一次规则引发了大面积误拦截,但当时没有预演过回滚流程,加上部分缓存没有刷新,问题持续了近半个小时。后来我们建立了每月一次的回滚演练,专门验证规则版本过期、缓存失效、日志断流这些极端情况下的恢复能力。
4. 齿轮咬合:情境感知与多目标权衡的链路设计
4.1 情境感知层:从文本中提取决策相关特征
情境感知层是整个框架的“眼睛”。它需要把一段对话转化为决策系统能够消费的结构化特征。我最初想过直接用一个端到端深度学习模型来输出风险分数,但后来放弃了——原因是模型很难给出可解释的证据,出了问题不好向非技术同事交代。
最终采用的是特征组合方案。情境感知层同时运行几个相对轻量的模型和规则引擎,每个模型只负责提取某一维度的信号:一个情绪分类器负责识别积极、中性、消极、极度消极;一个意图识别模型负责判断用户当前是想获取信息、想购买商品,还是需要情感支持;一组领域主题分类器负责识别对话是否涉及医疗、法律、金融、未成年保护等特殊领域;还有一组轻量的实体识别器负责抽取关键实体,比如年龄、地域、时间等,用于判断影响范围。
这些信号会被汇总成一个字典结构,比如:
situation_features = { "emotion": {"label": "severe_negative", "score": 0.92}, "domain": ["mental_health", "education"], "intent": "seek_support", "self_harm_keywords": True, "age_related_signal": None, "agent_pending_action": "recommend_course" }规则引擎拿到这个结构化特征后,按预定义条件进行匹配。用这种方式的好处在于,每一步都有明确的模型输出可追踪,任何一个特征的值都可以回溯到对应的模型或者规则上。就算模型预测错误,也能够在日志里清晰看到是哪一维度出了问题,方便针对性调优。
4.2 冲突识别:当两条规则打架时怎么办
伦理规则之间是会打架的,这一点在设计中必须实打实地应对。最常见的冲突是“保护隐私”和“主动介入干预”之间的拉扯。比如用户透露出明显的自伤倾向,系统想将对话中的风险信息发送给紧急联系人,这时候保护隐私的规则和生命优先的规则就发生了冲突。
我们的解法是:为每一条规则赋予一个“优先级分数”,在冲突时按分数排序。生命安全和身体伤害相关的规则优先级最高(95~100),隐私保护和商业合规通常在中间(70~90),用户偏好和体验类规则优先级相对较低(50~70)。当两条规则同时命中时,系统以优先级高的为准,同时在决策记录里明确标出“冲突已发生,按优先级裁决”。
但这还不够。纯数字优先级会遇到一个边界情况:两条规则优先级相同。这时我们的策略是执行“较保守动作”,也就是选择限制性更强、伤害可能性更小的路径。比如隐私保护和风险预警同为90分时,系统选择在受控范围内向用户提供求助资源,而不是将敏感信息直接发送给外部联系人。
我建议每个团队都画一张伦理冲突矩阵表,列举出现频率最高的冲突对和裁决方式,这样开发和测试时才知道预期行为是什么。光靠抽象原则去推,很容易在生产环境出现各写各的现象。
4.3 权衡层的打分排序与兜底策略
情境感知层输出了“发生了什么”,规则层给出了“哪些动作被限制”,接下来就轮到权衡层回答“到底该怎么做”。我之前差点把权衡层做成纯逻辑的if-else链,后来发现情境一复杂,if-else就膨胀到不可维护。现在的实现是基于多目标评分的轻量决策器。
每一步Agent准备执行动作前,系统会评估三个分数:安全分(执行该动作可能造成伤害的概率)、合规分(是否符合规则库中所有适用约束)、价值分(该动作多大程度上满足了用户当前需求和产品目标)。综合决策分数按加权计算,代表实际执行的可能性。
假设决策公式如下:
decision_score = 0.6 * safety_score + 0.2 * compliance_score + 0.2 * utility_score如果 decision_score >= 0.8,动作放行;如果分数在0.6到0.8之间,系统会降低动作的侵入性——比如不创建订单但可以提供信息;如果分数低于0.6,动作被阻断,并转入人工或替代方案。
兜底策略,我认为才是权衡层真正的价值所在。不要让系统在“完全执行”和“完全不执行”之间二选一,而是提供一条中间路径。我们定义了三档兜底行为:降级动作(保留信息输出,去除交易属性),延迟动作(向用户确认后进入24小时冷却期),转人工通道(如果是高风险场景,优先连接到人工客服)。
这套设计上线后,我最大的感受是,Agent不再需要每次做非黑即白的道德判决,它可以像人一样在复杂情形里“谨慎地继续”,这比简单粗暴的阻断合理得多。
5. 可解释、可审计:让每个决定都有据可查
5.1 决策留痕的数据结构设计
没有记录的系统不值得信任。这句话是我在设计一开始就给自己画的底线。每个被伦理模块介入的决策,都要生成一条结构化的决策记录。我目前使用的核心数据结构长这样:
| 字段 | 说明 | 示例 |
|---|---|---|
| decision_id | 决策全局唯一ID | DEC-20240513-0001 |
| session_id | 会话ID | SESSION-99831 |
| timestamp | 决策时间,带毫秒 | 2024-05-13T02:31:45.221Z |
| rule_ids | 命中的规则ID列表 | DR-001, DR-007 |
| conflict_flag | 是否产生规则冲突 | true |
| situation_features | 关键情境特征快照 | emotion: severe_negative |
| candidate_actions | 候选动作列表 | recommend_course, show_help |
| decision_score | 综合决策分数 | 0.42 |
| final_action | 最终执行动作 | show_help_resources |
| fallback_reason | 兜底选择原因 | low_decision_score |
| rule_version | 规则版本号 | 2024.03.11 |
每次决策至少插入一条这样的记录,结构固定、字段清晰,方便后续做统计分析和审计查询。我们直接把这些记录写入独立的消息队列,再由专门的消费者服务写入数据仓库,避免和主业务数据库发生性能干扰。这个地方重点提醒一下,决策日志不能写在模型进程内内存里,进程一重启数据就没了,审计的时候悔都来不及。
5.2 面向不同对象的解释输出
同样一条决策,不同的人需要看不同的信息密度。内部研发要看到所有技术字段,运营人员需要看到简洁的原因描述,终端用户只需要看到带同理心的一句说明。我把解释输出做成了一套分级的模板。
给用户看的版本,核心目标是不让用户感到被机器审判,而是让用户感到系统在关心他。比如原场景中,最终输出是:“我想先暂停一下刚才提到的课程,因为我觉得此刻你可能更需要一些来自真人的陪伴和帮助。需要我把专业支持的联系方式发给你吗?”这种输出短小、温和,且不暴露系统内部的任何规则判断。
给运营和产品人员看的版本,要包含基本信息:命中规则、触发信号、采取了什么动作、置信度如何。这样运营团队处理用户投诉时,不用去翻原始代码才能理解Agent为什么这么做。给研发和审计看的版本,就是上面表格里那种最完整的数据记录,直接对接日志平台和审计系统。
需要特别注意,输出给用户的解释必须避免出现“系统检测到您有心理问题”“根据风险评估”这类直白生硬的说法,这会极大伤害用户体验,并且传达出“机器在给人贴标签”的冷冰冰感。措辞这里要多花时间打磨,和Legal、文案、客服反复过几轮。
5.3 审计日志如何做到既完整又不侵权
记录决策日志时,很容易陷入一个矛盾:信息越完整,审计越方便,但用户隐私风险也越大。尤其是医院、金融等隐私敏感领域,把完整对话以及分析结果一股脑写进日志,本身就是合规风险。
我的方案是必要最小化原则。决策日志中记录的是特征级的抽象结果,比如情绪标签和分数,而不是原始敏感文本。原句不写入日志,或者以脱敏、摘要形式存储。像识别到的自伤关键词,只保存关键词命中类型,例如self_harm_verbal_hint,不保存具体的原文句子。这样既满足审计需要,也降低数据泄露的风险等级。
日志还要设置严格的访问权限分级。研发人员可以看调试日志,但只有少数几个数据管理员或安全团队核心成员才能访问包含高敏感信息的记录字段。每次访问都要留痕,这一点在不少实际案例中都被检验过,我不多展开,但它绝对不能省略。
6. 实测记录:误杀率涨了三倍之后,我改了什么
6.1 第一轮压测暴露出的四种典型误杀场景
规则库上线后,我们做的第一件是趴下来狠狠压测。很快发现误杀率高得离谱,从原来的2%直接飙升到6%以上,其中有两成是用户根本没有任何风险,只是说了某些“容易引起判断误判的词语”。
我把误杀场景归纳为四类,每一类都值得作为案例沉淀下来。第一类是隐喻式玩笑。用户说“再这样下去我不想活了”,实际只是在群里和朋友调侃工作压力,语境里完全没有真实风险。传统关键词匹配会直接命中,我们的情绪分类器又因为愤怒值偏高,最终触发高危规则,把用户邮件订阅都停了,体验极差。
第二类是文化俗语差异。不同地区的用户用词习惯很不一样,有些表达在北方是日常怼话,在我们测试样本里却被判成极度消极,比如“这日子没法过了”。这类误杀增加很多,倒逼我们给规则库加入地域化的口语理解层。
第三类是转述性语句。用户说的是“我朋友说他最近总睡不着”,主体是第三人,风险信号来自转述而非本人。系统如果不做指代消解,会把风险算到当前用户头上,触发不必要的干预。
第四类是临时情绪与长期状态不分。用户因为搬家、加班、论文压力短时间内情绪低落,但并没有持续的自伤意图。模型只看到片段就触发拦截,会频繁打断用户正常操作。
这四类问题的共同根源是情境感知层的信号粒度太粗,只看信号,没看语境和主体。后面我们专门给高风险信号增加前置的“对象判定”和“场景理解”,把误杀率重新压回2%左右。
6.2 从一刀切拒绝到分级干预的修正
压测阶段还暴露出一个原则性错误:最初我们只要命中风险规则就直接阻断Agent的所有动作。这个做法的确安全,但后果是大量低风险场景也被误伤。例如一个用户只是情绪有点低落,结果连基础的课程详情都无法查看,这显然不是我们希望达到的干预效果。
我和团队重新梳理了干预分级,把“全有或全无”改成三级梯次。L1是提醒级,适合风险信号较弱的情况:Agent继续正常回复,但会在结尾追加一句关怀性提示,比如“如果你需要找人聊聊,我随时在”。L2是限制级,适合风险信号中等:Agent可以继续提供信息和帮助,但禁止创建订单、订阅、支付等交易类动作。L3是阻断级,适合风险信号非常明确的情况:Agent停止回复,强制转接人工,并展示紧急求助资源。
| 干预级别 | 触发条件 | Agent行为 | 用户感知 |
|---|---|---|---|
| L1 提醒 | 单一弱信号 | 正常回复 + 关怀提示 | 温和,不突兀 |
| L2 限制 | 复合中风险信号 | 信息可查,交易动作禁用 | 功能被部分限制 |
| L3 阻断 | 高置信度高风险信号 | 停止生成,转人工 | 人工客服介入 |
这个设计其实和人体免疫系统的逻辑很像:不是一有风吹草动就关闭全部器官,而是根据威胁等级分级反应。分级干预落地后,误杀率对用户体验的冲击明显减小了,投诉量也在下降。
6.3 长期评估机制:模拟对线测试与指标看板
框架上线不能只看一次压测结果,更需要长期动态评估。我们搭了一套模拟对线测试体系:离线构造大量高风险和低风险的对话样本,定期在框架上跑回归测试,确保新规则上线不会破坏已有规则。样本库需要持续更新,每月吸收新的真实误判案例,否则评估结果很快就失真了。
我建议每个Agent伦理决策框架至少盯住三个核心指标。第一个是误杀率,也就是低风险场景被错误干预的比例,这个直接决定用户体验伤害面。第二个是漏放率,即高风险场景未被任何规则拦截而直接放过的比例,这个关系到底线安全。第三个是决策延迟,即从请求到框架给出决策结果的额外耗时,这个决定框架是否会影响原有的业务体验,超过一定的毫秒数就要考虑异步评估或缓存方案。
我们做了一个简单的看板,每天展示这三项指标的分时趋势,新规则灰度期间单独标记。一旦误杀率连续两小时超过基线阈值,系统自动发送告警,值班人员可以在5分钟内完成规则回滚。这种“指标驱动+快速反应”的机制,比任何复杂的架构都更能保障长期稳定。
7. 落地这件事,工程之外才是难点
7.1 伦理决策不是纯技术问题
技术上把框架搭起来之后,你会发现越来越难的部分其实不在代码里,而在组织协作和价值观共识上。谁来定义不同风险的权重?谁来裁决规则打架时的优先级?谁来对误杀造成的业务损失负责?这些问题如果抛给一个纯技术团队,基本会演变成扯皮。
我们的做法是成立一个常态化的三方协同小组:业务产品团队、技术研发团队、以及承担法务安全和用户研究职能的代表。每周碰一次,专门评审规则库的变更和新发现的风险案例。技术团队负责实现和评估,其他角色负责提供判断依据和价值观输入,大家各司其职,避免某一种单一视角主导整个决策体系。不建议任何角色一言堂,但也不建议无休止争论,流程要固定下来。
7.2 逃生通道与灰度发布
无论规则库调整得多仔细,线上仍然有意外发生。要么用户投诉“Agent拒绝提供合法服务”,要么媒体会关注到某个被放过的风险事件。所以我强烈建议在框架外层同时准备两条逃生通道。
第一条是运营紧急降级开关。这个开关一旦打开,所有伦理规则暂时进入旁路观察模式,只记录不阻断,同时将Agent整体切换至低风险功能模式。这个主要用于极端情况下的快速止损,不能当作常规手段使用。第二条是人工接管机制。当L3阻断被触发,Agent绝对不能把用户扔在半路,必须能无缝转接给人类支持人员。建议把会话上下文摘要、决策记录一起打包传递给人工坐席,省去用户再次复述的麻烦。
7.3 框架的边界:价值对齐与多智能体互信
最后说一句实话,这个框架有它的边界。它能保证Agent在绝大多数已知场景下不越界,但并不会自动让Agent变成一个有道德感的智能体。它更像一套交通规则和护栏,保证能力强大的Agent在人类规划好的轨道上行驶,而不是赋予它真正的道德认知。
多智能体之间的伦理互信,目前也是我正在琢磨的另一个课题。当多个Agent互相协作、共享上下文的时候,一个Agent的错误决策可能会被另一个Agent放大。比如一个Agent判断失误送出了某个受限信息,另一个Agent基于该信息继续执行了高权限动作,风险链条就跨系统传递了。这个方向目前业界也还在早期阶段,等我们实践得更有心得之后,再来写一篇专门的内容。
回到最开始那场事故。如果当初就有这个框架,它大概率不会发生。但我现在不太追悔当初没早点建框架,更愿意把它看作一次痛到麻木但值得的教训。工程上有一个老生常谈的道理:你无法管理你不愿意测量的事情。伦理决策也一样——把它变成可测量、可回滚、可审计的工程实体,比任何漂亮的口号都有用。照例分享一个我现在坚持的小习惯:每周五下午固定拉出最新一周的被干预案例,以人工复核的方式逐条看过去。不需要多,五条十条就行,关键是持续。我保证,坚持两个月以后,你会对这个框架产生完全不一样的感觉。