一句话定义
人机协同(Human-in-the-Loop, HITL)是在 Agent 的行动链路上设置人工决策点——审批门(gate)——让"不可逆、高代价、低置信"的动作必须经人确认,其余放行;自主性分级则是把"哪些动作放行、哪些拦截"做成随风险与信任度调节的阶梯。
为什么重要
Agent 的商业价值与它被授权的范围成正比,与它造成的损失成反比——HITL 是同时优化两者的旋钮。实践数据很直白:2025 年的 GATES 论文给出"在策略性位置插入少量审批点"几乎不损失任务完成度,却把高风险事故率压低一个数量级;而 Claude Code 的权限模式(默认询问→会话允许→跳过确认)是它敢让模型跑 bash 的前提。没有刹车的车不是快,是不能上路。
前置知识
kp-007(自主性光谱)、kp-010(工具设计——审批可以编码进工具)。
核心概念
审批门的三种实现位
- 工具参数位(kp-010 的
confirm: true模式):高风险工具必带确认参数——最轻量,适合点状防护 - 执行前钩子(pre-execution hook):框架/运行时在工具执行前回调你的函数,按策略放行/拦截/升级人工——Claude Code 的 permission 系统与 hooks 即此
- 流程节点位(LangGraph interrupt):工作流中显式的人审节点,暂停整个运行等人输入——适合里程碑级审查
风险分级放行矩阵
| 动作类别 | 例子 | 默认策略 |
|---|---|---|
| 只读无副作用 | 搜索、读文件、查询 | 放行 |
| 可逆写操作 | 写草稿、建分支、发内部消息 | 放行/白名单 |
| 不可逆低代价 | 删草稿、覆盖临时文件 | 白名单或首次确认 |
| 不可逆高代价 | 发对外邮件、付款、删库、部署生产、发 PR 合并 | 审批门 |
| 模型低置信 | 自评不确定 / 校验失败 | 升级人工 |
两个配套概念:信任升温(首次每种工具都问,用户连续批准 N 次后加入白名单——浏览器权限的成熟模式)与降级终止(kp-014:重试耗尽后带完整轨迹转人工,而不是硬编结果)。
自主性分级(工程版)
借用自动驾驶分级的记法,Agent 的 L0-L5:
- L0 全人工(人操作,AI 无参与)
- L1 建议(Copilot:每步人都看)
- L2 执行确认(每步动作人点头)
- L3 条件自主(默认自主,风险动作与低置信时交人——当前生产主流)
- L4 受限全自主(限定任务域内全自主 + 事后审计,如定时数据管道)
- L5 完全自主(研究愿景,见 kp-032 争论)
2026 年的现实:绝大多数生产系统设计在 L3;L4 只出现在错误代价可承受且可审计的封闭域。
原理与机制
审批门的经济学:每次人工确认有成本(打断流、人疲劳后无脑点"同意"——审批疲劳),漏放一次高危动作的损失是尾部风险。最优门位应满足:拦截动作的事后期望损失 > 审批的人力成本。由此导出三条工程推论:
- 门要少而准:每加一道门都降低整体人力把关质量(疲劳稀释),风险矩阵要定期按事故复盘修订(kp-025 的轨迹是修订依据)
- 给审批人上下文而非只给按钮:弹窗里带"为什么这么做、改了什么、影响范围"(可解释性来自 kp-012 的 Thought 与轨迹摘要),否则确认退化为橡皮图章
- 批量的粒度设计:允许"这类的剩余全部放行"(remember my decision),把 N 次确认合并为 1 次决策
置信度信号从哪来:模型自评(要求结构化输出置信字段,kp-005)、外部校验失败(kp-014)、以及结果异常检测(写文件行数异常、API 返回码异常)——三者任一触发都可升级人工。
直观类比
新司机的家长陪驾:第一天每个路口都问(L2);一个月后只有上高速时确认(L3,风险分级);半年后市区完全放手,长途要求到站报平安(L4,域内自主+事后审计)。真正的关键是那本"陪驾守则"(风险矩阵)随着事故与信任动态修订——而不是从头到尾"全问"或"全放"。
实例与案例
编程 Agent 的权限配置(Claude Code 风格 settings 片段):
json{
"permissions": {
"allow": ["Read(**)", "Grep(**)", "Bash(git status)", "Bash(git diff:*)"],
"deny": ["Bash(rm -rf *)", "Read(.env*)", "Bash(curl*)"],
"ask": ["Write(**)", "Bash(*)"]
}
}
读类放行、明危险硬拒、其余写/执行一律问——这就是 L3 的落地形态。三个细节:.env 读拦截(敏感信息,kp-026);curl 拦截(数据外传通道);用户可以 --dangerously-skip-permissions 全放——但那是用户在知情后转移风险,不是系统缺省。
常见误区
- 误区一:"HITL 拖慢 Agent"。门设在不可逆动作上,长尾任务里人工介入占比通常 <5%;真正拖慢的是无门系统的事故返工。
- 误区二:确认弹窗只有"允许/拒绝"。不给上下文与"改法"选项("允许但去掉删除语句")的审批门制造疲劳与橡皮图章。
- 误区三:把 L5 当目标炫耀。自主性是成本-风险权衡的输出,不是道德成就;盲目追求"全自动"通常是事故的前奏。
- 误区四:审批策略上线后不再修订。风险矩阵应是活文档——每次人工拦截/放行的结果都应回流统计(kp-025)。
自测题
- 最优审批门位的经济学条件是什么?
- L3 的定义是什么?为什么它是当前生产主流?
- 好的审批交互要给人工哪三样东西?
(参考答案:1. 拦截动作的事后期望损失 > 审批人力成本;2. 默认自主、风险动作与低置信时交人——在效率与安全间取得当前技术条件下的最优平衡;3. 上下文(为什么/改了什么/影响)、批量决策选项、非二元的改法选项。)
与其他知识点的关系
- 安全防线的关系 → kp-026(HITL 是纵深防御的一层,不是全部)
- 低置信检测 → kp-014;审批日志 → kp-025
- 自主性哲学争论 → kp-032;产品形态选择 → kp-007
延伸阅读
- Schmid et al., GATES: Generation-Augmented Planning for Human Approval(2025,审批门位置优化的实证)
- Claude Code, Permissions & Hooks 官方文档