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