DeepAgents 人工介入实战|LangGraph 实现 Agent 高危工具人工审批
为什么 Agent 需要人工介入Agent 最大的价值是可以根据用户目标自主规划并调用工具。但并不是所有工具都适合完全自动执行。比如删除数据库表删除文件发起转账修改线上配置调用外部系统执行不可逆操作这些动作一旦执行错误影响可能非常大。所以比较合理的模式是普通查询类动作可以让 Agent 自动执行高风险动作必须先进入人工审批。在本文示例中我们定义了三个工具query_table_data查询表数据低风险可以自动执行delete_table删除数据表高风险需要人工审批delete_file删除文件高风险需要人工审批用户输入的任务是先查询product表的数据再删除user表最后删除lucaju.txt文件Agent 会先分析任务并尝试依次调用工具。但当执行到删除表、删除文件这类高风险动作时会被框架中断等待人工确认。二、初始化大模型首先初始化模型import os from langchain.chat_models import init_chat_model llm init_chat_model( modelkimi-k2.5, model_provideropenai, api_keyos.getenv(AliQwen_API), base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1, model_kwargs{reasoning_effort: none}, )这里使用的是 OpenAI 兼容模式所以model_provider设置为openai同时把base_url指向阿里云 DashScope 的兼容接口。需要提前配置环境变量export AliQwen_API你的 API Keymodel_kwargs{reasoning_effort: none}是模型调用参数可以根据实际模型支持情况调整。三、定义工具示例中定义了三个工具from langchain.tools import tool tool def delete_table(table_name: str) - str: 删除指定的表 return f删除表{table_name} tool def delete_file(file_name: str) - str: 删除指定的文件 return f删除文件{file_name} tool def query_table_data(table_name: str) - str: 查询指定表的数据 return f查询表{table_name}的数据这里为了演示效果工具内部只是返回字符串并没有真的连接数据库或删除文件。在真实项目中delete_table可能会执行 SQLdelete_file可能会操作对象存储或服务器文件系统。这类工具就非常适合加人工审批。四、为什么必须配置 CheckpointerHuman-in-the-loop 的核心不是简单地打印一句“是否确认”而是让 Agent 的执行流程真正暂停下来并且后续可以从暂停点继续执行。这就需要保存执行状态。示例代码中使用了 LangGraph 提供的内存检查点from langgraph.checkpoint.memory import InMemorySaver checkpointer InMemorySaver() config { configurable: { thread_id: 123 } }这里有两个关键点checkpointer用来保存 Agent 的执行状态。thread_id用来标识当前会话。当 Agent 执行到需要人工介入的节点时LangGraph 会把当前状态保存下来。等人工审批完成后再通过同一个thread_id找回之前的状态并继续执行。如果没有检查点框架就不知道应该从哪里恢复执行。五、创建支持人工介入的 DeepAgent接下来创建 Agentfrom deepagents import create_deep_agent main_agent create_deep_agent( modelllm, name主智能体, system_prompt回答使用中文调用对应的工具实现对应的功能, tools[delete_table, delete_file, query_table_data], interrupt_on{delete_table: True, delete_file: True}, checkpointercheckpointer )这里最关键的是两个参数interrupt_on{delete_table: True, delete_file: True}以及checkpointercheckpointerinterrupt_on用来声明哪些工具调用需要中断。在这个例子中调用query_table_data不会中断调用delete_table会中断调用delete_file会中断也就是说Agent 可以自动查询数据但不能自动删除表或文件。这就是人工介入的核心配置。六、第一次执行触发中断第一次执行 Agentresult_1 main_agent.invoke( { messages: [ { role: user, content: 先查询product表的数据再删除user表最后删除lucaju.txt文件, } ] }, configconfig, )这次调用并不一定会完整执行完所有工具。如果执行链路中包含需要人工审批的工具Agent 会暂停并把中断信息放到返回结果的__interrupt__字段中。示例代码中这样获取interrupt result_1[__interrupt__]当interrupt不为空时说明当前执行过程中存在需要人工介入的动作。七、查看待审批动作

相关新闻

遗传算法进阶:抗早熟、可诊断的可控进化实现

遗传算法进阶:抗早熟、可诊断的可控进化实现

1. 项目概述:为什么“遗传算法第二讲”比第一讲更值得你花时间重读“遗传算法”这四个字,十年前在高校课堂里是《人工智能导论》最后一章的冷门配角,五年后成了算法岗面试必问的“经典老题”,而今天——它已经悄悄长进了工业级推荐…

2026/6/25 13:32:42阅读更多 →
Mesop框架前端安全实战:XSS与注入攻击防御指南

Mesop框架前端安全实战:XSS与注入攻击防御指南

1. 项目概述:为什么Mesop应用必须直面前端安全?最近在重构一个基于Mesop框架的内部管理后台,团队里一位新同事提交了一个看似“巧妙”的功能:一个动态渲染用户输入内容的富文本预览模块。代码跑起来效果炫酷,但当我看到…

2026/6/25 13:32:42阅读更多 →
如何用AI把一段demo续写成完整歌曲

如何用AI把一段demo续写成完整歌曲

一、开篇很多创作者都会先随手录一段哼唱demo、几句钢琴动机或是半段副歌旋律,但不懂完整编曲结构、不会拓展桥段与主歌,小段灵感很难延伸成完整可发布的歌曲。市面上不少AI工具续写能力参差不齐,有的会直接改掉demo原本的核心旋律&#xff0…

2026/6/25 13:32:42阅读更多 →
Apache Zeppelin CVE-2024-31861漏洞深度剖析与复现指南

Apache Zeppelin CVE-2024-31861漏洞深度剖析与复现指南

1. 项目概述:一次对Apache Zeppelin命令执行漏洞的深度剖析最近在安全研究圈里,Apache Zeppelin的CVE-2024-31861漏洞讨论得挺热。这个漏洞本质上是一个未经身份验证的远程命令执行漏洞,攻击者可以利用它,在未授权的情况下&#x…

2026/6/25 15:14:30阅读更多 →
反向传播实战指南:梯度监控、裁剪与混合精度调试

反向传播实战指南:梯度监控、裁剪与混合精度调试

1. 这不是数学课,是神经网络的“方向盘校准术”你有没有试过训练一个神经网络,loss曲线像坐过山车,一会儿暴跌,一会儿突然飙升,最后卡在0.68不动了?或者明明数据很干净、模型结构也合理,但梯度却…

2026/6/25 15:14:30阅读更多 →
DataGemma:面向可信AI的模块化事实验证架构

DataGemma:面向可信AI的模块化事实验证架构

1. 项目概述:DataGemma不是又一个“微调模型”,而是LLM落地可信化的关键拼图你有没有遇到过这样的情况:让大模型查个最新人口数据,它张口就来“2024年全球人口约82亿”,但你心里打鼓——这数字是训练截止时的旧数据&am…

2026/6/25 15:14:30阅读更多 →
AI爱好者怎么从“好奇尝鲜”走向“稳定产出”?

AI爱好者怎么从“好奇尝鲜”走向“稳定产出”?

很多 AI 爱好者在初次接触大语言模型、图像生成工具时,都会被 AI 快速生成内容的能力带来新鲜感。只需一句简单的指令,就能得到一段完整的文字或是一张风格化图像,很容易让人对 AI 的创作潜力产生很高的期待。但这种新鲜感往往在深入使用后会…

2026/6/25 15:14:30阅读更多 →
MoE工程实战:从门控路由到All-to-All通信的全栈优化

MoE工程实战:从门控路由到All-to-All通信的全栈优化

1. 项目概述:这不是一个“新模型”,而是一场持续三十年的工程革命“Mixture of Experts”(MoE)这个词,今天被频繁挂在大模型发布会的PPT上,常被简化为“稀疏激活”“万亿参数”的代名词。但如果你翻看1991年…

2026/6/25 15:14:30阅读更多 →
P1469 找筷子

P1469 找筷子

题目描述 经过一段时间的紧张筹备,电脑小组的“RP 餐厅”终于开业了,这天,经理 LXC 接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘手的问题&#xff1…

2026/6/25 15:09:28阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/25 9:39:54阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/25 2:52:24阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/25 9:01:34阅读更多 →
面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

上半年跳槽,面了十几家公司。说句实话,不是能力不行,是面试现场太容易崩了。 明明准备了一周,面试官换个问法脑子就一片白。面完之后那个懊悔——其实我会的。 后来开始试市面上的AI面试辅助工具。前前后后装了5款,踩…

2026/6/25 11:52:11阅读更多 →
Claude Code 提示词设计:从塑造“人格”到建立“状态机”

Claude Code 提示词设计:从塑造“人格”到建立“状态机”

当前 AI Agent 设计的核心痛点在于:大模型不缺写代码的能力,缺的是克制力、边界感和验证逻辑。Prompt 不再是用来塑造“人格”的,而是用来建立“状态机(State Machine)”和“行为门禁(Guardrails&#xff0…

2026/6/25 11:52:11阅读更多 →
MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MONKEYCODE 教程系列 MonkeyCode教程及推广系列 MC-037 自定义 Skill 开发:创建你的AI能力模块 >官网链接注册更放心哦https://monkeycode-ai.com/?ic019e0aed-c823-783c-b08a-4f030f891e4e 系列: 不爱土豆唯爱马铃薯 MonkeyCode 教程系列 字数: 约 1400 字…

2026/6/25 11:52:11阅读更多 →