
回复
当智能助手代表用户执行操作时,用户几乎总是应该对是否执行这些操作拥有最终决定权。否则,即使是智能助手的一点小失误,或是它未能抵御的任何指令注入,都可能对用户造成实际损害。
在这部分,我们将利用LangGraph的interrupt_before功能,在执行任何工具之前,暂停流程并把控制权交还给用户。
您的流程图可能看起来像这样:
流程图示例
和之前一样,我们首先定义状态:
我们的流程图状态和LLM调用与第一部分基本相同,除了:
现在,创建流程图。根据第一部分的反馈,我们做出两个改变:
流程图示例2
现在,让我们通过以下对话示例来测试我们新修订的聊天机器人。
现在,我们的智能助手能够节省一步来响应我们的航班详情。我们还完全控制了执行的操作。这一切都是通过LangGraph的interrupts和checkpointers实现的。中断暂停了流程图的执行,其状态使用配置的检查点器安全地持久化。用户随后可以在任何时候通过使用正确的配置运行它来启动它。
查看一个LangSmith示例跟踪,以更好地理解流程图是如何运行的。注意从这个跟踪中,你通常通过使用(None, config)调用流程图来恢复流程。状态从检查点加载,就像它从未被中断过一样。
这个流程图工作得很好!但当需要我们参与每一个智能助手的行动的要求,十分影响使用体验,并且助手在执行查询等动作时并不会影响实际业务。
本文转载自 AI小智,作者: AI小智