這或許有可能,但距離這一目標還有許多挑戰需要克服。在構建 Agent 智能體的過程中,開發者們不僅要考慮選用哪種大模型、應用場景和技術架構,還需要在眾多開發框架中做出抉擇。是繼續沿用較為成熟的 LangGraph,還是擁抱新興的 LlamaIndex Workflows?或者回歸傳統,親自編寫所有代碼?

本文旨在幫助您更輕松地做出決策。在過去幾周,我們利用多個主流框架構建了相同的智能體,并從技術角度對它們的優勢和不足進行了分析。

Code-Based Agent(不使用智能體框架)

在著手開發 Agent 智能體應用時,你可以選擇不依賴任何框架,而是完全自主構建,整體流程如下所示:

以下 Agent 智能體應用完全由代碼構建而成,其核心是一個由 OpenAI 技術支撐的技能調度器。該調度器通過函數調用機制來決定激活哪項技能。技能操作完成后,控制權將重新交還給技能調度器,以便于它能夠繼續調度其他技能或者直接對用戶進行反饋。

在整個交互過程中,Agent 智能體不斷記錄用戶的提問和自身的回答,并在每次技能調用時,將這一系列對話完整地傳遞給技能調度器,以此保證交互的連貫性和上下文的完整性。

LangGraph

LangGraph 是眾多 Agent 智能體框架中最早出現的一個,它在 2024 年 1 月首次亮相。這個框架的創建目的是為了克服現有流程和鏈條中的非循環性挑戰,通過運用 Pregel 圖模型來應對這一難題。LangGraph 通過引入節點、邊以及條件邊的概念,簡化了在智能體內部構建循環流程的步驟,使得圖結構的遍歷更為直觀易懂。LangGraph 是建立在 LangChain 之上的,它沿用了 LangChain 的對象和類型系統。

乍一看,LangGraph 智能體與傳統的基于代碼的智能體似乎有共通之處,然而它們的底層實現卻存在顯著差異。盡管 LangGraph 也采用了“路由器”這一術語,指的是通過函數調用與 OpenAI 交互并利用其輸出推動流程前進,但是它在不同技能間的切換邏輯卻是獨樹一幟的。

在所描述的圖結構中,我們定義了一個用于啟動 OpenAI 調用的節點,即“agent”,以及一個用于執行工具處理步驟的節點,即“tools”。LangGraph 提供了一個名為 ToolNode 的內置對象,該對象能夠接收并調用一系列工具,根據 ChatMessage 的反饋來激活這些工具,并在操作完成后返回到“agent”節點。

每當“agent”節點(在基于代碼的智能體中相當于技能路由器)被激活后,should_continue 這條邊將決定是將輸出直接傳送給用戶,還是傳遞給 ToolNode 以進行工具調用。

在每個節點內部,“state” 負責存儲與 OpenAI 之間的交互消息和響應歷史,這一點與基于代碼的智能體在維持上下文方面有著相似的做法。

LlamaIndex Workflows

Workflows 是 Agent 智能體框架領域的新加入者,它在今年夏天初首次發布。與 LangGraph 相似,其設計目標是簡化循環智能體的構建流程。此外,Workflows 特別突出了其異步操作的功能。

在 Workflows 的設計中,某些概念似乎是為了直接與 LangGraph 競爭,尤其是它使用事件而不是邊或條件邊作為邏輯連接的手段。在 Workflows 中,智能體的邏輯被封裝在“步驟”中(與 LangGraph 的“節點”相對應),而事件的觸發和監聽則負責在不同步驟之間傳遞信息。

這兩個框架在結構上有著顯著的相似性,但存在一個差異:為 Workflows 增加了一個專門的初始化步驟,用于設置智能體的環境上下文,這一點我將在后面詳細說明。盡管它們的結構設計相近,但它們所依賴的代碼基礎卻完全不同。

以下代碼展示了 Workflow 的結構。與 LangGraph 類似,在此部分,我設定了狀態信息,并將各種技能與 LLM 對象關聯起來。

此外,我還定義了一個附加步驟——“prepare_agent”。這個步驟負責將用戶的輸入轉換成 ChatMessage 格式,并將其存入工作流的歷史記憶中。將這一轉換過程獨立為一個單獨的步驟,意味著智能體在執行工作流步驟時,能夠多次回到這個步驟,從而避免了重復將用戶信息加載到記憶存儲的必要性。

