鍵.png)
網(wǎng)易云音樂 API開放平臺訪問token分步指南
def classify(input: str) -> str:
# 判斷輸入內(nèi)容類型
return "math" if "calculate" in input else "qa"
邊表示從一個節(jié)點流向另一個節(jié)點的路徑,可以是條件跳轉(zhuǎn)、固定跳轉(zhuǎn)或循環(huán)返回。
graph.add_edge("start", "classifier")
graph.add_conditional_edges("classifier", condition_func, {"math": "math_node", "qa": "qa_node"})
LangGraph 使用狀態(tài)來記錄當(dāng)前執(zhí)行上下文(如 user input、memory、變量),節(jié)點之間可以修改或傳遞狀態(tài)。
{
"input": "What's 2 + 2?",
"history": [],
"result": "4"
}
Graph 是 LangGraph 的核心容器,所有節(jié)點、邊和狀態(tài)都定義在其中。
from langgraph.graph import StateGraph
graph = StateGraph(state_type=MyCustomState)
這個 Agent 將用戶輸入分類為“數(shù)學(xué)”或“問答”,并調(diào)用不同模型回答,最后返回結(jié)果。
from typing import TypedDict
class AgentState(TypedDict):
input: str
result: str
def classifier(state: AgentState) -> str:
if any(k in state["input"] for k in ["calculate", "+", "-", "*"]):
return "math"
return "qa"
def math_node(state: AgentState) -> AgentState:
state["result"] = str(eval(state["input"]))
return state
def qa_node(state: AgentState) -> AgentState:
# 簡化為靜態(tài)回答
state["result"] = "This is a general answer."
return state
from langgraph.graph import StateGraph
builder = StateGraph(AgentState)
builder.add_node("classifier", classifier)
builder.add_node("math_node", math_node)
builder.add_node("qa_node", qa_node)
builder.set_entry_point("classifier")
builder.add_conditional_edges("classifier", classifier, {"math": "math_node", "qa": "qa_node"})
graph = builder.compile()
result = graph.invoke({"input": "2 + 2"})
print(result["result"]) # 輸出:4
這個案例雖然簡單,但它已經(jīng)展現(xiàn)了 LangGraph 的核心價值:通過節(jié)點 + 狀態(tài) + 路徑的組合,實現(xiàn)復(fù)雜語言任務(wù)的有序執(zhí)行。
可實現(xiàn)多個角色(如“分析師”、“總結(jié)者”、“翻譯者”)在流程中協(xié)同工作,通過狀態(tài)圖配置交互順序和條件。
如客戶支持系統(tǒng)中,用戶輸入后由分類器判斷是“技術(shù)支持”、“售后”、“咨詢”,進(jìn)入不同模塊自動應(yīng)答。
使用 LangGraph 管理記憶更新邏輯,比如每個步驟后調(diào)用 memory_node
存儲關(guān)鍵上下文,保持對話狀態(tài)。
編寫、審查、執(zhí)行代碼各為不同節(jié)點,并使用流程圖控制代碼生命周期管理。
框架 | 特點 | 是否支持 LLM | 異步支持 | 狀態(tài)控制 | 分支邏輯 |
LangGraph | 基于 LangChain 狀態(tài)圖 | ? | ? | ? | ? |
Apache Airflow | 定時任務(wù)調(diào)度框架 | ? | ? | ? | ? |
Prefect | Python 工作流控制 | ? | ? | 部分 | ? |
Temporal | 分布式工作流 | ? | ? | ? | ? |
LangGraph 是目前唯一專注于語言模型 Agent 級流程控制的圖形框架,更適合 LLM 的應(yīng)用開發(fā)。
A:目前不可以,LangGraph 是 LangChain 的高級功能擴(kuò)展,需依賴其 Tool、Agent、Prompt 等組件。
A:支持,可通過條件邊或跳轉(zhuǎn)邊將節(jié)點返回到前一節(jié)點,實現(xiàn)循環(huán)。
A:可以,LangGraph 已在多家公司用于構(gòu)建自動對話、AI流程管理、智能客服等系統(tǒng)。
在 LLM 應(yīng)用開發(fā)日趨復(fù)雜的今天,僅靠順序調(diào)用語言模型已無法滿足需求。LangGraph 工具的出現(xiàn),標(biāo)志著 從單步推理到多步驟流程管理 的過渡。
它讓我們可以用圖形化方式管理 Agent 系統(tǒng)中的每一次調(diào)用、判斷、協(xié)作與記憶,是打造高級 AI 系統(tǒng)不可或缺的“流程大腦”。
如果你正在開發(fā)涉及多步驟邏輯的 AI 應(yīng)用,不妨嘗試引入 LangGraph 工具,讓你的語言模型真正具備“流程智慧”。
參考資料: