LangChain
定位
:一個幫助開發者快速構建LLM應用開源框架LangGraph
定位
:LangChain官方推出可視化與圖狀流程框架,適合構建多Agent協作與有狀態LLM應用+----------------+ +----------------+
| LangChain | | LangGraph |
+----------------+ +----------------+
| - Prompt 模板 | | - 節點(Node) |
| - 模型封裝 | | - 邊(Edge) |
| - Chains 流程 | | - 狀態管理 |
| - Agents 工具 | | - 多 Agent 協作 |
| - 記憶功能 | | - 視覺化監控 |
+----------------+ +----------------+
↓ ↓
適合快速開發 LLM 應用 適合複雜、有狀態、多 Agent 的應用
LangGraph 概念圖(中文版)
[開始節點] → [Agent1:資料檢索]
↓
[Agent2:資料分析]
↓
[Agent3:產生最終回覆]
以下用 Python 展示一個最簡單的 LangChain 例子(串接 OpenAI GPT)
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.chains import LLMChain
# 1. 初始化 LLM
llm = ChatOpenAI(model="gpt-4o", temperature=0)
# 2. 定義 Prompt 模板
prompt = ChatPromptTemplate.from_template("請用一句中文解釋 {topic}")
# 3. 建立 Chain
chain = LLMChain(llm=llm, prompt=prompt)
# 4. 執行
result = chain.run({"topic": "LangChain 的用途"})
print(result)
以下示範一個兩個 Agent 協作的 LangGraph 流程(簡化版)
from langgraph.graph import StateGraph, START, END
from langchain_openai import ChatOpenAI
# 節點狀態
class State:
def __init__(self):
self.messages = []
# 節點:第一個 Agent
def node_agent1(state: State):
llm = ChatOpenAI(model="gpt-4o-mini")
reply = llm.invoke("請給我一個 AI 技術的例子")
state.messages.append(f"Agent1: {reply.content}")
return state
# 節點:第二個 Agent
def node_agent2(state: State):
llm = ChatOpenAI(model="gpt-4o-mini")
reply = llm.invoke(f"請用三句話解釋:{state.messages[-1]}")
state.messages.append(f"Agent2: {reply.content}")
return state
# 建立圖形流程
graph = StateGraph(State)
graph.add_node("agent1", node_agent1)
graph.add_node("agent2", node_agent2)
graph.add_edge(START, "agent1")
graph.add_edge("agent1", "agent2")
graph.add_edge("agent2", END)
# 執行流程
final_state = graph.run(State())
print("\n".join(final_state.messages))
特性 | LangChain | LangGraph |
---|---|---|
易用性 |
⭐⭐⭐⭐(簡單上手) | ⭐⭐⭐(需要理解狀態與流程圖) |
多Agent |
基本支援(Agents) | 專門設計 |
狀態管理 |
簡單記憶(Memory) | 強大的有狀態節點管理 |
視覺化 |
無 | 有 |
適合應用 |
Chatbot、知識檢索、API 串接 | 企業級多 Agent 系統、任務分工、自動化 |