<!-- title: 人机协作三栈演进：HITL·2.0·AITL架构拆解 -->

# 人机协作三栈演进：HITL · HITL 2.0 · AITL 实战架构拆解

## 概述

2026年，AI Agent领域正在经历一场从"人在环中"到"Agent在环中"的范式迁移。传统HITL以审批门控为核心，在LangGraph的`interrupt()`、CrewAI的`human_input`和OpenAI Agents SDK的`handoff()`中已有成熟实现。但生产数据揭示了一个残酷事实：原始对话日志作为交接载荷，让人工审核员平均花费15分钟重建上下文；而结构化简报可将这一时间压缩到30秒——97%的效率跃升。本文从触发信号栈、结构化交接载荷、监督界面设计到新兴的AITL（Agent-in-the-Loop）范式，全面拆解2026年人机协作架构的三栈演进。

---

## 一、三栈全景：从HITL到AITL的范式跃迁

2026年的人机协作系统正在经历三代架构的并行演化，每一代解决上一代的核心缺陷：

```mermaid
graph TB
    subgraph "Stack 1: HITL Classic"
        A1[Approval Gate] --> A2[Confidence Threshold]
        A2 --> A3[Raw Transcript Dump]
        A3 --> A4[Human Reviews Chat]
    end

    subgraph "Stack 2: HITL 2.0"
        B1[Multi-Signal Stack] --> B2[Structured Briefing]
        B2 --> B3[Warm/Cold Transfer]
        B3 --> B4[Purpose-Built Oversight UI]
    end

    subgraph "Stack 3: AITL"
        C1[Human Initiates] --> C2[Agent Assists]
        C2 --> C3[Context Injection]
        C3 --> C4[Agent Augments Decision]
    end

    Stack1 --> Stack2 --> Stack3

    style A1 fill:#ff6b4a,stroke:#333
    style B1 fill:#00e5a0,stroke:#333
    style C1 fill:#00c4ff,stroke:#333
```

**Stack 1（HITL Classic）**：Agent自主运行到某个节点暂停，等待人类审批后继续。核心抽象是"审批门控"——LangGraph的`interrupt_before`、CrewAI的`human_input=True`都属于这一代。问题在于：交接载荷是原始对话流，人类需要大量时间重建上下文。

**Stack 2（HITL 2.0）**：认识到交接不是"传对话"而是"传工作状态"。引入多信号触发栈、结构化简报载荷、冷热转移模式、专用监督界面。OpenAI Agents SDK的`handoff()` + `input_filter`组合、Microsoft AG-UI的`ApprovalRequiredAIFunction`体现了这一代的思想。

**Stack 3（AITL）**：范式反转——不再是AI暂停等人，而是人类主动发起、Agent在环辅助。Agent-in-the-Loop（AITL 2.0）白皮书提出：人类做决策，Agent提供实时上下文注入、风险评估、历史检索。这一代还处于早期，但代表了终极方向。

---

## 二、六框架HITL能力对比

| 维度 | LangGraph | OpenAI Agents SDK | CrewAI | AutoGen | Google ADK | Microsoft AG-UI |
|------|-----------|-------------------|--------|---------|------------|-----------------|
| 核心原语 | `interrupt()` + `Command(resume=)` | `handoff()` + `input_filter` | `human_input=True` | `UserProxyAgent` + `max_consecutive_auto_reply` | `AgentOps human_approval` | `ApprovalRequiredAIFunction` |
| 状态持久化 | Checkpointer（SQLite/Postgres） | 无内置，需外部 | 内置Checkpointing | 无内置 | 无内置 | Session-based |
| 中断粒度 | 任意代码位置，动态 | Agent边界 | Task完成时 | 对话轮次 | Tool调用前 | Tool调用前 |
| 上下文传递 | 完整状态快照 | `input_type` Pydantic Schema | Task描述+Agent输出 | 对话历史 | 自定义Payload | ApprovalRequest JSON |
| 冷/热转移 | 不区分 | `on_handoff`回调支持热转移 | 不区分 | 不区分 | 支持 | 中间件层实现 |
| 返回路径 | `Command(resume=value)` | 新Agent接管 | 修改后继续 | 回复消息 | 继续执行 | Tool Result回传 |
| 生产就绪度 | 高（持久Checkpointer） | 中（需自建） | 中 | 低 | 中 | 高（企业级） |
| 适用场景 | 审批流、状态机、长时间工作流 | 多Agent路由+人类审查 | 内容生成+人类校验 | 对话式协作 | 异步审批 | 企业合规审批 |

