想象你是一位主厨,带了一个聪明勤快的学徒——他就是 AI Agent。你能教他切菜、备料、颠勺,他学得很快,甚至能独立出几道简单菜。但你不会因此离开厨房:出锅前你会尝一口,采购高档食材时你需要签字,油锅起火时你会一把抢过锅铲。这就是“人类在环”(HITL):人不是站在系统外面的旁观者,而是这个智能回路里随时可以介入、也必须在关键节点介入的一环。 Agentic AI 时代来了,一个会聊天的模型,变成了会做事的 Agent。它能替你发邮件、修代码、调配置、甚至付款。可干得越快,一旦出错,破坏速度同样是灾难级的。HITL 从来不是效率的“绊脚石”,而是给这辆高速行驶的车装上方向盘、刹车和安全带。这篇文章会带你搞懂:为什么需要人类介入、该在哪个环节介入、介入盯多细,以及审批、修正、接管三种模式的落地方法。

岗位关联

学完 HITL,你就能设计出“既敢放手让 Agent 干活、又能随时喊停”的智能体系统——这是 AI 从业者从“做出 Demo”到“做出可靠产品”的分水岭。

目录
  1. 可视化演示
  2. 1. 概念与价值:从旁观者到回路中的一双手
  3. 2. 介入环节:主厨会在哪三个时刻现身
  4. 3. 介入粒度:盯摆盘,还是盯盐粒
  5. 4. 审批模式:签个字,再放行
  6. 5. 修正模式:尝一口,告诉我哪里不对
  7. 6. 接管模式:一把抢过锅铲
  8. 7. 平衡与信任:敢放手,也永远留一把铲子
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

1. 概念与价值:从旁观者到回路中的一双手

厨房里最有纪律感的动作,是学徒举起勺子,主厨点点头,这道菜才被允许出锅。这个“点头”不是客气,而是一种制度:学徒知道有人在看,主厨知道自己在为自己的招牌负责。这个制度放在智能体系统里,就是 HITL(Human-in-the-Loop)——人类在智能体运行的闭环中扮演关键角色,而不是在旁边干瞪眼的观众。

HITL 的历史其实比你想象得早。早期的专家系统、推荐系统里,“人在环”主要是人在测试环境里给模型标数据、审查规则。到了 Agentic AI 时代,Agent 从“建议者”变成了“执行者”,它会自己规划任务、调用工具、修改状态,这时的人类角色也随之升级:从“测试员”变成了与 Agent 共事的“协作操作员”。一个人机协同的靠谱系统,通常有三个特征:人在回路,即关键决策必须经过人;可中断,即人类随时能打断 Agent 的连环操作;可逆转,即操作能被回滚或修复。

如何衡量一个系统的“自主程度”?最直接的指标是人类介入覆盖率:

但要记住,覆盖率不是越高越好。主厨不可能每道菜都从洗菜盯到摆盘,否则学徒就没有存在的意义。HITL 设计的真正艺术,是知道哪些任务该“点头”,哪些任务该“交出去”。

h=NhumanNtotal\displaystyle h = \frac{N_{\text{human}}}{N_{\text{total}}}
这个公式衡量在所有任务中,有多少比例实际上经过了人类介入。h 越接近 0,系统越自主;越接近 1,人越累。
  1. 人类介入次数 $N_{\text{human}}$统计周期里,人类实际参与决策或修正的任务数。它包含审批、修正、接管三种介入方式。
    NhumanN_{\text{human}}
  2. 任务总数 $N_{\text{total}}$Agent 在同一周期内处理的所有任务数量,无论是否经过人工。
    NtotalN_{\text{total}}
  3. 覆盖率 $h$两者的比值。设计团队会用这个指标观察系统的自动化水平,并结合事故率做权衡。
    NhumanNtotal\displaystyle \frac{N_{\text{human}}}{N_{\text{total}}}

2. 介入环节:主厨会在哪三个时刻现身

有经验的主厨不会一直在灶台边站着,但他会精确出现在三个时刻:学徒写菜单时他看一眼搭配;颠炒时他听一下火候;出锅装盘时他尝一口味道。Agent 系统也有同样的三个介入窗口:规划、执行、反馈。

