首页 › ai-agents › 放手即失控:自主体人在回路六栈实测

放手即失控:自主体人在回路六栈实测

概述

自主智能体从 demo 走向生产,最大的拦路虎不是模型能力,而是失控边界——当智能体可以连续自主调用工具、读写文件、发起转账时,"什么时候必须喊人"决定了它是生产力还是事故源。本期实测 2026 年主流的六套人在回路(Human-in-the-Loop, HITL)技术栈:LangGraph 的 interrupt() 图断点、LangChain 的 HITL 中间件、Microsoft AutoGen 的 UserProxyAgent、CrewAI 的 human_input、OpenAI Agents SDK 的 approvals,以及 NVIDIA NeMo/Guardrails AI 代表的"机器在回路"护栏栈。核心发现:六栈真正分化的不是"能不能插人工",而是"人工插在哪一层"以及"插人的成本是否被算进可靠性预算"——图级最精确但开发税重,工具级成为 2026 主流,而生产系统正在从"人在回路"滑向"AI 审 AI、人只兜底"的新均衡。

六栈能力对比

维度 LangGraph interrupt LangChain HITL MW AutoGen UserProxy CrewAI human_input OpenAI SDK approvals NeMo/Guardrails 护栏
介入粒度 图节点级 工具调用级 对话轮次级 任务/角色级 工具调用级 输入/输出级
持久化 Checkpointer 强 依赖外挂 会话内存为主 任务态 Run config 无状态+规则
恢复机制 Command(resume=) resume/run 回复继续 重新执行 approve/reject 拦截即重写
开发税 高 中 低 极低 低 中
2026 状态 事实标准 新晋主流 ⚠️ 维护模式 成熟稳定 官方主推 防御纵深标配
典型失败 断点过密致僵死 工具签名误判 审批疲劳 每任务追问 默认放行 规则绕过

深度分析

一、LangGraph interrupt():图节点级断点的精确与代价

LangGraph 把工作流建模成有状态图,HITL 通过 interrupt() 把执行挂起、用 Command(resume=...) 恢复,配合 Checkpointer(SQLite/Postgres)实现"断点续跑"。这是六栈里粒度最细、可控性最强的方案——你可以在金融转账前精确插一道审批门,状态持久化让挂起的工作流跨进程、跨重启存活。它的设计哲学是"确定性控制门":审批点不是 LLM 决定的,而是图结构硬编码的,这避免了"模型自己决定要不要喊人"的悖论。

代价是开发税。每个审批点都要预先在图里画出来,断点设太密会让工作流僵死(每步都等人),设太稀又形同虚设。实测中常见反模式是把 interrupt_before 套在所有节点上,结果演示流畅、生产瘫痪——审批队列堆积成瓶颈。变现角度,LangGraph HITL 是金融、医疗等强合规场景训练营的硬卖点,因为它是少数能给出"可审计审批链"的框架;但教学成本高,适合做付费进阶课而非引流课。

from langgraph.types import interrupt, Command

def review_node(state):
    decision = interrupt({"draft": state["answer"], "msg": "请人工审批"})
    if decision["approved"]:
        return {"answer": decision["edited"]}
    return Command(goto="rewrite")  # 驳回则跳回重写

二、LangChain HITL 中间件:工具调用级审批的折中之道

2025 年 LangChain 推出的 Human-in-the-Loop middleware 是对 LangGraph 图级方案的"轻量化降维"——它不要求你把整个流程画成图,而是在 Agent 的工具调用层插一道中间件:每当模型决定调工具,中间件先拦下,等人审批/编辑/批准后再放行。这恰好命中了 2026 年最普遍的需求——不是每个节点都要审,而是"有副作用的工具调用"(发邮件、删数据、付款)才要审。

