AI Agent LangGraph:LangChain - AI新時代的構(gòu)建者 原創(chuàng)
在探索人工智能的無限可能中,構(gòu)建智能代理(Agents)已成為技術(shù)發(fā)展的新前沿。LangChain的最新擴展——LangGraph以其獨特的技術(shù)架構(gòu)構(gòu)建方式,為AI領(lǐng)域的創(chuàng)造帶來了前所未有的靈活性和控制力。
一、LangGraph的架構(gòu)之美
LangGraph的誕生,不是偶然,它是在LangChain堅實基礎(chǔ)上的自然延伸。作為一個擴展庫,它與LangChain的現(xiàn)有組件水乳交融,共同繪制了AI發(fā)展的新藍圖
工作流程:通過精確定義圖的節(jié)點與邊,LangGraph將復雜的基于LLM的任務細節(jié)轉(zhuǎn)化為直觀的Graph表示。在任務執(zhí)行過程中,中央狀態(tài)對象不斷更新,確保了任務的連續(xù)性和一致性。
在構(gòu)建好 StateGraph,并增加 Node 和 Edge 后,可以通過 compile 編譯成可運行的應用示例如下:
二、核心概念解析
- StateGraph是LangGraph中代表整個狀態(tài)圖的基礎(chǔ)類。它是應用狀態(tài)管理的中心,負責維護和更新應用在運行過程中的各種狀態(tài)信息。StateGraph使得開發(fā)者能夠清晰地追蹤和控制應用的每個階段,確保了狀態(tài)的一致性和可管理性。
- Nodes(節(jié)點)是構(gòu)成狀態(tài)圖的基本單元。每個節(jié)點可以是一個獨立的任務,如推理函數(shù)調(diào)用、檢索器調(diào)用、響應內(nèi)容生成或問題重寫等。節(jié)點的設計允許開發(fā)者將復雜的AI任務分解為可管理的小塊,每一塊都是一個可調(diào)用的函數(shù)、Chain或Agent。
- 特殊節(jié)點 END節(jié)點:一個特殊的節(jié)點,它的進入標志著任務的完成和應用的結(jié)束。
- Edges(邊):定義了節(jié)點間的跳轉(zhuǎn)關(guān)系,它們是任務流程中不可或缺的部分。LangGraph中的邊有三種類型:
- Starting Edge 任務的起點:一種特殊的邊,它定義了任務運行的起始節(jié)點。與普通邊不同,起始邊沒有上游節(jié)點,它標志著任務的開始。
- Normal Edge:普通邊,代表上一個節(jié)點完成后,流程將立即轉(zhuǎn)移到下一個節(jié)點。這種邊確保了任務的線性執(zhí)行,如從Tools調(diào)用到LLM推理的順暢過渡。
- Conditional Edge:條件邊,它在節(jié)點間引入了條件判斷。這種邊不僅連接了上游和下游節(jié)點,還引入了一個條件函數(shù),根據(jù)函數(shù)的返回值來決定流程的分支。例如,Check Relevance節(jié)點使用條件邊來判斷文檔的相關(guān)性,從而決定是生成回答還是重寫問題。
三、LangGraph的應用構(gòu)建
LangGraph革新了AgentExecutor的設計方式,將黑盒操作透明化為直觀的圖形界面,讓開發(fā)者能自定義內(nèi)部結(jié)構(gòu),實現(xiàn)更高層次的功能性與靈活性。通過LangGraph,即便是基礎(chǔ)的ReAct范式Agent也能被重新構(gòu)建,以圖形化手段細化邏輯,推進AI應用的智能化與可定制化進程,實現(xiàn)更復雜的交互與決策能力。
上圖示例代碼:
總結(jié)
LangGraph在構(gòu)建LLM應用時展現(xiàn)了強大的控制能力和靈活性。通過Graph的定義,開發(fā)者可以對AI代理的處理過程進行細致的編排設計,滿足復雜場景的產(chǎn)業(yè)應用需求。
本文轉(zhuǎn)載自公眾號頂層架構(gòu)領(lǐng)域
原文鏈接:??https://mp.weixin.qq.com/s/Kc00uNt8tH4gUiMVmOnQ3Q??