---

## 三、Stack 1深度拆解：经典审批门控

### 3.1 LangGraph `interrupt()`：最灵活的暂停-恢复原语

LangGraph的`interrupt()`函数是当前HITL实现中最接近"一等公民"的设计。它不是静态断点，而是**动态暂停点**——可以在任意代码位置调用，支持条件逻辑。

```python
from langgraph.types import interrupt, Command

def approval_node(state: State):
    # 业务逻辑判断是否需要人工审批
    if state["amount"] > 10000:
        approved = interrupt({
            "type": "approval_required",
            "reason": f"金额 ${state['amount']} 超过自动审批阈值",
            "suggested_action": "issue_refund",
            "context": state["order_summary"]
        })
    else:
        approved = True
    
    if approved:
        return {"status": "approved", "processed_by": "auto" if state["amount"] <= 10000 else "human"}
    return {"status": "rejected"}
```

关键设计决策：
- **Checkpointer持久化**：中断时整个图状态写入SQLite/Postgres，进程崩溃也不丢失
- **thread_id作为游标**：同一个thread_id恢复同一检查点，新建则从头开始
- **Command(resume=value)**：恢复值成为`interrupt()`调用的返回值，类型安全

**局限**：`interrupt()`不区分冷热转移，不内置结构化简报生成，需要开发者自行设计载荷格式。

### 3.2 CrewAI `human_input`：任务级的人类校验

CrewAI的HITL更简单直接——在Task定义中设置`human_input=True`，Agent在完成任务后暂停等待人类反馈。

```python
from crewai import Agent, Task, Crew

reviewer = Agent(
    role='Senior Research Analyst',
    goal='Uncover cutting-edge developments in AI',
    backstory="Expert in identifying emerging trends...",
    tools=[search_tool]
)

task = Task(
    description="Conduct analysis of AI advancements in 2025.",
    expected_output='A comprehensive report',
    agent=reviewer,
    human_input=True  # Agent pauses here, waits for human feedback
)

crew = Crew(agents=[reviewer], tasks=[task])
result = crew.kickoff()
```

**优点**：零配置，一行代码启用。适合内容生成、报告校审等"最终把关"场景。

**局限**：粒度太粗——只能在Task完成时暂停，无法在执行中途插入审批。且交接载荷只有Agent输出文本，缺乏结构化上下文。

### 3.3 经典HITL的系统性问题

生产环境暴露了三个系统性缺陷：

**问题一：置信度阈值不可靠。** LLM的置信度分数系统性地过度乐观。Tian Pan的研究指出：GPT事后Agent预测73%的任务成功率，实际只有35%；Gemini预测77%，实际仅22%。将原始模型置信度作为主要升级触发器，意味着你会在最需要人工审查的场景下反而低估风险。

**问题二：载荷是原始对话流。** 一份40,000 token的对话历史中，只有约3,000 token是可操作信号。"Lost in the middle"效应使得埋藏在长上下文中的关键信息被接收端模型或人类忽略。

**问题三：监督界面即聊天窗口。** 多数团队将交接呈现在会话线程中——因为那是Agent的通信方式，而非人工审核的正确界面。聊天记录不是监督的媒介，它要求审核员在脑中重建状态。

---

## 四、Stack 2深度拆解：结构化交接工程

### 4.1 升级信号栈：五层触发设计

HITL 2.0的核心洞见：升级不是单一信号，而是一个信号栈。生产可靠的系统使用组合触发：

```mermaid
graph TB
    L1["L1: 任务级信号<br/>(确定性检查)"] --> L2["L2: 行为信号<br/>(循环检测/范围蔓延)"]
    L2 --> L3["L3: 情绪信号<br/>(语气分析/情感降级)"]
    L3 --> L4["L4: 利益信号<br/>(VIP账户/金额阈值)"]
    L4 --> L5["L5: 集成分歧<br/>(双模型评估)"]

    L1 -->|最可靠| DECIDE{"升级决策"}
    L2 -->|补充| DECIDE
    L3 -->|辅助| DECIDE
    L4 -->|配置| DECIDE
    L5 -->|高成本高精度| DECIDE

    DECIDE -->|"10-15% 目标"| ESCALATE["触发结构化交接"]

    style L1 fill:#00e5a0,stroke:#333
    style L5 fill:#ff6b4a,stroke:#333
    style DECIDE fill:#f0c850,stroke:#333
```

**L1：任务级信号**（最可靠）——确定性检查，不依赖模型自我评估。Agent遇到矛盾数据、必填字段缺失、金融阈值触发、合规关键词命中时立即升级。

**L2：行为信号**——循环检测（同一API调用重复）、范围蔓延（Agent扩展任务边界）、链式复杂度（三级Agent管道中每步90%置信度但累计可靠性降至73%）。

**L3：情绪信号**——用户重述同一问题3次以上未解决、语气分析检测到情绪升级。在用户明确要求人工之前捕获，防止流失。

**L4：利益信号**——VIP账户、退款金额超阈值、安全事件。按领域配置而非模型推断。

**L5：集成分歧**——高成本但高精度：对同一上下文运行两次模型评估，显著分歧则升级。

关键运营约束：升级率超过15-20%不可持续。目标10-15%需要人工审查，然后根据实际错误率调优。

### 4.2 结构化简报：三种载荷范式

HITL 2.0的共识是**结构化简报**——既不是原始历史也不是散文摘要：

```json
{
  "intent": "订单#4821退货申请，商品到货即损",
  "confidence": 0.71,
  "sentiment": "frustrated",
  "entities": {
    "order_id": "4821",
    "product": "Ember Mug 2",
    "purchase_date": "2026-03-15"
  },
  "actions_taken": [
    "查询: 订单确认，在30天退货窗口内",
    "提议: 换货 — 用户拒绝，要求退款"
  ],
  "constraints": ["退款超过$75需人工审批"],
  "suggested_next_step": "发放全额退款$89.95",
  "transcript_reference": "session://abc123"
}
```

关键属性：决策和约束是显式的，制品被引用而非嵌入，已尝试的操作被列出，建议下一步提供起点而非强制路径。

### 4.3 冷转移 vs 热转移

两种转移模式在2026年已形成明确的设计指南：

**热转移（Warm Transfer）**：AI在交接完成前**先向接手人类做简报**。在语音Agent场景中，LiveKit模式将呼叫者保持等待，打开私人咨询室，AI向人工简报后再合并通话。适用场景：情绪激动的用户、复杂问题需背景上下文、高价值账户。代价：增加秒级到分钟级延迟。

**冷转移（Cold Transfer）**：上下文打包为结构化文档，工单路由到人工队列。速度优先于简报深度。适用场景：简单升级、结构化上下文包足以支撑操作。失败场景：上下文包不充分。

### 4.4 监督界面：告别聊天窗口

HITL 2.0要求专用监督界面，而非在聊天线程中操作。有效的设计包含三个视图：

- **时间线视图**：按序展示Agent每一步操作的输入、推理、输出，而非原始对话流
- **差异视图**：高亮Agent执行过程中状态变化——改了什么、新增了什么、删除了什么
- **操作面板**：直接在界面中批准、拒绝、修改Agent操作，而非回复文本