这个粒度是甜点位:开发税中等,复用性强(一套中间件挂所有 Agent),且天然契合 MCP 工具生态。它的核心权衡是靠工具签名判断风险:@tool 装饰器或 requires_approval 标记决定哪些工具触发审批。失败模式也由此产生——开发者忘了给高危工具打标,中间件就默认放行,等于裸奔。变现上,HITL middleware 适合做"Agent 安全中间件"产品形态,包装成 SaaS 审批网关有想象空间,但要解决审批延迟拖垮响应体验的问题。

三、AutoGen UserProxyAgent:对话级方案的维护模式警示

AutoGen 的 UserProxyAgent 是六栈里最直观、最容易上手的——它本质是个"假装成人类的 Agent",通过 human_input_mode(ALWAYS/TERMINATE/NEVER)控制何时拉真人入场。语义最自然:人类像参与群聊一样介入对话,无需关心图结构。这也是它曾是教学 demo 王牌的原因。

但 2026 年的残酷事实是:AutoGen 已于 2025 年 10 月进入维护模式,微软重心转向 Microsoft Agent Framework(2026 年 4 月 1.0 GA)。这意味着建在 UserProxyAgent 上的生产系统正面临迁移压力——本期"换栈即归零"的迁移代价在此复现。更深的坑是"审批疲劳":human_input_mode="ALWAYS" 会在每轮都打断,长任务里人类很快学会无脑按回车,HITL 沦为摆设。教训是:对话级 HITL 把"何时喊人"的裁量权交给了人类纪律,而人类纪律是靠不住的。新项目应直接评估 Microsoft Agent Framework,而非在维护态的 AutoGen 上押注。

四、CrewAI human_input:角色级审批的极简与粗糙

CrewAI 走的是另一条路——把 HITL 绑在任务(Task)和角色(Role)上。Task(human_input=True) 让某个 Agent 在执行到这一步时弹出澄清问题,等人回答后继续。这是六栈里入门门槛最低的,三行代码就能跑通,特别适合做"角色扮演式多智能体"的快速原型。

粗糙也由此而来。CrewAI 的 HITL 是"问完即走"的轻交互,缺乏 LangGraph 那种持久化的审批状态和驳回重试回路——人类给了输入,Agent 就当圣旨往下走,没有"驳回跳回上一步"的结构化控制。它更像"提问"而非"审批"。实测中 human_input=True 经常被滥用成"每任务都问",把原本自主的流水线退化成一问一答的问答机。变现上,CrewAI 适合做面向小白的"5 分钟搭出多智能体"引流课,但严肃生产场景必须外挂 LangGraph 式控制层补齐审批能力,否则无法通过合规审计。

五、OpenAI Agents SDK approvals:官方主推的工具级方案

OpenAI 2025 年开源的 Agents SDK 把 HITL 收敛进 approvals / approval_policy 配置——在 Run config 里声明哪些工具需要批准,运行时模型调用这类工具会自动挂起、等待 approve/reject。这套机制和 LangChain 中间件在粒度上撞车(都是工具调用级),差异在于它深度绑定 OpenAI 的模型与 tracing 体系,开箱即用度更高。

它的隐忧是默认值哲学。SDK 的默认审批策略偏宽松,很多教程直接跑生产,结果高危工具在第一波就被默认放行——这与"工具触发四栈"里观察到的"默认放行=默认裸奔"完全一致。优势是和 OpenAI 生态(Responses API、Tracing、Evals)无缝衔接,做企业内训时说服力强("官方背书")。短板同样明显:强绑定 OpenAI 模型,换模型即失去 approvals 的一致语义,迁移成本被锁死在厂商生态里。它适合"已经全栈用 OpenAI"的团队,跨厂商场景反而成负担。

六、NeMo Guardrails / Guardrails AI:从"人在回路"到"机器在回路"

第六栈代表了 2026 年最深刻的范式迁移:当人工审批成为吞吐瓶颈,生产系统正把"人"换成"机器"。NVIDIA NeMo Guardrails、Guardrails AI、LLM Guard、Llama Guard 这类护栏,本质是用小模型/规则引擎充当"第一道审批员"——输入侧拦截注入、输出侧校验合规、PII 自动脱敏,只有"低置信度 + 高风险"的交集才上浮给真人。