规划介入发生在 Agent 动手之前——它准备设定什么目标、调用哪个工具、按什么顺序执行。这一步介入成本最低,效果最好,就像主厨在菜单阶段就拦住“西红柿炒榴莲”这种离谱方案。执行介入发生在 Agent 的每一步动作上,比如调用删除接口、发送邮件、修改配置,这是风险最集中的环节。反馈介入发生在动作完成之后,人检查结果,决定“通过、修补还是返工”。

那是不是三个环节都要介入?当然不是。实践中常用“置信度”来决定要不要介入:让 Agent 自己先估一个信心分数,低于信任阈值时自动请求人类介入。这个判断可以写成:

这就像师傅教的规矩:拿不准就举手。但反过来,如果学徒什么都举手,师傅反而会觉得他根本没学会判断。所以阈值怎么调,本身就是一门平衡学问。

intervene if fconf(st)<θtrust\displaystyle \text{intervene} \ \text{if} \ f_{\text{conf}}(s_t) < \theta_{\text{trust}}
意思是:Agent 对当前状态 $s_t$ 的信心低于人类设定的阈值 $\theta_{\text{trust}}$ 时,就把控制权交给人类。
  1. 置信度函数 $f_{\text{conf}}(s_t)$Agent 根据当前上下文(例如任务风险、数据异常度、模型输出熵)给“我能搞定”打的分数。
    fconf(st)f_{\text{conf}}(s_t)
  2. 信任阈值 $\theta_{\text{trust}}$人类预先设定的最低信心底线。阈值越高,人介入越频繁;越低,Agent 越自由。
    θtrust\theta_{\text{trust}}
  3. 介入条件置信度低于阈值就触发人类介入。这是一种“按需介入”,而不是“全部介入”。
    intervene if fconf(st)<θtrust\text{intervene} \ \text{if} \ f_{\text{conf}}(s_t) < \theta_{\text{trust}}

3. 介入粒度:盯摆盘,还是盯盐粒

同样是“盯”,主厨盯一碗凉拌菜,可能只需在装盘后看一眼;盯佛跳墙,就要守在灶边看火候、看时间、看每一味下锅的顺序。介入粒度,就是“一次人类介入到底覆盖多大范围的决策”。

粗粒度介入,通常指对“任务结果”做审批——Agent 把活干完,交付一份结果,人只看最终产出是否合格。细粒度介入,则对“单个动作”甚至“动作参数”做检查,比如修改某个 prompt、确认某次函数调用的参数。粒度越细,人类控制力越强,但认知负担也越重。

实际系统不会固定用一种粒度,而是跟着风险走。风险越高,介入粒度越细。可以引入一个介入强度系数:

主厨的经验是:菜的风险越高,就越不能只远远看一眼。你要是在熬制高汤时跑去刷手机,等糊锅了再想细看,已经晚了。粒度跟着风险走,这就是 HITL 的朴素智慧。

λ=min⁡(1,R(st)Rmax⁡)\displaystyle \lambda = \min\left(1, \frac{R(s_t)}{R_{\max}}\right)
$\lambda$ 表示当前需要的介入强度:风险接近上限时,$\lambda$ 趋向 1,人类细粒度介入;风险很低时,$\lambda$ 接近 0,粗粒度甚至免介入。
  1. 当前风险 $R(s_t)$Agent 在执行状态 $s_t$ 时估算出的风险分数,例如 0 到 1 之间的数值。
    R(st)R(s_t)
  2. 风险上限 $R_{\max}$系统设定的安全红线,超过它就必须考虑强制接管。
    Rmax⁡R_{\max}
  3. 取最小值 $\min(1, \cdot)$把比例限制在 0 到 1 之间,避免超过 1。
    min⁡(1,x)\min(1, x)
  4. 介入强度 $\lambda$数值越大,人类参与越细、越频繁。设计团队可以用它动态调整“粗粒度审批”和“细粒度修正”的切换策略。
    λ=min⁡(1,R(st)Rmax⁡)\displaystyle \lambda = \min\left(1, \frac{R(s_t)}{R_{\max}}\right)

4. 审批模式:签个字,再放行

医院手术前有“三方核对”,公司采购超过一定金额要多人签字。这些制度的核心是:操作本身可以执行,但必须有一个“人类批准”的闸口。审批模式是 HITL 里最常见、也最好落地的一种。

适用场景一般有两个特征:一是操作后果较重,比如删除数据、对外发款、发布公告;二是操作的必要性需要人类主观判断,比如“这条营销文案是否合适”。实现机制也不复杂:Agent 在执行前提交一份“意图说明”,人类结合上下文点“通过”或“拒绝”。

