我沒想挑釁或取笑;我真心想了解使用AI代理框架(例如LangChain、Crew AI等)與僅使用普通的「原生」程式碼實現代理的優缺點。
從我看到的來看:
另一方面,我沒看到眾多可用框架中哪個明顯更好,而且這個領域發展非常迅速。因此,今天選擇一個框架——即使它可能為我節省一些時間(這本身就是個很大的「如果」)——也可能導致在不久的將來需要進行大量的返工或更新。
正如我所提到的,我只是想學習。我的公司要求我在接下來的一週內決定是使用純程式碼還是AI代理框架,我正在尋找一些有根據的意見。
最近看到的框架幾乎都一樣,雖然有些微小的視覺差異,但核心功能都差不多。
這就讓人不禁想問,為什麼會有這麼多框架,又是誰寫的呢?答案很明顯:這些框架是比較容易寫的部份,不然就不會有這麼多了。
困難的部分跟語言模型的編排一點關係也沒有。困難的是把它應用到各種不同的系統上,而這些系統各自都有問題。困難的是在擴展規模的同時壓低成本。困難的是處理複雜的情況,無論是使用者直接驗證身份,還是提供預先共享的憑證給代理程式與所有使用者共享。困難的是保持上下文,並清楚區分不同使用者互動的界線。
這些困難的部分真的很难,據我所知,目前還沒有一個框架能解決這些問題。
當我看到有人說:「你看,我用一百行程式碼寫了一個代理程式框架!」我就會懷疑這個開發者的經驗,因為很明顯他們沒解決過這些困難的問題,而這些問題跟代理程式的控制流程一點關係也沒有——不然他們就會知道,也會更謙虛一點。
**問題不在於該選擇哪個框架,而在於要不要選擇框架。大多數開發者不會問這個問題,因為他們不是產品經理。**他們核心假設是「只要你做出來,就會有人用」,但這從來不會發生。選擇「正確的」框架無法彌補缺乏清晰的思維。**事實上,你可以用最爛的框架做出很棒的體驗,**也能用最好的框架做出糟糕的體驗。很可能,這種情況經常發生。
**正確的做法是從客戶及其問題出發,然後找出目前可以解決這些問題的工具,接著學習、快速迭代,並重複這個過程。**經過幾輪之後,你很可能會建立獨特的觀點,從而做出更好的決策和獲得更好的結果。到那個時候,你就會很清楚地知道哪個框架是策略性的舉措,哪個只會分散你的注意力。