当前位置: 首页 > news >正文

AI Agent 从入门到封神:24 讲打造你的超级智能体~系列文章20:人机协作HITL:让Agent在关键决策时“请示领导“,安全又高效

人机协作HITL:让Agent在关键决策时"请示领导",安全又高效 🤝

导读:Agent再聪明,也不是万能的。关键决策需要人类拍板!Human-in-the-Loop(HITL,人在回路)是Agent安全落地的最后一道防线。今天教你如何让Agent在关键时刻"请示领导"!🛡️


一、为什么需要HITL?🤔

1.1 Agent的"翻车"案例

场景没有HITL有HITL
💰财务审批Agent直接转账100万💀Agent提交审批,等待确认✅
📧邮件发送Agent群发错误邮件💀Agent起草邮件,人工审核后发送✅
🏥医疗诊断Agent直接开处方💀Agent给出建议,医生确认后执行✅
🗑️数据删除Agent删除生产数据库💀Agent列出待删数据,人工确认✅

💀没有HITL的Agent = 没有刹车的汽车,跑得越快越危险!

1.2 HITL的核心价值

低风险

中风险

高风险

🤖 Agent自主处理

风险等级?

✅ 自动执行

📋 通知人类

⏸️ 等待审批

人类确认


二、HITL的三种模式 📊

模式说明适用场景人类介入程度
👁️监督模式Agent执行,人类观察低风险、成熟场景
📋审批模式Agent建议,人类批准中风险、重要决策⭐⭐⭐
🤝协作模式人机交替工作高风险、复杂任务⭐⭐⭐⭐⭐

三、LangGraph实现HITL 💻

3.1 基础版:审批模式

fromlanggraph.graphimportStateGraph,START,ENDfromlanggraph.checkpoint.memoryimportMemorySaverfromtypingimportAnnotatedfromlanggraph.graph.messageimportadd_messagesclassApprovalState(MessagesState):messages:Annotated[list,add_messages]pending_approval:bool=Falseuser_decision:str=""# "approved" / "rejected"# Agent节点:执行任务defagent_node(state):"""Agent分析任务并给出建议"""return{"pending_approval":True,"messages":[{"role":"assistant","content":"建议执行XX操作,是否批准?"}]}# 人工审批节点defhuman_approval(state):"""等待人类审批"""# 在实际应用中,这里会暂停等待人类输入returnstate# 执行节点defexecute_node(state):"""执行已批准的操作"""ifstate["user_decision"]=="approved":return{"messages":[{"role":"assistant","content":"✅ 操作已执行!"}]}else:return{"messages":[{"role":"assistant","content":"❌ 操作已取消。"}]}# 路由defcheck_approval(state):ifstate["user_decision"]=="approved":return"execute"return"end"# 构建图workflow=StateGraph(ApprovalState)workflow.add_node("agent",agent_node)workflow.add_node("approval",human_approval)workflow.add_node("execute",execute_node)workflow.add_edge(START,"agent")workflow.add_edge("agent","approval")workflow.add_conditional_edges("approval",check_approval,{"execute":"execute","end":END})workflow.add_edge("execute",END)# 使用 interrupt_before 实现人工审批checkpointer=MemorySaver()app=workflow.compile(checkpointer=checkpointer,interrupt_before=["approval"]# 在审批节点前暂停)

3.2 运行流程

# 第一步:Agent分析config={"configurable":{"thread_id":"1"}}result=app.invoke({"messages":[{"role":"user","content":"帮我删除过期数据"}]},config)print("Agent建议:",result["messages"][-1]["content"])# 输出:Agent建议:建议执行删除过期数据操作,是否批准?# 第二步:人类审批(通过 update_state 注入决策)app.update_state(config,{"user_decision":"approved"},as_node="approval")# 第三步:继续执行result=app.invoke(None,config)print("结果:",result["messages"][-1]["content"])# 输出:结果:✅ 操作已执行!

四、进阶:分级审批系统 🏗️

4.1 风险分级

defassess_risk(action:str)->str:"""评估操作风险等级"""high_risk=["删除数据","转账","发送邮件","修改配置","部署上线"]medium_risk=["生成报告","创建文件","修改草稿"]forkeywordinhigh_risk:ifkeywordinaction:return"high"forkeywordinmedium_risk:ifkeywordinaction:return"medium"return"low"# 路由决策defroute_by_risk(state):risk=assess_risk(state["action"])ifrisk=="high":return"human_approval"# 高风险:等待审批elifrisk=="medium":return"human_notify"# 中风险:通知人类else:return"auto_execute"# 低风险:自动执行

4.2 流程图

高风险 🔴

中风险 🟡

低风险 🟢

批准

拒绝

🤖 Agent决定执行操作

风险评估

⏸️ 暂停等待审批

📋 通知人类

✅ 自动执行

人类审批

❌ 取消操作


五、HITL最佳实践 📋

5.1 设计原则