这是对前五栈的根本性反思:HITL 的瓶颈不是技术,是人。一个坐席一天审不了几百条,而 Agent 可能每分钟产生几十个待审动作。2026 年的成熟做法是"AI oversees AI"——防御纵深(defense-in-depth):Pydantic 做结构校验、Guardrails AI 做内容合规、Llama Guard 做安全分类、人工只在护栏都拿不准时兜底。这套架构的变现价值最高——"Agent 合规护栏"是企业刚需,但门槛也最高,需要持续维护规则与对抗样本。值得警惕的是护栏的"规则绕过":攻击者针对规则做注入,护栏越静态越易被绕,所以护栏本身需要持续红队迭代。

人在回路工作流架构

flowchart TD
    A[用户目标] --> B[自主智能体 Agent Loop]
    B --> C{工具调用决策}
    C -->|读操作 低风险| D[直接执行]
    C -->|写/付款 高风险| E[HITL 拦截层]

    E --> F{护栏第一道 AI-in-Loop}
    F -->|合规放行| G[自动放行]
    F -->|明确违规| H[直接拦截重写]
    F -->|低置信度| I[上浮人工审批]

    I --> J{人类决策}
    J -->|批准| K[执行 + 写审计日志]
    J -->|编辑| L[改写参数后执行]
    J -->|驳回| M[Command goto 回退重规划]

    D --> N[结果回写 Memory]
    G --> N
    K --> N
    L --> N
    H --> N
    N --> B

    style F fill:#ffe4b5
    style I fill:#ffcccc
    style K fill:#d4edda

推荐方案:按场景选栈

1. 金融/医疗/法律等强合规场景 → LangGraph interrupt + 护栏栈双层。图级断点提供可审计的硬审批门,护栏做输入净化和合规校验,二者构成纵深防御。别用对话级方案,审计追溯不了。

2. 通用企业 Agent(已用 OpenAI 全家桶) → OpenAI Agents SDK approvals。开箱即用、和 Tracing 打通,但务必把默认策略改严,给高危工具显式打 requires_approval。

3. 快速原型/教学 demo → CrewAI human_input 或 AutoGen UserProxy。三天能跑通,但上生产前要认清它们是"提问机制"非"审批机制",缺持久化和驳回回路。

4. 高吞吐生产(动作密集型,如客服、运维) → AI-in-the-Loop 护栏为主、人工兜底为辅。人工审不过来的量,必须让 NeMo/Guardrails AI 先过 90%,人只看护栏判不准的高危交集。这是 2026 年的性价比最优解。

5. 老项目迁移 → 远离维护态 AutoGen,直接评估 Microsoft Agent Framework。在维护模式框架上继续投入,等于把技术债滚大。

一句话结论:2026 年选 HITL 栈,先问"我的人一天能审多少条",再倒推是图级、工具级还是护栏级——把"插人"当成有限的可靠性资源来预算,而不是无限兜底的安全网。

参考来源

  1. Interrupts — LangChain Docs — LangGraph interrupt()/Command(resume=) 图断点机制官方文档
  2. Human-in-the-Loop — AutoGen 官方文档 — UserProxyAgent 对话级 HITL 实现与配置
  3. LangChain vs. AutoGen: What the Maintenance Announcement Changed — AutoGen 2025年10月进入维护模式、Microsoft Agent Framework 2026年4月 1.0 GA 的时间线
  4. Best AI Agent Security & Guardrails Tools in 2026: LLM Guard vs NeMo vs Guardrails AI — 2026 护栏栈对比与"AI oversees AI"趋势分析
  5. AI Agent Guardrails & Output Validation in 2026 — 生产级防御纵深(Pydantic + Guardrails AI + Llama Guard)实战模式

[!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学通信知识星球海报-扫码加入