---

## 五、Stack 3前瞻：Agent-in-the-Loop（AITL）范式

### 5.1 范式反转

AITL 2.0白皮书提出了一个根本性的范式反转：

| 维度 | HITL | AITL |
|------|------|------|
| 主导方 | Agent主导，人类审批 | 人类主导，Agent辅助 |
| Agent角色 | 执行者 | 顾问/增强器 |
| 触发条件 | Agent暂停等人 | 人类主动发起 |
| 典型场景 | 自动化审批流 | 决策支持系统 |
| 状态所有权 | Agent持有 | 人类持有 |

在AITL中，人类做决策，Agent在环提供：
- **实时上下文注入**：人类考虑方案A时，Agent自动检索相关历史、合规约束、风险评估
- **预计算分析**：人类还没问，Agent已经算好了三种方案的成本对比
- **偏差检测**：人类决策偏离历史模式时，Agent主动提醒而非被动等待

### 5.2 AG-UI协议：AITL的基础设施

AG-UI（Agent-User Interaction Protocol）是2026年最值得关注的AITL基础设施。它定义了Agent后端与前端之间的标准事件协议：

```
Agent Backend → AG-UI Events → Frontend UI
     ↑                           |
     └── User Actions ←──────────┘
```

核心事件类型包括：`TextMessageStart/Content/End`、`ToolCallStart/Args/End`、`StateSnapshot`、`RunFinished`。Microsoft的AG-UI实现通过`ApprovalRequiredAIFunction`将需要审批的工具调用转化为"客户端工具调用"——Agent后端发出审批请求事件，前端渲染审批UI，用户批准/拒绝后作为工具结果回传。

```csharp
// AG-UI 审批模式 - Microsoft Agent Framework
AITool[] tools = [
    new ApprovalRequiredAIFunction(
        AIFunctionFactory.Create(SendEmail)
    )
];

// 中间件自动转换：
// FunctionApprovalRequestContent → AG-UI Client Tool Call → 前端审批UI
// 前端审批结果 → Tool Result → FunctionApprovalResponseContent → Agent继续执行
```

这个设计的精妙之处：Agent代码无需知道审批的存在——它只是调用一个函数，审批逻辑完全在协议层处理。

---

## 六、实战场景：三栈选型决策树

```mermaid
graph TD
    START["你的场景是？"] --> Q1{"Agent自主度要求高？"}
    Q1 -->|是| Q2{"需要中断恢复持久化？"}
    Q1 -->|否| Q3{"人类是决策主导方？"}

    Q2 -->|是| LANGGRAPH["LangGraph<br/>interrupt() + Checkpointer"]
    Q2 -->|否| Q4{"多Agent间需路由交接？"}

    Q4 -->|是| OPENAI["OpenAI Agents SDK<br/>handoff() + input_filter"]
    Q4 -->|否| CREWAI["CrewAI<br/>human_input=True"]

    Q3 -->|是| AITL["AITL Stack<br/>AG-UI + Agent Framework"]
    Q3 -->|否| Q5{"企业合规要求严格？"}

    Q5 -->|是| AGUI["Microsoft AG-UI<br/>ApprovalRequiredAIFunction"]
    Q5 -->|否| SIMPLE["简单HITL<br/>任何框架的审批门控"]

    style LANGGRAPH fill:#00e5a0,stroke:#333
    style OPENAI fill:#00c4ff,stroke:#333
    style AITL fill:#f0c850,stroke:#333
```

### 场景一：金融交易审批流 → LangGraph

金额阈值分级，超过自动审批范围时`interrupt()`暂停，人工在专用界面审批后`Command(resume=True/False)`恢复。Checkpointer保证即使进程重启也不丢失待审批交易。

### 场景二：客服多Agent路由 → OpenAI Agents SDK

