![](https://s5-media.51cto.com/aigc/pc/static/noavatar.gif)
实战LangGraph中实现「人机交互」!如何确保Agent系统每一步都符合预期?
嘿,大家好!这里是一个专注于AI智能体的频道!
今天我们聊聊如何在LangGraph中实现“人机交互”(Human-in-the-Loop,简称HIL)的机制。这可是让智能系统更懂你、更贴心的秘密武器哦!
想象一下,你的智能助手在执行任务时突然停下来,问你:“嘿,我接下来要用这个工具,你觉得怎么样?”这就是HIL的核心——在关键时刻让人类介入,确保每一步都符合你的期望。
具体怎么做呢?我们通过在LangGraph中设置断点来实现。这些断点会在执行图的关键点暂停,等待你的输入。在我的例子中,我们在一个工具被执行之前设置了一个断点,检查智能助手是否选择了正确的工具。如果选对了,我们继续;如果没选对,那就停下来,等待你的指示。
考虑到代码块放在文章之中太长,影响观看体验,获取本文代码脚本,请后台私信 人机交互agent
为了展示这个过程,我们用Streamlit做了一个应用。你需要下载代码,然后在cmd运行它。代码中,我们首先设置了环境变量,定义了模型(我们用的是OpenAI的GPT-4o模型,当然你也可以尝试其他模型)。
接下来,我们定义了两个工具:一个是用来做互联网搜索的,另一个是简单的加法工具。通过ToolExecutor,我们管理并执行这些工具。然后,我们定义了一些函数,比如should_continue来判断是否继续执行,call_model来调用模型,call_tool来执行工具。
最后,我们用LangGraph定义了一个工作流程图,有两个节点:agent和action。agent节点调用模型,action节点调用工具。我们设置了从agent到action的条件边,以及从action回agent的正常边,形成了一个循环。
关键的是,我们在编译图时加入了检查点,这样在执行过程中可以支持中断。我们使用SqliteSaver来保存状态,确保在中断前能够保存当前的执行状态。
运行这个应用时,用户输入一个问题,智能助手会选择合适的工具,并显示工具名称。然后,系统会生成一个验证消息,询问用户是否批准。如果用户回答“yes”,那么工具调用消息会被添加到状态中,继续执行。如果用户回答其他内容,执行将从用户输入的新消息开始。
通过这种方式,HIL机制不仅让智能助手的操作更加透明,还让你能够实时干预和批准工具的选择,确保每一步都符合你的期望。是不是很酷?这就是LangGraph和HIL的魅力所在!
本文转载自 探索AGI,作者: 猕猴桃
![](https://s5-media.51cto.com/aigc/pc/static/noavatar.gif)