关键设计在于,什么任务必须过审批?可以用风险公式来界定:

还有一个细节经常被忽略:审批超时怎么办。如果人 5 分钟没点按钮,系统应该默认拒绝执行,而不是默认放行,同时发消息催促。这就像主厨签字前一定要翻一眼菜谱和采购单——审批必须带上下文,盲签等于没签。

R(st)=P(fail)×I(impact),R>Rthreshold⇒wait for approval\displaystyle R(s_t) = P(\text{fail}) \times I(\text{impact}), \quad R > R_{\text{threshold}} \Rightarrow \text{wait for approval}
风险 = 失败概率 × 影响程度。风险超过阈值时,Agent 不能自己动手,必须停下来等人类审批。
  1. 失败概率 $P(\text{fail})$Agent 评估当前操作可能失败的可能性,例如 0.3 表示三成概率出岔子。
    P(fail)P(\text{fail})
  2. 影响程度 $I(\text{impact})$如果失败,后果有多严重。删个临时文件可能是 0.1,删生产库可能是 1.0。
    I(impact)I(\text{impact})
  3. 风险阈值 $R_{\text{threshold}}$人类制定的“要不要惊动我”的分数线。
    RthresholdR_{\text{threshold}}
  4. 审批触发风险超过分数线,Agent 进入等待批准状态,暂停后续动作。
    R>Rthreshold⇒wait for approval\displaystyle R > R_{\text{threshold}} \Rightarrow \text{wait for approval}

5. 修正模式:尝一口,告诉我哪里不对

你让学徒炒一盘鱼香肉丝。他端上来,你尝了一口:“醋少了,下次多放半勺。”学徒点点头,下一次做的时候自动多放半勺。你不需要亲自去炒,也不需要把整道菜推翻重来,只需要给一个“修正方向”。这就是修正模式:人类不接管执行,只对 Agent 的输出做增量调整。

修正模式有一种很自然的实现方式:人类反馈作为“方向信号”,让 Agent 朝这个方向调整自己的动作。假设 Agent 原本要执行动作 $a_{\text{old}}$,人类给出了一个建议动作 $a_{\text{human}}$,那么修正可以写成:

修正模式在长期运行中会沉淀出“偏好注入”:Agent 越来越懂得用户喜欢什么语气、什么风格、什么边界。学徒做得越久,越懂主厨的口味——从“你纠正我”变成“我猜你会喜欢”。

anew=aold+α⋅(ahuman−aold)\displaystyle a_{\text{new}} = a_{\text{old}} + \alpha \cdot (a_{\text{human}} - a_{\text{old}})
新动作 = 旧动作 + 学习率 ×(人类建议 − 旧动作)。$\alpha$ 控制人类修正被吸收的强度。
  1. 旧动作 $a_{\text{old}}$Agent 原本打算执行的动作,比如“退款金额 500 元”。
    aolda_{\text{old}}
  2. 人类建议 $a_{\text{human}}$人类给出的参考动作,比如“退款金额 300 元并附赠优惠券”。
    ahumana_{\text{human}}
  3. 修正方向 $(a_{\text{human}} - a_{\text{old}})$两者的差值,代表“你偏了多少、该往哪边掰”。
    ahuman−aolda_{\text{human}} - a_{\text{old}}
  4. 学习率 $\alpha$0 到 1 之间的小数,控制这次修正的力度。$\alpha$ 大,Agent 学得快但容易矫枉过正;$\alpha$ 小,学得稳但需要多轮反馈。
    α⋅(ahuman−aold)\alpha \cdot (a_{\text{human}} - a_{\text{old}})

6. 接管模式:一把抢过锅铲

厨房里最紧张的瞬间是油锅起火。这时候主厨不会先跟学徒商量“你觉得该不该关火”,而是一把抢过锅铲,把锅端离灶台。接管模式,就是 HITL 里优先级最高、最紧急的人类介入方式。

什么时候必须接管?两种典型情况:一是风险已经超过系统红线,比如 Agent 连续操作失败,可能造成不可逆损失;二是人类对 Agent 的信任跌破了安全底线,比如它接连做出违背用户意图的行为。可以形式化为:

接管不等于“砸锅”。好的接管实现,会先冻结 Agent 的当前状态,保留已完成的操作日志和中间结果,让人类从当前状态接着处理,而不是清空一切从头再来。这就好比主厨抢过锅铲,是接着把这道菜炒完,不是把锅扔进垃圾桶。

