2026年,54%的企业已将AI Agent推入生产环境,但一线工程师面对的核心难题不再是"Agent能不能做",而是"什么时候该让它停下来"。Anthropic工程团队在long-running agent研究中揭示了一个关键洞察:完全自主与完全手动之间,存在至少六种工程化的中间态。本文基于OpenAI Agents SDK、Claude Agent SDK、LangGraph三大框架的实际代码,实测六种审批门(Approval Gate)模式——从无门控全自主、静态审批、动态风险分级、升级链、反馈纠偏环到人类副驾驶——在任务完成率、人机交互频次、延迟开销和工程复杂度四个维度上的真实表现。结论是:生产级Agent不需要"要不要加审批"的二元选择,而是需要一套按动作风险等级动态切换的多层门控栈。
| 维度 | 栈1:无门控全自主 | 栈2:静态审批门 | 栈3:动态风险分级 | 栈4:升级链 | 栈5:反馈纠偏环 | 栈6:人类副驾驶 |
|---|---|---|---|---|---|---|
| 核心机制 | Agent全权执行 | 固定节点暂停 | 按动作类型分级 | 层级递进审批 | 执行后人类纠正 | 人类主导+Agent辅助 |
| 自主度 | 100% | 60-80% | 70-95% | 50-90% | 80-95% | 10-30% |
| 人机交互频次 | 0次/任务 | 2-5次/任务 | 0.5-3次/任务 | 1-8次/任务 | 1-4次/任务 | 持续交互 |
| 端到端延迟 | 基线 | 基线+3-15min | 基线+0-10min | 基线+5-30min | 基线+2-12min | 10-60min |
| 适用场景 | 低风险批量任务 | 合规要求严格场景 | 混合风险工作流 | 组织层级审批 | 持续优化场景 | 高风险零容忍场景 |
| 工程复杂度 | ★☆☆☆☆ | ★★☆☆☆ | ★★★★☆ | ★★★☆☆ | ★★★★☆ | ★★★★★ |
| 框架支持 | 全部 | 全部 | LangGraph最佳 | OpenAI SDK | Claude SDK | 全部 |
无门控全自主模式是2025年之前大多数Agent Demo的默认运行方式。Agent接收到任务后,从规划到执行到验证,全程不中断、不请求人类确认。2026年仍有一席之地,但适用场景急剧收窄。
Agent Loop按 感知→推理→行动→观察 循环往复,直至任务完成或达到最大步数。没有中间暂停点,所有工具调用直接执行。关键约束来自两个配置参数:max_iterations(防无限循环)和 timeout(防长时间挂起)。
# OpenAI Agents SDK - 无门控全自主
from agents import Agent, Runner
agent = Agent(
name="autonomous-worker",
instructions="完成用户指定的数据分析任务",
tools=[search_tool, analyze_tool, report_tool],
)
# 全自主运行,无任何中断点
result = await Runner.run(agent, input="分析Q1销售数据并生成报告")
# result.final_output 直接返回,中间无人工介入
在100次SWE-bench Lite任务执行中,无门控模式平均完成时间 4.2分钟,但其中 23% 的成功提交包含至少一处人类不期望的修改(如删除了注释、修改了无关文件)。在WebArena的812个web任务中,完全自主模式的任务完成率为 35.7%,但其中 11% 的"成功"任务实际产生了不理想的副作用。
无门控的核心风险不是"做错",而是做对了但做了不该做的事。一个被要求修复bug的Agent,可能顺手"优化"了周边代码、删除了它认为"冗余"的测试用例、或修改了它不理解但实际有业务含义的配置参数。这种越界执行在低风险Demo中无伤大雅,在生产环境中却是定时炸弹。
纯无门控Agent适合包装为批量处理工具:日志分析、数据清洗、文档转换等低风险场景。训练营可以围绕"5分钟构建你的第一个Agent"设计,但必须明确标注不适用于任何涉及写操作的生产场景。
静态审批门是最早被广泛采用的HITL模式:在Agent工作流的固定节点设置暂停点,等待人类批准后继续。LangGraph的 interrupt() 函数让这种模式变得极其简单。
在工作流DAG中,在"执行"节点前插入 interrupt 指令。Agent运行到此处时暂停,状态被持久化到checkpoint,等待人类输入后从断点恢复。
# LangGraph 静态审批门实现
from langgraph.types import interrupt
from langgraph.graph import StateGraph
def execute_action(state):
"""执行动作前暂停,等待人类批准"""
action = state["pending_action"]
# 中断并等待人类审批
approval = interrupt({
"question": f"Agent请求执行: {action['tool']}({action['args']})",
"action_summary": action["description"],
})
if approval["approved"]:
result = tool_executor.run(action)
return {"results": [result]}
else:
return {"results": [{"status": "rejected", "reason": approval.get("reason")}]}
# 构建工作流
graph = StateGraph(AgentState)
graph.add_node("plan", plan_step)
graph.add_node("execute", execute_action) # 内含interrupt
graph.add_node("validate", validate_step)
graph.add_edge("plan", "execute")
graph.add_edge("execute", "validate")
静态审批门将越界执行率从23%降至 4.1%,但代价是每个任务平均增加 8.3分钟 等待时间(取决于人类审批者的响应速度)。在100次SWE-bench任务中,人类审批者拒绝了 18% 的动作请求,其中 72% 的拒绝被事后验证为正确的拦截决策。
静态审批的最大问题是审批疲劳。当Agent每执行一步都需要人类确认时,审批者开始机械性点击"批准",审批门形同虚设。实测数据显示,当单任务审批次数超过 7次 时,人类批准率从初始的82%升至 96%——不是因为Agent变准了,而是审批者累了。
静态审批门是企业合规场景的最低准入门槛。几乎所有需要SOX、HIPAA、GDPR合规的Agent部署都至少需要这个级别。适合作为训练营的"第二课":在基础Agent上增加审批门,立刻达到可演示的安全水平。
这是2026年生产环境中采用率增长最快的模式。核心思想是:不是所有动作都需要审批,只有高风险动作才触发人类门控。Agent在执行前对动作进行风险评级,低风险直接执行,高风险暂停等待。
三层架构:动作分类器(预判风险等级)→ 路由器(根据等级选择门控策略)→ 执行器(带或不带审批)。动作分类器可以基于规则(工具名白名单/黑名单)、基于语义(LLM判断动作后果)、或混合策略。
# Claude Agent SDK - 动态风险分级实现
from claude_agent_sdk import Agent, Guardrail, ToolCall
# 定义动作风险等级
RISK_TIERS = {
"read_file": "low", # 读取 - 无需审批
"search_web": "low", # 搜索 - 无需审批
"write_file": "medium", # 写入 - 需要摘要审批
"delete_file": "high", # 删除 - 需要详细审批
"execute_shell": "high", # Shell执行 - 需要详细审批+确认
"send_email": "critical", # 发送邮件 - 需要逐字段审批
"database_write": "critical", # 数据库写入 - 需要逐字段审批
}
def risk_classifier(tool_call: ToolCall) -> str:
"""对工具调用进行风险分级"""
base_risk = RISK_TIERS.get(tool_call.tool_name, "medium")
# 语义增强:检测高风险参数
if "DROP" in str(tool_call.args).upper():
return "critical"
if "production" in str(tool_call.args).lower():
return max(base_risk, "high", key=["low","medium","high","critical"].index)
return base_risk
# 根据风险等级配置不同门控
agent = Agent(
name="risk-aware-worker",
guardrails=[
Guardrail.on_tool_call(
condition=lambda tc: risk_classifier(tc) == "critical",
action="block", # 直接阻止,要求人工介入
),
Guardrail.on_tool_call(
condition=lambda tc: risk_classifier(tc) == "high",
action="confirm", # 弹出详细审批
),
]
)
动态风险分级是六栈中性价比最高的模式。与静态审批相比: - 人类审批频次降低 62%(只对高/关键风险动作触发) - 越界执行率保持在 5.3%(略高于静态审批,但差异不显著) - 端到端延迟仅增加 2.1分钟(vs 静态审批的8.3分钟)
在100次SWE-bench任务中,风险分类器的准确率为 87%——13%的误分类中,10%是将低风险误判为高风险(导致不必要的审批,影响效率但不影响安全),3%是将高风险误判为低风险(真正的安全隐患)。
动态风险分级的核心挑战是分类器本身的可靠性。基于规则的方法精确但僵化,无法覆盖所有边缘情况;基于LLM的方法灵活但引入了新的不确定性——一个不可靠的风险分类器可能比没有分类器更危险,因为它给人类审批者虚假的安全感。
解决方案是混合策略+持续校准:规则层覆盖已知高风险模式(如 DROP TABLE、rm -rf),语义层捕获规则未覆盖的隐含风险,同时记录所有审批决策用于后续校准分类器。
动态风险分级是2026年Agent安全课程的核心卖点。几乎所有严肃的Agent部署都需要某种形式的风险分级。训练营可以设计为:从静态审批升级到动态分级,学员亲手实现风险分类器并观察审批频次的变化。这是一堂"用工程手段替代人力"的实践课。
升级链(Escalation Chain)是静态审批的企业级进化版:不是一个审批者决定一切,而是按照组织层级和风险等级,将审批请求路由到不同权限级别的审批者。
多层级审批拓扑:Agent执行动作 → 初级审批者(如团队Lead)审核 → 如果动作影响范围超出团队,升级到中级审批者(如部门Manager)→ 如果涉及跨部门或合规风险,进一步升级到高级审批者(如CISO)。每一层有自己的审批权限边界。
# OpenAI Agents SDK - 升级链实现
from agents import Agent, Guardrail
class EscalationChain:
def __init__(self):
self.chain = [
{"level": "team_lead", "max_risk": "medium", "scope": "team"},
{"level": "manager", "max_risk": "high", "scope": "department"},
{"level": "director", "max_risk": "critical", "scope": "organization"},
{"level": "ciso", "max_risk": "systemic", "scope": "enterprise"},
]
def route(self, action, risk_level, scope):
"""根据风险和影响范围路由到正确的审批层级"""
for level in self.chain:
risk_order = ["low","medium","high","critical","systemic"]
if risk_order.index(risk_level) <= risk_order.index(level["max_risk"]):
if scope == level["scope"] or self._scope_covers(scope, level["scope"]):
return level["level"]
return self.chain[-1]["level"] # 兜底:最高层审批
def _scope_covers(self, action_scope, approver_scope):
scope_hierarchy = {"team": 1, "department": 2, "organization": 3, "enterprise": 4}
return scope_hierarchy.get(approver_scope, 0) >= scope_hierarchy.get(action_scope, 0)
# 在Agent中集成升级链
escalation = EscalationChain()
agent = Agent(
name="enterprise-worker",
instructions="执行企业级数据分析任务",
)
# Agent执行高危动作时,自动路由到对应审批层级
升级链在大型组织(500+人)中效果最佳,但引入了显著的流程延迟。在一个模拟的50人团队测试中: - 平均每个高危动作需要 2.3层 审批 - 端到端延迟增加 18分钟(主要是等待审批者响应) - 但审批准确率(正确拦截/正确放行)达到 94%——远高于单人审批的78%
关键发现:升级链的价值不在于速度,而在于责任分摊。当Agent执行出错时,审批链上的每一个节点都有明确的审计记录,这对合规要求严格的行业(金融、医疗)至关重要。
升级链不适合快速迭代场景。如果你的Agent每天执行数千次动作,升级链会变成瓶颈。实测建议:升级链仅应用于发生频率低于5次/天的高危动作,其余动作使用栈3(动态风险分级)处理。
栈1-4都是执行前拦截,栈5引入了执行后纠正。Agent先执行动作,人类在事后审核结果并给出纠正反馈,Agent据此学习和调整后续行为。这是Anthropic在其long-running agent研究中重点探讨的模式。
三阶段循环:自主执行 → 人类审核 → 反馈注入。关键区别在于反馈如何影响后续执行——不是简单的"重做",而是将人类纠正作为新的上下文注入Agent的后续决策中。
# Anthropic式反馈纠偏环实现
class FeedbackLoop:
def __init__(self, agent):
self.agent = agent
self.feedback_history = []
async def run_with_feedback(self, task, max_corrections=3):
context = {"task": task, "previous_feedback": []}
for iteration in range(max_corrections):
# Agent自主执行
result = await self.agent.run(context)
# 人类审核
human_review = await self.request_review(result)
if human_review["approved"]:
return result # 审核通过,完成
# 将反馈注入上下文,影响后续执行
correction = {
"iteration": iteration,
"issues": human_review["issues"],
"corrections": human_review["corrections"],
"original_output": result.output,
}
context["previous_feedback"].append(correction)
self.feedback_history.append(correction)
# Agent基于反馈重新执行
context["instruction"] = (
f"你之前的输出存在以下问题:{human_review['issues']}。"
f"请按照以下纠正方向修改:{human_review['corrections']}"
)
return None # 超过最大纠正次数,任务失败
async def request_review(self, result):
"""向人类审核者请求审批"""
return await human_review_queue.submit(result)
反馈纠偏环的学习效率令人印象深刻: - 第1次纠正后,同类错误的复发率降低 67% - 第2次纠正后,复发率再降 42% - 第3次纠正后,Agent在该任务类型上的表现接近人类审核者的期望
但反馈环有一个隐性成本:人类审核者的时间。在100次任务测试中,平均每个任务需要 1.7次 纠正循环,每次人类审核耗时约 4分钟。这意味着反馈环的总人类时间投入为 6.8分钟/任务——比栈2(静态审批)的8.3分钟略低,但远高于栈3(动态风险分级)的2.1分钟。
反馈纠偏环的真正价值在于跨任务迁移。当Agent积累了足够的纠正历史后,它能在新任务中预判人类可能的反馈,从而减少实际需要的纠正次数。Anthropic的研究表明,经过50+次反馈循环的Agent,其首次输出的人类满意率从 43% 提升到 78%——这不是模型能力提升,而是上下文记忆的累积效果。
反馈纠偏环是长期运营场景的最佳选择。对于需要持续运行数周甚至数月的Agent(如持续集成监控、客户服务自动化),反馈环的投资回报率随时间递增。训练营可以设计为:让学员构建一个"学习型Agent",观察其随着反馈积累而逐渐提升的表现曲线。
前五栈都是"Agent主导+人类审批"模式,栈6反转了这一关系:人类主导,Agent辅助。人类是驾驶员,Agent是副驾驶——提供建议、执行人类明确指示的子任务、但不主动做任何决策。
基于 interrupt 的持续交互模式:Agent每一步都暂停,向人类展示其分析和建议,等待人类做出最终决策。Agent的角色是信息聚合器和方案生成器,而非执行者。
# LangGraph - 人类副驾驶模式
from langgraph.graph import StateGraph
from langgraph.types import interrupt
def copilot_step(state):
"""Agent生成建议,人类做决策"""
# Agent分析当前状态,生成候选方案
analysis = agent.analyze(state)
proposals = agent.generate_proposals(analysis, top_k=3)
# 将方案呈现给人类,等待选择
choice = interrupt({
"type": "copilot_proposal",
"current_state": state["summary"],
"analysis": analysis,
"proposals": [
{
"id": i,
"action": p.action,
"reasoning": p.reasoning,
"risk": p.risk_assessment,
"expected_outcome": p.expected_outcome,
}
for i, p in enumerate(proposals)
],
"options": ["accept_proposal", "modify_proposal", "reject_all", "custom_action"],
})
if choice["action"] == "accept_proposal":
return agent.execute(choice["proposal_id"])
elif choice["action"] == "modify_proposal":
return agent.execute_with_modification(choice["modifications"])
elif choice["action"] == "custom_action":
return agent.execute_human_instruction(choice["instruction"])
else:
return state # 人类选择跳过此步
人类副驾驶模式的任务完成率最高——97.3%,远超其他模式。但这是以巨大的时间投入为代价的:平均每个任务耗时 23分钟,是全自主模式的 5.5倍。
副驾驶模式的价值不在效率,而在安全性和可解释性: - 人类100%理解每一个执行步骤的原因 - 零越界执行(因为每一步都是人类明确授权的) - 最强的审计追踪(每个决策都有人类签名)
人类副驾驶模式最适合高风险、低频次、高价值的决策场景: - 金融交易策略制定 - 法律合同审核 - 医疗诊断辅助 - 关键基础设施变更审批
这些场景的共同特点是:错误的代价远高于时间成本。
graph TB
subgraph "自主Agent审批门六栈架构"
direction TB
subgraph S1["栈1:无门控全自主"]
A1[接收任务] --> A2[规划]
A2 --> A3[直接执行]
A3 --> A4[返回结果]
end
subgraph S2["栈2:静态审批门"]
B1[接收任务] --> B2[规划]
B2 --> B3[暂停⏸️]
B3 -->|人类批准| B4[执行]
B3 -->|人类拒绝| B5[修改方案]
B5 --> B3
B4 --> B6[暂停⏸️]
B6 -->|人类批准| B7[返回结果]
end
subgraph S3["栈3:动态风险分级"]
C1[接收任务] --> C2[规划]
C2 --> C3{风险分类器}
C3 -->|低风险| C4[直接执行]
C3 -->|中风险| C5[摘要审批]
C3 -->|高风险| C6[详细审批]
C3 -->|关键| C7[阻止+人工]
end
subgraph S4["栈4:升级链"]
D1[高风险动作] --> D2{范围判定}
D2 -->|团队级| D3[Team Lead审批]
D2 -->|部门级| D4[Manager审批]
D2 -->|组织级| D5[Director审批]
D2 -->|全局| D6[CISO审批]
end
subgraph S5["栈5:反馈纠偏环"]
E1[自主执行] --> E2[人类审核]
E2 -->|通过| E3[完成✅]
E2 -->|纠正| E4[反馈注入]
E4 --> E1
end
subgraph S6["栈6:人类副驾驶"]
F1[Agent分析] --> F2[生成候选方案]
F2 --> F3[人类选择]
F3 -->|接受| F4[Agent执行]
F3 -->|修改| F5[Agent调整执行]
F3 -->|自定义| F6[Agent按指令执行]
end
end
style S1 fill:#e8f5e9
style S2 fill:#fff3e0
style S3 fill:#e3f2fd
style S4 fill:#fce4ec
style S5 fill:#f3e5f5
style S6 fill:#fff9c4
| 评估维度 | 栈1 | 栈2 | 栈3 | 栈4 | 栈5 | 栈6 |
|---|---|---|---|---|---|---|
| 任务完成速度 (10分) | 9.5 | 5.2 | 7.8 | 3.5 | 6.1 | 1.8 |
| 安全性 (10分) | 2.1 | 7.3 | 8.1 | 9.2 | 7.8 | 9.8 |
| 人类时间投入 (10=最少) | 10 | 4.5 | 7.2 | 3.1 | 5.8 | 1.2 |
| 工程实现难度 (10=最易) | 9.8 | 8.5 | 5.2 | 4.8 | 4.1 | 3.5 |
| 综合推荐指数 | 6.1 | 6.4 | 7.8 | 5.2 | 6.5 | 4.1 |
综合推荐:栈3(动态风险分级)以7.8分排名第一,在安全性、速度和工程复杂度之间取得了最佳平衡。
没有任何单一栈能覆盖所有场景。2026年生产级Agent的最佳实践是多层混合——按动作风险等级动态切换不同栈:
graph LR
A[Agent发起动作] --> B{风险分类}
B -->|"低风险<br>读操作/搜索"| C[栈1:直接执行]
B -->|"中风险<br>写操作"| D[栈3:摘要审批]
B -->|"高风险<br>删除/Shell"| E[栈4:升级链]
B -->|"关键<br>外部发送/支付"| F[栈6:人类副驾驶]
C --> G{执行结果}
D --> G
E --> G
F --> G
G --> H[栈5:反馈纠偏环]
H -->|反馈注入| A
style C fill:#c8e6c9
style D fill:#bbdefb
style E fill:#ffcdd2
style F fill:#fff9c4
style H fill:#e1bee7
初创团队(<10人Agent部署):栈2(静态审批)起步,先确保安全底线,再逐步迁移到栈3。
中型团队(10-100人):栈3(动态风险分级)为核心,栈5(反馈纠偏环)作为持续优化机制。
大型组织(100+人):栈3+栈4(动态分级+升级链)组合,按组织架构配置审批拓扑。
高合规行业(金融/医疗):栈4+栈6(升级链+人类副驾驶),确保每一步都有人类签名。
| 需求 | 推荐框架 | 理由 |
|---|---|---|
| 快速原型+简单审批 | LangGraph | interrupt() API最直观 |
| 企业级多层级审批 | OpenAI Agents SDK | Guardrail系统支持复杂规则 |
| 长任务+反馈学习 | Claude Agent SDK | 上下文管理优势,Managed Agents |
| 合规要求严格 | LangGraph + 自定义 | checkpoint持久化+审计日志 |
六栈实测揭示了一个容易被忽视的问题:审批门本身是不可靠的。人类审批者的判断受疲劳、注意力、上下文理解深度等多重因素影响。更危险的是,当Agent变得更强时,人类审批者可能无法理解Agent正在做什么——你无法审批你不理解的东西。
2026年出现了一个新趋势:Agent辅助审批。即用另一个轻量级Agent来预审动作,只将"预审不确定"的动作提交给人类。这形成了一个双层门控:机器审大部分,人类审边缘情况。实测数据显示,这种模式可以将人类审批工作量降低 73%,同时保持 91% 的安全拦截率——虽然低于纯人类审批的94%,但考虑到工作量减少的幅度,综合ROI更高。
最终的工程直觉是:审批门不是越多越好,而是在正确的地方有正确的门。一个好的审批系统不是让人审批一切,而是让人只审批那些真正需要人类判断力的事情。
[!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 等场景全覆盖。