在 LangGraph 的實現中,我采用了位于圖結構之外的 run_agent 方法來實現相同的目的。這種改變主要是基于個人編碼風格的偏好,但我認為,將這一邏輯融合到 Workflow 和圖中,會使整體結構更加清晰和高效。

在完成了 Workflow 的配置之后,我繼續編寫了以下路由代碼:

以及工具調用的處理代碼:

三種開發框架的比較

比較這三種方法,各有特色。

無框架方法最直接。所有抽象層由開發者自定義,管理類型和對象相對簡單。但隨著 Agent 智能體復雜性增加,缺乏結構可能導致難以管理。

LangGraph 提供了明確的 Agent 智能體結構,有利于團隊協作和規范統一。對結構不熟悉的開發者也易于上手,但可能需要更多調試,若不適應框架則可能感到困擾。

Workflows 則介于兩者之間,基于事件的架構在特定項目中有優勢,對 LlamaIndex 依賴性低,給開發者更多自由。

核心問題在于是否已使用 LlamaIndex 或 LangChain。LangGraph 和 Workflows 與依賴框架緊密集成,其額外優勢可能不足以成為轉換的理由。

純代碼方法始終有吸引力。只要能嚴格記錄和執行抽象概念,就能確保外部框架不會成為障礙。

三種開發框架如何選擇?

當然,僅僅說“視具體情況而定”并不能完全滿足我們的需求。以下三個問題可能有助于你為下一個智能體項目選擇合適的框架。

你的項目是否已經與 LlamaIndex 或 LangChain 緊密集成?

如果是,那么這兩個框架應該是你的首選。

你是否熟悉 Agent 智能體的標準架構,還是更希望得到構建 Agent 智能體結構的指導?

如果你偏向于得到指導,Workflows 可能是合適的選擇。如果你非常需要指導,LangGraph 可能更合適。

你是否有現成的 Agent 智能體示例作為參考?

框架的一大優勢在于提供了豐富的教程和案例供你參考,而純代碼構建的智能體可能缺乏這樣的資源。

