關于智能體開發過程中問題的解決思路 原創
“ 智能體開發過程中存在很多問題,但由于其執行過程是個黑盒,因此其調試存在更多的困難。”
最近一段時間一直在搞智能體方面的開發,主要方向是數據分析智能體;采用的框架是langchain家族的Langgraph框架;原因就在于Langgraph有很強的定制功能。
但是,在實際開發的過程中卻一步一步坎,面臨著各種各樣的問題;比如說數據分析結果不準確,找不到數據或文件,在多鏈路的過程中,智能體只能處理一般的需求,另一半需求被忽視。
但不能因為開發過程中存在問題,就不管不問了,畢竟功能還是要做;因此我們需要思考的是怎么解決問題,所以這里就記錄一下解決問題的思路。
智能體開發過程中問題解決的思路
在智能體開發過程中最大的問題最大的問題就是不確定性,原因在于大模型完全不可控;再加上智能體是以大模型為核心的功能模塊,而大模型的執行過程又是一個黑盒,雖然可以使用一些工具監控大模型的執行過程,比如說Langsmith但整體上來說,智能體的運行過程還存在很多的不可控因素。
目前我們的需求是基于pandas對excel,csv,數據庫等結構化數據,使用大模型做數據分析,比如說統計;給大模型提供一個Python運行環境,并給出數據結構,讓大模型根據自己的理解去生成pandas代碼去執行,然后獲取結果。
之后,再根據統計結果,對數據進行可視化,也就是生成圖表,比如說echart表,柱狀圖,折線圖等等。
而經過幾天的demo測試,發現大模型調用pandas進行數據分析出現很多不可控的因素;比如說有時候大模型會虛構一個文件路徑,導致找不到數據文件;其次,大模型生成結果不穩定,比如會生成一些和數據完全無關的內容,或者僅僅只給出一個解決問題的思路,但卻不自動執行。
然后,在對數據進行統計分析之后,無法調用圖表生成工具生成圖表;只執行到數據分析就結束了;再有就是調用了圖表生成工具,生成的結果是錯誤的或者無法正常生成;更有甚者,大模型會連續調用所有的工具,即使這個工具和目前的業務沒什么關聯。
所以,遇到這種問題應該怎么處理?
其實類似于這種問題,考驗的是我們解決問題的能力,簡單來說就是解決問題的方法;而不僅僅只是考驗我們的技術。
對應用開發者來說,大家做開發基本上都是基于第三方的開源框架或工具;而且很多功能都已經封裝好了,我們只需要會使用即可;而遇到這種問題,我們又不可能一點一點的去翻源碼,而且時間上也不允許;畢竟公司招你來是解決問題的,不是讓你來學習的。
因此,這時我們首先需要定位問題,然后拆解問題;比如說這個數據分析的功能,需要調用Pandas進行數據分析,然后使用圖表工具生成圖表。
這時如果出現問題,我們首先需要做的并不是把整個流程串起來跑;而是要學會定位問題,然后拆分問題。比如說無法生成圖表是因為圖表工具有問題,還是說根本沒有調用圖表工具;或者是第一步的數據分析就有問題,導致分析結果有問題,然后無法生成圖表。
因此,這時我們應該把整個鏈路給拆開,先確認數據分析的結果是否有問題,是否穩定;因此我們就可以把圖表生成工具給拿掉,然后只進行數據分析;如果數據分析有問題,到底是因為模型的原因,還是數據的原因,亦或者你數據分析的流程本身就有問題。
而這時我們就需要使用替換法,比如說更換模型,更換一個能力更強的模型;看看是否能夠進行準確的數據分析,如果測試結果是模型有問題,那么就非常簡單換一個模型就行了;而如果測試結果不是模型的問題,那么可能就是你開發的功能有問題,這時就需要去分析你的代碼和邏輯是否有問題。
但我們很多人會因為嫌麻煩或就是單純的懶,就像一次把功能給跑通;在哪里像無頭蒼蠅一樣,到處亂轉,然后偶爾還會嘀咕剛剛還好好的,然后什么都沒動,為什么現在就不行了呢。
總之,遇到這種問題最好的方式就是使用調試工具或者根據自己的經驗,先大概定位問題的位置,然后把影響因素控制到最小,然后再進行測試;這樣才能更加準確地定位問題。
本文轉載自??AI探索時代?? 作者:DFires
