實戰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??,作者: 獼猴桃