takeover if R(st)>Rmax⁡ or Dtrust(st)<ϵsafe\displaystyle \text{takeover} \ \text{if} \ R(s_t) > R_{\max} \ \text{or} \ D_{\text{trust}}(s_t) < \epsilon_{\text{safe}}
当风险超上限,或者信任度跌破安全阈值时,系统强制将控制权交还给人类。
  1. 风险超限 $R(s_t) > R_{\max}$当前状态的风险评估越过红线,系统自认为“处理不了”或“不许再处理”。
    R(st)>Rmax⁡R(s_t) > R_{\max}
  2. 信任跌破 $D_{\text{trust}}(s_t) < \epsilon_{\text{safe}}$人类对 Agent 的信任度低到安全线以下,哪怕当前风险不高,也不该继续让它干。
    Dtrust(st)<ϵsafeD_{\text{trust}}(s_t) < \epsilon_{\text{safe}}
  3. 触发接管两个条件任一满足,就进入“人类接管”流程,Agent 停止新动作并移交运行上下文。
    takeover\text{takeover}

7. 平衡与信任:敢放手,也永远留一把铲子

好的主厨懂得什么时候该放手:如果学徒连续十道菜都不出错,主厨会让他独立负责凉菜档;如果有一天他烧糊了汤,主厨又会把他调回基础岗重新练。Agent 系统也一样,HITL 的终极目标不是“永远不放手”,而是建立一套动态的信任机制,让自主性与安全性保持平衡。

信任分级是一种常见设计:一级全自动运行,只做监控;二级自动运行但高风险动作走审批;三级所有关键动作强制审批;四级进入低权限状态,关键环节必须人类接管。Agent 的信任级别不是固定的,而是随着任务表现动态漂移。一个经典的信任更新方式是指数滑动平均:

信任机制解决了“该不该放手”的问题,而兜底机制解决“万一出事了怎么收场”的问题。超时默认策略、操作审计、状态回滚、权限最小化,这些环外机制一个都不能少。真正成熟的 HITL,是像老主厨那样:既敢授权学徒独立掌勺,也永远在触手可及的地方留着一把能压住锅的铲子。

trustt+1=trustt+β⋅(ot−trustt),β∈(0,1)\displaystyle \text{trust}_{t+1} = \text{trust}_t + \beta \cdot (o_t - \text{trust}_t), \quad \beta \in (0,1)
新信任度 = 旧信任度 + 学习率 ×(本次表现 − 旧信任度)。任务成功 $o_t=1$ 时信任上升,失败 $o_t=0$ 时信任下降。
  1. 当前信任度 $\text{trust}_t$系统对人类“该多相信 Agent”的实时估计,取值范围 0 到 1。
    trustt\text{trust}_t
  2. 本次表现 $o_t$一次任务的结果,成功取 1,失败取 0。
    oto_t
  3. 更新速率 $\beta$一个 0 到 1 之间的小数,控制信任变化的速度。$\beta$ 大,信任波动大,反应灵敏;$\beta$ 小,信任变化平缓,不容易被单次失误带崩。
    β∈(0,1)\beta \in (0,1)
  4. 迭代更新每次任务后,系统用“表现与旧信任的差距”微调信任值。
    trustt+1=trustt+β⋅(ot−trustt)\text{trust}_{t+1} = \text{trust}_t + \beta \cdot (o_t - \text{trust}_t)

AI 应用场景

场景一:代码 Agent 的 PR 审批闸门

阶段:执行介入 / 审批模式

解决的问题:AI 编程助手会自动改代码、自动提合并请求(PR),如果直接合并到主干分支,很可能把有问题的代码带上线。传统方式是“禁止 Agent 提 PR”,但这样又失去了自动化效率。

具体案例:一个中大型研发团队让代码 Agent 自动修 bug 并生成 PR,但在合并到主干之前设了一道 HITL 闸门:涉及支付、鉴权等高风险目录的改动,必须人工 review 后才能合并;普通目录的改动则有 CI 通过后自动合并。上线三个月,PR 提交速度提升了 2 倍,而线上事故率反而下降。

场景二:客服退款 Agent 的偏好修正

阶段:反馈介入 / 修正模式