一级Agent处理常见问题，检测到情绪降级或复杂查询时通过`handoff()`转交二级专家Agent。`on_handoff`回调实时拉取CRM数据注入结构化载荷，`input_filter`裁剪无关历史避免上下文污染。

### 场景三：法律文书协作 → AITL + AG-UI

律师在专业界面中起草合同，Agent在环实时检索相关判例、标记风险条款、建议修改措辞。人类掌握最终决策权，Agent提供增强而非替代。

---

## 七、关键反模式与生产教训

### 反模式一：Everything Dump

将完整对话日志作为交接载荷。40K token中3K有效信号——"lost in the middle"效应让关键信息被忽略。解决：结构化简报 + transcript_reference引用链接。

### 反模式二：聊天窗口即监督界面

在对话线程中让人类审核Agent操作。审核员无法一眼看出"Agent做了什么"vs"Agent说了什么"，没有批准/拒绝/修改的操作控件。解决：时间线视图 + 差异视图 + 操作面板。

### 反模式三：单一置信度门控

将模型置信度作为唯一升级触发器。GPT的73%预测成功率 vs 35%实际意味着你在最需要人工审查时反而放行。解决：五层信号栈组合触发。

### 反模式四：无返回路径

升级后Agent"死了"，人工处理完没有机制回到Agent。交接是双向的——需要设计`Command(resume=)`或等效的返回机制。Tian Pan的研究强调：升级不是错误状态而是设计好的工作流，必须有返回路径。

### 反模式五：升级率失控

超过20%的升级率让人工审核员成为瓶颈。要么是Agent未充分训练（过度升级），要么是任务设计超出Agent能力范围（需要重新切分任务）。目标10-15%，持续监控`escalation_rate`、`time_to_resolution_post_handoff`、`repeat_contact_rate`三大指标。

---

## 八、变现评估与训练营适配度

| 方向 | 市场需求 | 训练营适配度 | 关键卖点 |
|------|----------|-------------|----------|
| LangGraph HITL工作流开发 | 高 | ★★★★ | 企业审批流自动化，付费意愿强 |
| 客服Agent升级系统设计 | 极高 | ★★★★★ | ROI明确（97%交接效率提升），案例丰富 |
| AG-UI协议集成开发 | 中高 | ★★★ | 新兴领域，先发优势 |
| AITL决策支持系统 | 中 | ★★ | 前沿但落地少，适合高阶课程 |
| 升级信号栈工程化 | 高 | ★★★★ | 跨框架通用技能，实用性强 |

最推荐的训练营方向是**客服Agent升级系统设计**——市场需求明确（79%用户在复杂问题上倾向人工）、技术栈成熟（LangGraph/OpenAI SDK均可）、ROI可量化（结构化交接97%效率提升）。课程结构可从简单审批门控开始，逐步升级到五层信号栈 + 结构化简报 + 监督界面设计。

---

## 参考来源

1. [Agent-to-Human Handoff Patterns: Designing Escalation That Doesn't Break](https://zylos.ai/research/2026-04-03-agent-to-human-handoff-patterns) — Zylos Research关于Agent-to-Human交接的触发信号栈、结构化载荷与冷热转移的深度分析
2. [The Escalation Protocol: Building Agent-to-Human Handoffs That Don't Lose State](https://tianpan.co/blog/2026-04-10-escalation-protocol-agent-to-human-handoffs) — Tian Pan关于升级信号栈设计、状态序列化与监督界面的生产实践
3. [Interrupts - LangGraph Docs](https://docs.langchain.com/oss/python/langgraph/interrupts) — LangGraph官方文档关于`interrupt()`暂停-恢复机制的完整API说明
4. [AG-UI: The Agent-User Interaction Protocol](https://docs.ag-ui.com/introduction) — AG-UI开放协议规范，定义Agent后端与前端之间的标准事件交互
5. [AGENT In The Loop 2.0](https://agentintheloop.org/) — AITL 2.0白皮书，提出从HITL到Agent-in-the-Loop的范式反转

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