文章轉自微信公眾號@玄姐聊AGI

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
輕松上手 LangChain 開發框架之 Agent 技術 !
下一篇
使用 Go 開發 AI Agent的選擇:Genkit for Go
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
亚洲精品国产第一综合99久久| 国产日韩欧美制服另类| 欧美日韩国产123区| 樱花影视一区二区| 亚洲一区免费观看| 2021中文字幕一区亚洲| 91麻豆精品国产91久久久久久| 国产一区二区三区在线观看免费 | 色婷婷狠狠综合| 日韩欧美色电影| 日韩色在线观看| 亚洲一区精品在线| 国产精品视频你懂的| 欧美日韩久久一区| 日韩主播视频在线| 免费成人深夜小野草| 欧美综合亚洲图片综合区| 国产网站一区二区三区| 亚洲女同一区二区| 亚洲男人的天堂av| 久久精品国产一区二区| 日韩在线一区二区三区| 国产三级精品视频| 日韩一区二区电影| 亚洲一区影音先锋| 一区二区中文视频| 欧美国产激情二区三区| 精品国产91久久久久久久妲己| 99久久久无码国产精品| 亚洲天堂精品视频| 一本大道av伊人久久综合| 久久精品一区四区| 99精品黄色片免费大全| 欧美精品一区在线观看| 麻豆精品视频在线| 日本不卡一区二区| 亚洲人成亚洲人成在线观看图片| 2021国产精品久久精品| 久久色视频免费观看| 麻豆国产欧美日韩综合精品二区| 欧美日韩国产精品自在自线| 东方aⅴ免费观看久久av| 夜夜精品视频一区二区| 欧美日韩精品系列| 成人午夜激情在线| 成人福利视频网站| 亚洲sss视频在线视频| 蜜桃精品视频在线观看| 18涩涩午夜精品.www| 麻豆一区二区三| gogo大胆日本视频一区| 91精品久久久久久久99蜜桃| 欧美成人在线直播| 精品美女一区二区| 制服丝袜一区二区三区| 日韩久久一区二区| 日韩欧美综合一区| 精品国产99国产精品| 中文成人av在线| 久久国产欧美日韩精品| 欧美日韩一区高清| 日韩视频免费观看高清完整版 | 亚洲精品久久久蜜桃| 欧美日韩精品高清| 欧美激情一区二区在线| 久久国产精品一区二区| 99久久久无码国产精品| eeuss鲁片一区二区三区在线看| 国产成人亚洲精品青草天美| 亚洲图片有声小说| 国产精品美女www爽爽爽| 欧美日韩一区三区四区| 日本不卡视频在线| 99精品热视频| 亚洲精品菠萝久久久久久久| 亚洲123区在线观看| 亚洲国产综合在线| 日本国产一区二区| 欧美一区二区三区播放老司机 | 日本高清成人免费播放| av午夜一区麻豆| 亚洲精品视频在线看| 国产传媒久久文化传媒| 欧美日韩国产经典色站一区二区三区 | 精品久久久网站| 福利一区二区在线| 国产精品久久久久久久久果冻传媒| 日韩欧美在线不卡| 欧美日韩一区二区在线视频| 色久综合一二码| 国模大尺度一区二区三区| 国产欧美一区视频| 欧美最猛黑人xxxxx猛交| 国产精品初高中害羞小美女文| 综合av第一页| 久久国产精品99久久久久久老狼| 精品国免费一区二区三区| 国产在线不卡一卡二卡三卡四卡| 91精品午夜视频| 国产欧美综合色| 性久久久久久久| 欧美在线观看视频在线| 五月天久久比比资源色| 不卡视频免费播放| 国产成人在线观看免费网站| 欧美日韩高清在线| 欧美色图在线观看| 最新国产精品久久精品| 一区二区三区在线观看动漫| 天天操天天色综合| 国产在线看一区| 蜜臀a∨国产成人精品| 亚洲少妇最新在线视频| 免费高清视频精品| 色94色欧美sute亚洲线路一久 | 91视频免费看| 色吧成人激情小说| 欧美xxxxxxxxx| 国产视频不卡一区| 日韩欧美在线网站| 国产精品一区二区在线观看网站| 欧美日韩成人一区二区| 91丨九色porny丨蝌蚪| 欧美色倩网站大全免费| 久久精品亚洲麻豆av一区二区 | 国产精品久久久久一区二区三区共| 亚洲欧美综合色| 国产成人h网站| 91猫先生在线| 久久久久久毛片| 韩国av一区二区三区在线观看| 亚洲一区二区三区爽爽爽爽爽 | 欧美一级电影网站| 国产夫妻精品视频| 色嗨嗨av一区二区三区| 成人丝袜视频网| 日本不卡视频一二三区| 欧美精品三级日韩久久| 蜜桃91丨九色丨蝌蚪91桃色| 欧美一区日本一区韩国一区| 奇米影视一区二区三区小说| 国产一区二区三区电影在线观看| 久久精品一二三| 欧美视频在线一区二区三区| 一区二区三区免费网站| 久久免费看少妇高潮| 石原莉奈在线亚洲二区| 亚洲精品免费视频| 亚洲最新视频在线观看| 久久久国产综合精品女国产盗摄| 91色porny在线视频| 国产一区二区日韩精品| 午夜视频一区在线观看| 亚洲日本在线a| 亚洲欧美日韩在线| 亚洲欧美日本在线| 日韩天堂在线观看| 久久成人综合网| 成人黄色a**站在线观看| 一本大道久久a久久精品综合| 久久国产尿小便嘘嘘| 国产99久久久久| 精品国产网站在线观看| 青椒成人免费视频| 欧美日韩一区二区电影| 日韩va欧美va亚洲va久久| 成人app在线| 日本一区二区三区四区| 国产美女精品在线| 久久奇米777| 国产99精品国产| 一本大道久久a久久精品综合| 亚洲成人1区2区| 亚洲欧美区自拍先锋| 久久久99精品免费观看| 亚洲在线观看免费| 国产黄人亚洲片| 欧美xxxxx裸体时装秀| 欧美成人aa大片| 美女网站色91| 精品国产乱码久久久久久图片| 欧美三级视频在线观看| 成人欧美一区二区三区白人| 亚洲高清中文字幕| 成av人片一区二区| 精品国产乱码久久久久久久| 亚洲精品成人少妇| 一区二区三区日韩| 在线欧美日韩精品| 一本色道久久综合精品竹菊 | 国产二区国产一区在线观看| 日韩精品一卡二卡三卡四卡无卡 | 国产精品卡一卡二| 日本韩国视频一区二区| 午夜久久电影网| 精品va天堂亚洲国产| 国产成人av在线影院| 91福利视频网站| 国产成人精品www牛牛影视| 伊人色综合久久天天|