解决的问题:智能客服 Agent 能自动判断退款资格并执行退款,但模型生成的回复经常语气生硬、判断偏严,客户体验很差。靠运营逐个手动改,根本改不过来。

具体案例:客服 AI 系统每周生成一份“待修正对话清单”,运营人员对 Agent 的应答做目标标注(“语气更委婉”“可以升级补偿”)。系统通过修正模式把这些偏好注入策略,同时设定规则:退款金额超过 500 元必须人工审批,低于 500 元自动执行。一个月后,客服投诉率下降 35%,退款处理的平均耗时从 4 小时压缩到 20 分钟。

场景三:运维 Agent 的紧急接管

阶段:执行介入 / 接管模式

解决的问题:自动运维 Agent 负责扩容、缩容和回滚。流量尖峰时,它可能误判形势,连续创建多个无用实例造成资源浪费,甚至连环操作扩大故障。

具体案例:某公司的智能运维 Agent 在每次操作前计算风险分,并设置了双重 HITL:风险分超过阈值时,操作必须等待 SRE 确认;连续 3 次操作失败或风险超上限时,系统自动通知值班工程师一键接管,并保留完整状态快照,方便从当前状态恢复而非从头排查。上线后,故障恢复时间从 45 分钟降到 12 分钟。

Python 演示

python77 行
class HitlAgent:    """带人类在环控制的简单任务执行器。"""     def __init__(self, risk_threshold=0.7):        self.risk_threshold = risk_threshold        self.trust = 0.5        self.task_count = 0        self.gate_count = 0        self.current_risk = 0.0     def estimate_risk(self, task):        """风险分数 = 失败概率 x 影响程度,取值 0~1。"""        prob = task.get("prob", 0.1)        impact = task.get("impact", 0.1)        return min(1.0, prob * impact)     def human_approve(self, task):        """审批模式:人类看到上下文后决定是否放行。"""        print(f"    [审批] 主厨审视「{task['name']}」,等待人工确认...")        return input_policy(task)     def human_correct(self, action):        """修正模式:人类对 Agent 输出做增量调整。"""        print(f"    [修正] 主厨尝了一口:不够入味,调整方向")        return action + "_reshaped"     def human_takeover(self, task):        """接管模式:风险超限,人类接管任务控制权。"""        print(f"    [接管] 风险 {self.current_risk:.2f} 超限!主厨抢过锅铲,任务安全终止。")     def execute(self, tasks):        """任务主循环:按风险分级走三种 HITL 模式。"""        for task in tasks:            self.task_count += 1            self.current_risk = self.estimate_risk(task)             if self.current_risk > 0.9:                self.human_takeover(task)                continue             if self.current_risk > self.risk_threshold:                self.gate_count += 1                if not self.human_approve(task):                    print(f"      主厨否决,任务「{task['name']}」不执行")                    continue             action = f"do:{task['name']}"            if task.get("prefer_fix", False):                action = self.human_correct(action)            self.complete(task, action)     def complete(self, task, action):        print(f"    [执行] 「{task['name']}」完成 -> {action}")        self.trust = min(1.0, self.trust + 0.06)  def input_policy(task):    """真实系统中这里应弹出人工审核窗口;示例简化:风险过高则否决。"""    return task.get("prob", 0.0) < 0.6  def main():    tasks = [        {"name": "生成周报草稿", "prob": 0.2, "impact": 0.3},        {"name": "发送客户续费邮件", "prob": 0.5, "impact": 0.9, "prefer_fix": True},        {"name": "删除用户历史记录", "prob": 0.95, "impact": 1.0},        {"name": "批量修改线上配置", "prob": 0.4, "impact": 0.9},        {"name": "向全员群发布解散公告", "prob": 0.8, "impact": 0.9},    ]    agent = HitlAgent(risk_threshold=0.35)    agent.execute(tasks)    print(f"共执行 {agent.task_count} 个任务,其中 {agent.gate_count} 个走了人类审批。")    print(f"系统对 Agent 的信任度上升至 {agent.trust:.2f}")  if __name__ == "__main__":    main()
目的:演示一个带 HITL 的 Agent 主循环——按风险分数分级走“自主执行、人类审批、紧急接管”三种模式,并展示修正模式如何调整 Agent 的输出。
  1. self.risk_threshold = risk_threshold保存人类设定的风险阈值,低于它 Agent 可自主执行,高于它必须走审批。
  2. return min(1.0, prob * impact)用风险公式“概率 × 影响”压缩到 0~1 区间,对应正文中的 R = P × I。
  3. if self.current_risk > 0.9:风险超过 0.9 直接触发接管,人类抢过控制权。
  4. if not self.human_approve(task):审批模式下,人类否决则任务不执行。
  5. action = self.human_correct(action)对带 prefer_fix 标记的任务执行修正模式。
  6. self.trust = min(1.0, self.trust + 0.06)每次成功任务小幅提升信任度,对应信任动态更新逻辑。

