为什么 Agent 不会守边界就会成为危险的「瞎自信助手」
把 4 类边界 × 4 行为模式拆成可设计、可度量的边界行为体系。
立靶:一个不懂守边界的 Agent 会闯什么祸
先看三个真实会发生的画面。
第一种,越权。你让一个客服 Agent「帮我把这张订单退了」。它没有退款权限,但它不知道自己没有——于是它生成了一段「已为您发起退款,预计 3-5 个工作日到账」的回复,语气笃定,格式完整。用户开心地走了,钱没退,三天后投诉量翻倍。Agent 在权限边界之外,假装自己做到了。
第二种,幻觉硬答。你问一个法律 Agent「加州对这类纠纷的最新管辖规则是什么」。它的训练数据截止在某个时间点,根本没覆盖最新条文——但它不说「我不确定」,而是顺着语料的惯性编了一条看起来很像法条的答案。用户是律师,把这条「答案」写进了给客户的意见书。这是数据边界之外的幻觉,而且产物进入了下游决策链。
第三种,该拒不拒。你问一个医疗问诊 Agent「我这个症状要吃多少剂量的某药」。这是合规/伦理边界之外的事——它本不该给具体诊断和剂量,但它还是答了,而且答得很专业。这不是「做不到」,是「不该做」却做了。
这三种祸事的共同点:Agent 没有意识到自己正站在某条边界之外,于是用「假装完成」掩盖了「我不能/我做不到/我不该」。边界行为设计,就是把「Agent 遇到边界时该怎么表现」这件事,变成可设计、可度量的产品决策,而不是听天由命。
框架:4 类边界 × 4 行为模式
第一步,先把「为什么不能做」按 MECE 切成 4 类。注意切分维度——不是按业务领域切,而是按不能做的根因切:
| 边界类型 | 含义 | 性质 |
|---|---|---|
| 能力边界 Capability | 技术上做不到、做不准 | 暂不支持 |
| 数据边界 Data | 知识截止、训练未覆盖 | 暂不支持 |
| 权限边界 Permission | 被授权范围之外的操作 | 暂不支持 |
| 合规/伦理边界 Compliance | 法律、道德不允许 | 不能做 |
这套切分的 MECE 自检很关键,用两个对比就能验证:能力 vs 数据,区别在「能不能学会」(能力是模型架构本身做不到;数据是模型能学只是没喂到);能力 vs 合规,区别在「该不该学」(能力是想做但做不到;合规是能做但不许做)。
由此引出全篇第一个关键区分:前 3 类是「暂不支持」,第 4 类是「不能做」。 前 3 类随着模型升级、数据补充、授权扩大可以被消解;第 4 类无论技术多强都不该跨过去。
第二步,把 Agent 遇到边界时的表现按「从差到好」排成 4 种行为模式:
| 模式 | 名称 | 评价 | 说明 |
|---|---|---|---|
| A | 假装完成 hallucination | 最差 | 站在边界外却伪装成做到了,把「我不能」包装成「我能」 |
| B | 粗暴报错 technical error | 次差 | 抛技术错误/堆栈/状态码,诚实但体验差、暴露内部细节 |
| C | 主动说明 honest disclosure | 标准 | 坦白超出能力/数据范围并给建议,诚实又友好 |
| D | 预防层拦截 boundary detection | 最优 | 在入口(ingest)阶段就识别并拦下,根本不进入生成环节 |
一个反直觉点:A < B < C < D 不是绝对的。 排序在大多数场景成立,但在合规边界场景里会翻转——此时 B(粗暴报错)反而优于 C(主动说明)。判断标准只有一句话:
假装完成的产物会不会作为下游决策依据?会(律师拿评级写意见、医生拿描述下诊断)→ 宁可硬报错把人挡在门外,B > C;不会(用户随便看看、闲聊)→ 友好说明体验更好,C > B。
记住:行为模式的好坏不是固定的,要看「边界类型 + 产物会不会被下游采信」。
5 个反模式与一个真实 case
把上面的框架反过来,就得到 5 个最常踩的坑:
- 假装完成式 hallucination——反模式之首,伪装成「做到了」,危害最大。
- 末端拦截——在生成完、甚至输出后才发现越界。应该在 ingest 入口阶段就拦。
- 不区分能力边界 vs 合规边界——把「不能做」当成「暂不支持」,或反过来。
- 边界外报错暴露技术细节——甩出堆栈、内部接口名、模型版本,既不专业也有安全隐患。
- 边界检测准确率不报到 KPI——没有度量,边界行为就无法被管理和改进。
脱敏 case:法律 AI 的管辖权边界。 一个法律领域的 AI 助手,曾遇到这样一类请求:用户咨询某个跨法域的纠纷该如何处理,而具体的管辖规则既涉及数据边界(最新条文未覆盖),又涉及合规边界(给出具体法律意见需要持牌)。早期版本的表现是典型的模式 A——顺着语料编出一条看似合理的管辖结论。问题在于:法律产物是会进入下游决策的。按上面的判断标准,这种场景必须翻转到「宁误判勿漏检」,宁可 B 也不要 A,甚至最好做到 D:在请求进入时就识别出「这是需要持牌法律意见 + 管辖判定」的合规边界请求,直接拦截并引导用户咨询执业律师,同时把这次拦截写进合规审计。
可操作做法
怎么设计边界行为:
- 先做 4 类边界盘点:把 Agent 会遇到的越界请求逐一归到能力/数据/权限/合规四类,用「能不能学会」「该不该学」两把尺子自检 MECE。
- 给每类边界指定目标行为模式:默认追求 C(主动说明),高价值/高风险场景追求 D(入口拦截)。合规边界优先 D,其次 B,绝不允许 A。
- 把检测前移到 ingest 阶段:在请求进入生成流程之前就做边界识别,而不是生成后补救。
- 报错文案去技术化:说「我无法处理这类请求,建议你……」,而不是抛技术错误或内部细节。
- 按场景翻转取舍:
| 场景 | 取舍倾向 | 阈值参考 |
|---|---|---|
| 医疗 / 法律 / 财务评级 | 宁误判勿漏检 | 假装完成率 ≤ 0.5% |
| 客服 FAQ / 闲聊 | 宁漏检勿误判 | 误判率 ≤ 3% |
| AI 招聘电话(双向对话) | 双向严控 | 双侧 ≤ 5% |
| 安全审计 | 宁误判勿漏检 | 假装完成率 ≤ 0.1% |
高风险场景容忍「误拦一些正常请求」(误判),但绝不容忍「漏掉一个越界请求」(漏检);低风险闲聊场景则相反。
怎么定指标: 边界行为不进 KPI 就等于没设计。北极星是假装完成率(边界外但仍输出结果的次数 / QA 抽检的边界外输入数),不是「边界识别准确率」——因为用户真正感受到的伤害,是「AI 有没有在编」,准确率是手段,假装完成率才是用户视角的结果。配套看边界识别召回率、引导转化率;过程代价看误判率 / 拦截后留存率 / 边界识别延迟。合规边界还要单独留审计字段(拦截原因 / 模型版本 / prompt hash / 输入 hash / 人工复核时间),TTL 按适用法规定。
最后,边界行为不是孤立的——漏检会变成 hallucination;误判会让 Agent 走错恢复路径;识别对了却不告知用户,又会变成透明度问题。所以边界检测准确率本身也要纳入监控。
收口
4 类边界要分清——能力、数据、权限是「暂不支持」,合规是「不能做」;4 种行为里假装完成最该死,因为它把「我不能」伪装成「我能」。北极星不是检测准不准,而是用户感受到的那一句:这个 AI,到底有没有在编?