原则说明示例
🎯最小介入只在必要时让人类介入低风险操作自动执行
快速响应审批流程要快,不阻塞Agent超时自动降级
📊信息充分给人类足够的决策信息展示操作影响范围
🔄可回溯人类可以随时撤销支持undo操作
📈逐步放权随着信任增加,减少审批学习人类决策模式

5.2 超时处理

defhandle_timeout(state):"""审批超时处理"""timeout=state.get("timeout_seconds",300)iftimeout_expired(timeout):# 超时策略:保守处理return{"user_decision":"rejected","messages":[{"role":"assistant","content":f"⏰ 审批超时({timeout}秒),操作已取消。"}]}returnstate

六、HITL应用场景大全 🌟

场景风险等级HITL模式说明
💰 财务转账🔴 高审批模式必须人工确认
📧 邮件发送🟡 中审批模式重要邮件需审核
📊 数据分析🟢 低监督模式自动执行,记录日志
🗑️ 数据删除🔴 高审批模式必须人工确认
📝 内容生成🟢 低监督模式自动生成,人工抽检
🏥 医疗建议🔴 高审批模式必须医生确认
🛒 商品推荐🟢 低自动模式全自动
🔧 系统配置🔴 高审批模式必须运维确认

七、本期小结 📝

知识点核心内容
为什么需要HITLAgent不是万能的,关键决策需要人类
三种模式监督、审批、协作
实现方式LangGraph的interrupt_before机制
风险分级高→审批,中→通知,低→自动
最佳实践最小介入、快速响应、信息充分

🔥HITL是Agent安全落地的关键!没有人类监督的Agent就像没有方向盘的赛车——跑得越快,翻得越惨。学会HITL,让你的Agent既智能安全


📢 下期预告:《Agent可观测性:如何监控、调试、追踪你的智能体?》—— Agent上线了,怎么知道它跑得怎么样?🔍


📌三连走起!HITL,让AI学会"请示汇报"!💪

📚专栏第20/24期,多Agent协作篇完结!🎉

作者:高炉炼铁智能化技术研究者,专注钢铁冶金与人工智能 交叉领域。

👍 如果觉得有帮助,请点赞、收藏、转发!
版权归作者所有,未经许可请勿抄袭,套用,商用(或其它具有利益性行为)
🔔 关注专栏,不错过后续精彩内容

http://www.cnnetsun.cn/news/3294348.html

相关文章:

  • Windows 10/11 后门木马排查实战:12步手工定位与PCHunter工具辅助
  • 网络安全自查报告实战:基于等保2.0的8大模块自查清单与3个常见误区
  • VisualCppRedist AIO:终极解决方案,一键修复Windows所有DLL缺失问题
  • 终极指南:如何在Windows系统上免费获得macOS风格的优雅鼠标指针
  • 如何快速配置NewGAN-Manager:足球经理头像管理终极指南
  • 猫抓Cat-Catch:浏览器资源嗅探的终极免费工具,三步下载任何网页视频
  • 国创(大创)申报书实战:从0到1构建‘已有基础’与‘预期成果’的5个策略
  • MiniMax编程辅助避坑指南:国产模型在代码补全中的能力边界与工程代价
  • 基于MA12070与PIC18F45K42的高保真音频系统设计
  • Cursor Agent模式上线倒计时:2024Q3起GitHub Copilot Enterprise强制启用Agent Runtime,你的CI/CD pipeline准备好了吗?
  • 如何通过开源脚本永久激活IDM下载管理器
  • Elasticsearch 入门教程:核心原理、Docker 部署与中文搜索实战
  • Unity接入海康威视摄像头:SDK与VideoPlayer方案深度对比与低延迟实战
  • 西城微科蓝牙电子秤PCBA方案设计
  • 快速上手NS-USBLoader:5步搞定Switch游戏传输与RCM注入的终极免费工具
  • 如何快速配置TPFanCtrl2:ThinkPad用户的终极散热与静音指南
  • TI WEBENCH 滤波器设计工具 2024版:5步完成9阶Chebyshev低通滤波器设计
  • 2026年GEO优化代理值得做吗
  • PilotGo-plugin-logs高级功能:日志级别过滤与时间范围查询完全指南
  • DyscheOS-kernel社区贡献指南:如何参与开源操作系统开发
  • BiSheng JDK riscv部署指南:在RISC-V服务器上运行企业级Java应用
  • ADS 2023 谐波控制网络设计:CGH40010F 窄带 F 类功放 3 次谐波开路/短路实测
  • 别再盲目卷框架了,基础才是你的底气
  • PilotGo-plugin-logs故障排查:10个常见问题与终极解决方案大全
  • F5 LTM 4种部署模式实战对比:单机、HA Pair、集群与云部署选型指南
  • 5分钟掌握智慧教育平台电子课本高效下载方案
  • Midjourney提示词黄金公式曝光(含27个行业模板+137个参数组合对照表)——仅限本周开放下载
  • 终极指南:如何让你的老Mac焕发第二春,免费升级到最新macOS
  • Hadoop 3.3.5 HDFS 集群部署实战:3节点伪分布式环境搭建与核心服务验证
  • Pygame飞机大战实战:Python游戏开发入门与面向对象设计