常见误区

误区很多同学觉得“人类在环”就是在 Agent 每次操作前弹一个“是否继续”的确认框,弹窗越多说明系统越安全。

正解HITL 的本质是“让人类在正确的粒度和时机上参与决策”。弹窗确实是常见载体,但如果没有任务上下文、风险分级、超时策略和可回滚性,弹窗只是摆设,甚至比没有更糟——人类会在高频无意义弹窗里疲劳,然后无脑点“确认”。这就像让主厨签字却不给他看菜品,签了也是白签。

为何常见:堆弹窗最容易“看上去有 HITL”,实现门槛也低,所以大量系统把“加了弹窗”当成了“有人类在环”。

误区只要让真人审批,安全就万无一失,人的判断永远优于模型。

正解人会疲劳、会情绪化,会在连续判断中注意力衰退,而且做决定前需要足够的上下文和时间。如果系统把几百条审核请求一次性砸过来,人类环节反而会变成最脆弱的一环。所以 HITL 设计里必须做“人类表现保护”:控制审批数量、提供优先级队列、设置默认策略。人确实是最后防线,但防线本身也要被设计得可靠。

为何常见:把“人”神话了,忽略了认知负荷对真实判断力的影响。

误区接管就是把 Agent 进程杀掉、把所有上下文清空,越彻底越安全。

正解理性的接管是“控制权让渡”:保留 Agent 已完成的操作上下文,让人类从当前状态接着处理,系统进入安全降级而不是消亡,并在状态稳定后允许重新交接回自动模式。这就像主厨抢过锅铲是接着把菜炒熟,而不是把锅扔进垃圾桶。断电式的“硬接管”会丢失恢复路径,反而把可挽救的故障变成不可逆事故。

为何常见:把“接管”理解成“终止进程”,源自传统软件的“ kill 思维”,但 Agent 是有状态的长任务执行者。

误区既然人在环里兜底了,监控、审计、回滚、超时这些就都是多余的,出了问题人类自然会拦下来。

正解HITL 只是多层安全网中的一层。人类可能不在场、可能睡着了、可能审批超时、可能误操作,所以系统仍然必须配置超时默认策略、操作审计、状态回滚、权限最小化等“环外机制”。厨房里有主厨坐镇,灭火器和急救箱也依然要放好——安全设计永远是层层防御,而不是寄托于某一个人。

为何常见:把系统里的“人”当成万能保险,忽略了人本身也会失效。

面试题

Q1. HITL 中“L”指的是什么?

单选题 · easy

  • A.人类在决策回路中← 正确答案
  • B.人类完全脱离系统
  • C.人类只负责背书
  • D.人类代替一切计算

答案:A。HITL 即 Human-in-the-Loop,重点在“在环路里”。人类是决策回路中的关键环节,但不是每步都要介入,也不是完全不管。选项 B 是把人踢出系统,C 是形式主义,D 是极端化理解。就像主厨在关键节点把关,而不是替学徒颠每一勺。

Q2. 风险超过阈值时“等待人类批准”,属于哪种介入模式?

单选题 · easy

  • A.审批模式← 正确答案
  • B.修正模式
  • C.接管模式
  • D.自主模式

答案:A。风险超阈值 → 暂停 → 等人批准后继续,这就是审批模式。修正模式是对已生成输出做增量调整,接管模式是完全替换控制权,自主模式则不需要人类参与。好比采购食材要主厨先签字,而不是主厨自己去买菜。

Q3. 介入粒度中“粗粒度”指的是什么?

单选题 · mid

  • A.每个动作都需要审批
  • B.只审批高风险任务结果← 正确答案
  • C.完全取消审批机制
  • D.只规划不执行任何动作

答案:B。粗粒度是指人类只看任务最终结果,比如一份报告、一个 PR,不需要盯每一步动作;细粒度则要求检查单个动作甚至参数。选项中 A 是细粒度,C 是无 HITL,D 是不合理的限制。主厨看凉菜只看最后摆盘,就是典型的粗粒度介入。

