智能體開發需要在靈活性和穩定性之間做出抉擇 原創
“ 智能體開發在穩定性和靈活性之間必須做出一個選擇。”
在前面幾篇文章中介紹了人工智能應用中大模型所扮演的角色,以及提示詞在其中的重要性和作用;但在之前的文章也介紹過智能體,工作流之間的關系,我們今天討論的就是智能體實現過程中,怎么兼顧靈活性和穩定性,以及為什么會有工作流的存在。
智能體的靈活性和穩定性
關于智能體的實現或者說關于大模型應用的開發,其核心都是圍繞大模型所展開;但大模型有一個很大的問題就是其輸出不穩定,因此這也成為智能體開發過程中無法避免的一個問題。
畢竟不能因噎廢食,不能因為大模型輸出不穩定就不做智能體了;因此我們需要找一些解決方案來解決這個問題;而其中比較簡單的解決方案就是把復雜的智能體拆分成一個個小模塊,以局部最優解的思路達到全局最優解。
但拆分之后的小模塊怎么串聯起來呢?使用硬編碼還是使用工作流,或者是其它方式?
從靈活性的角度來說,基于大模型構建智能體我們應該把所有的功能模塊都交給大模型進行處理和調度,盡量弱化人類在其中的作用;但由于大模型的不穩定性,就間接導致智能體的不穩定性,特別是調用鏈路比較長時;局部的不穩定性就會隨著鏈路被無限放大。
因此,這時工作流的作用就體現了;通過工作流,可以把智能體的不同模塊串聯起來,在其中需要人為決策或者容易出現問題的地方,交由人類介入處理;這樣通過人為干涉就可以進來保證智能體運行的穩定性。
但這里就存在一個問題,在一些固定場景中使用工作流是沒有問題的,但如果在變化比較大的場景中或者業務比較復雜的場景中,工作流可能就不那么好用了,這時可能靈活性更重要。
因此,面對這種問題時應該怎么處理?
是應該為了保證靈活性而放棄穩定性,亦或者是為了保證穩定性而放棄靈活性。
我想,這對很多人或者很多場景來說都是一個兩難的抉擇;穩定性意味著相對簡單,但擴展性差,靈活性意味著復雜,穩定性差;而從成本的角度來看,穩定性需要根據不同的場景開發不同的智能體,而靈活性由于其功能比較復雜,其技術開發成本高。
以我們自己公司的數據分析智能體為例,使用工作流和硬編碼的方式可以解決數據分析的準確率問題;但在產品開發過程中,其靈活性下降需要根據不同的場景開發不同的功能。而我們公司目前由于產品的業務場景較復雜,更多的需要的確實靈活性,但在前面的介紹中也說明了,靈活性會導致智能體的輸出不穩定,一個小錯誤會被無限的放大。
所以,在真實的開發場景中,到底應該選擇穩定性,還是選擇靈活性;需要根據自己的業務需求做抉擇,而其更像魚和熊掌,兩者不可兼得。
但兩者卻可以合作,在一些比較重要的場景中,我們可以選擇穩定性較高的開發方式;而在一些非核心業務中,可以使用靈活性更高的開發方式。
本文轉載自??AI探索時代?? 作者:DFires