Q4. 下面哪个不是 HITL 的介入环节?

单选题 · mid

  • A.规划介入
  • B.执行介入
  • C.反馈介入
  • D.编译介入← 正确答案

答案:D。规划、执行、反馈是 Agent 任务回路上的三个典型介入点,分别对应动手前、动手时、动手后。编译是代码构建环节,不在 Agent 的任务执行回路里。就像主厨出现在写菜单、颠勺、尝味道三个时刻,而不是出现在洗碗间。

Q5. 审批环节超时了,正确的默认策略是什么?

单选题 · mid

  • A.永远等待不处理
  • B.默认拒绝并通知← 正确答案
  • C.偷偷执行再上报
  • D.随机自动决定

答案:B。超时必须给出明确的默认行为,通常采用“默认拒绝 + 通知”来保证系统可终止、可追溯。永远等待会让任务卡死,偷偷执行会让审批形同虚设,随机决定更是不可控。这就像主厨迟迟不签字,采购单就该自动作废并提醒他,而不是默默把钱付了。

Q6. 关于“接管”与“暂停”,下列哪种说法正确?

单选题 · hard

  • A.二者概念完全相同无差别
  • B.接管是平滑让渡控制权且能恢复← 正确答案
  • C.暂停会强制删除所有历史数据
  • D.接管只在模型训练阶段发生

答案:B。接管是一种安全的控制权让渡,保留上下文、操作日志和恢复路径,让人类从当前状态接着处理;暂停只是临时停止,也不一定涉及控制权转移。C 说的是粗暴终止,D 说的是训练阶段,都和运行时接管无关。主厨抢过锅铲是接着把菜炒完,不是关机重启。

Q7. 哪种信任度更新方式更合理?

单选题 · hard

  • A.每次成功都直接减一
  • B.用指数滑动平均逐步更新← 正确答案
  • C.直接等于当前任务成功率
  • D.用风险概率乘以影响程度

答案:B。指数滑动平均 trust = trust + β·(o − trust) 既能让信任随表现动态漂移,又能避免单次失误导致信任崩盘。C 把信任简化成成功率,丢失了历史连续性;A 更新方向都反了;D 是风险评估而非信任更新。这就像主厨对学徒的信任是一天天积累的,不会因为一次失误就彻底否定,也不会因为一道菜就完全放手。

Q8. 哪些任务适合启用“人类审批”模式?

多选题 · mid

  • A.高影响操作如删库转账← 正确答案
  • B.法律要求人工签字确认← 正确答案
  • C.每次鼠标移动都要审批
  • D.涉及用户隐私的数据发送← 正确答案

答案:ABD。高影响操作(删库、转账)、法律合规要求、隐私数据发送,都属于“后果重”或“需要主观判断”的场景,适合审批。C 把粒度设计成了灾难,让人类在无关紧要的细节上疲劳,反而削弱了审批的意义。主厨只在采购高档食材时签字,不会在学徒切每一根葱时都点头。

Q9. 修正模式中“人类修正”通常包括哪些动作?

多选题 · mid

  • A.纠正 Agent 的错误动作← 正确答案
  • B.注入用户的长期偏好← 正确答案
  • C.瞬间撤销 Agent 的全部权限
  • D.对动作值做补丁式微调← 正确答案

答案:ABD。修正模式的核心是“增量调整”:纠正错误动作、注入偏好、给动作值打补丁,都是让 Agent 在原有基础上变得更好。撤销全部权限属于接管/降级的范畴,不是修正。这就像主厨说“醋少了,下次多放半勺”,而不是把学徒赶出厨房。

Q10. HITL 系统落地时,哪些做法是必要的?

多选题 · hard

  • A.设置超时策略与默认行为← 正确答案
  • B.只允许审批但不给上下文
  • C.配置观测审计回滚机制← 正确答案
  • D.无人响应时无限期阻塞

答案:AC。超时策略和观测/审计/回滚是 HITL 的兜底三件套,保证人在环失效时系统仍然可控。B 是“盲审”,人类没上下文就做不了准确判断;D 是“死锁”,把系统可靠性寄托在人类随时响应上。成熟的 HITL 像有主厨的厨房:菜谱、灭火器、急救箱都备齐,主厨不在场也能安全收场。