LangChain 與 Harrison Chase:把 AI Agent 變成每個人都能用的樂高積木

LangChain 與 Harrison Chase:把 AI Agent 變成每個人都能用的樂高積木

AI 系列-深入介紹 LangChain 創辦人 Harrison Chase 與他打造的 Agent 開發框架生態系,從 Chain、Agent、Memory 到 LangGraph,一次看懂這套改變 AI 應用開發的基礎建設。


2022 年 10 月,一個叫 Harrison Chase 的工程師在 GitHub 上推了一個小專案。

沒有發布公告,沒有 ProductHunt,只是安靜地 push 了一個名叫 LangChain 的 Python 套件。三個月後,它成為 GitHub 上成長最快的開源專案之一,日新增 Star 數一度超越 Kubernetes。

這不是運氣。這是一個對的框架,在對的時間點,出現在對的地方。

LangChain 解決的問題很簡單:讓開發者不需要從零開始,就能把 LLM 接進真實世界。


為什麼你需要認識 Harrison Chase?

在 LangChain 出現之前,要用 OpenAI API 做一個「有記憶、會查資料、能執行工具」的 AI,你需要自己處理:

  • Prompt 的拼接與版本管理
  • 對話歷史的儲存與截斷
  • 工具呼叫的格式定義
  • 多步驟任務的狀態追蹤
  • 錯誤處理與重試邏輯

每個功能都要從頭寫,每換一個 LLM 供應商就得重寫一遍。

Harrison Chase 的洞見是:這些「接管道」的工作,完全可以被標準化。他把這些膠水代碼整理成一套統一介面,讓 GPT、Claude、Llama 都能接進同一套架構——這就是 LangChain 最初的核心價值主張。


Harrison Chase 是誰?

Harrison Chase 在 LangChain 之前,曾在兩家公司工作:

  • Kensho(金融數據分析,後被 S&P Global 以 5.5 億美元收購)
  • Robust Intelligence(ML 模型安全與可靠性平台)

這兩段經歷給了他一個關鍵視角:AI 系統不只要「能跑」,還要可靠、可觀測、能整合進既有的企業流程

這也解釋了為什麼 LangChain 從一開始就非常注重模組化設計——不是為了炫技,而是因為真實世界的 AI 應用,根本不允許系統是黑盒子。

2023 年初,Benchmark 以 2,000 萬美元估值領投 1,000 萬美元種子輪。同年中,LangChain 再完成 2,500 萬美元 A 輪融資。

Chase 的目標從未是做一個「工具」,而是建立一套AI 應用的基礎建設


LangChain 的核心積木

LangChain 的設計哲學就是本文標題的「樂高積木」——每個組件獨立、可替換、可組合。

1. Prompt Template:讓 Prompt 變成可管理的程式碼

from langchain.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一位專業的財務分析師"),
    ("human", "請分析 {company} 的現金流狀況"),
])

# 動態填入變數
chain = prompt | llm
result = chain.invoke({"company": "台積電"})

把 Prompt 從「散落在程式碼各處的字串」,變成「有版本、可測試、可重用的模板」。

2. Chain:把步驟串成流水線

from langchain.schema.runnable import RunnablePassthrough

chain = (
    {"context": retriever, "question": RunnablePassthrough()}
    | prompt
    | llm
    | output_parser
)

LCEL(LangChain Expression Language) 是 v0.2 之後的核心語法,用 | 管道符號串接每個步驟,就像 Unix 的 pipeline 一樣直覺。

3. Memory:讓 AI 記住對話

from langchain.memory import ConversationBufferWindowMemory

memory = ConversationBufferWindowMemory(k=5)  # 只記最近 5 輪

Memory 模組解決了「LLM 本身無狀態」的根本限制。不同的記憶策略對應不同場景:

Memory 類型策略適合場景
BufferMemory記住所有對話短對話
WindowMemory只記最近 N 輪一般聊天機器人
SummaryMemory摘要舊對話長對話節省 Token
VectorStoreMemory語意搜尋相關記憶個人化 AI 助理

4. Tools & Agents:讓 AI 自己決定怎麼做

from langchain.agents import create_react_agent, AgentExecutor
from langchain.tools import DuckDuckGoSearchRun

tools = [DuckDuckGoSearchRun()]
agent = create_react_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

executor.invoke({"input": "台積電今天的股價是多少?"})

注意:LangChain 的 create_react_agent 正是上一篇介紹的 Shunyu Yao 的 ReAct 論文的工程實現。理論與實作在這裡交匯。


LangChain 生態系:從框架到平台

LangChain 不只是一個套件,Chase 把它擴展成了一個完整的生態系。

LangSmith:AI 應用的黑盒變透明盒

這是 LangChain 商業化最重要的產品。

每一次 LLM 呼叫的輸入輸出、延遲時間、Token 消耗、中間推理步驟,全部都能在 LangSmith 的 Dashboard 上看到。

對 AI 應用的工程師來說,這就是「日誌系統 + APM + Debugger」的三合一。沒有它,Agent 出錯了根本不知道哪個步驟壞掉。

LangGraph:從 Chain 到 Graph

這是 2024 年最重要的演化。

傳統的 Chain 是線性的,有向無環。但真實的 Agent 任務需要循環、條件分支、狀態回溯——這正是 Andrew Ng 的 Reflection 模式與 Yao 的 Tree of Thoughts 的需求。

LangGraph 用圖(Graph)取代鏈(Chain),讓 Agent 的工作流程支援循環、條件分支與狀態回溯。

StateGraph⟲ loop back(結果回傳 Agent)STARTinvokeNodeAgentLLM 推理writereadTypedDict / PydanticState共享狀態 · 所有節點讀寫Router條件邊conditionNodeTools搜尋 / API / DBuse toolENDdone / no tool neededCheckpointerSQLite / Redis · 持久化 · 可暫停恢復snapshotHuman-in-the-Loopinterrupt_beforeinterrupt_afterNormal EdgeConditional Edge
元件說明
State所有節點共享的資料物件(TypedDict 或 Pydantic)。每個節點讀取輸入、寫入輸出,狀態在整個圖中流動。
Agent Node呼叫 LLM 進行推理的節點。讀取 State 作為上下文,決定下一步要做什麼(回答或呼叫工具)。
Router(條件邊)根據 State 的內容動態決定流向。是 LangGraph 最核心的特性——讓工作流可以分支、循環、回溯。
Tool Node執行搜尋、API、資料庫等外部操作的節點。結果寫回 State,Agent 在下一輪讀取並繼續推理。
Checkpointer每次狀態轉換都自動存檔(SQLite / Redis)。支援任務暫停、從斷點繼續、多 thread 並行執行。
Human-in-the-Loop在指定節點前後插入人工確認。Agent 暫停等待人類審核,確認後從 Checkpoint 繼續執行。

這讓 LangGraph 成為目前建構複雜 Multi-Agent 系統的首選工具,也是 LangChain 生態系最具護城河的部分。

產品定位開源?
LangChainLLM 應用開發框架
LangGraph多步驟 Agent 工作流引擎
LangSmith可觀測性與評估平台商業(有免費額度)
LangServe一鍵部署 LangChain 應用為 API

經典語錄

"The goal of LangChain is not to be a model provider. It's to be the glue layer between models and the real world."

LangChain 的目標不是成為模型供應商,而是成為模型與真實世界之間的連接層。

"Every company is going to need to figure out how to build AI into their products. LangChain is the toolbox for that."

每家公司都需要弄清楚如何把 AI 整合進產品。LangChain 就是那個工具箱。


實用建議:三個起步行動

步驟 1:從 LCEL 入手,不要從舊版 Chain 入手

LangChain 目前主推 v0.3,核心是 LCEL 語法。舊版的 LLMChainConversationalChain 都已列入 deprecated。直接學 prompt | llm | parser 的管道寫法,避免學到廢棄 API。

步驟 2:用 LangSmith 從第一行程式碼就開啟追蹤

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=你的金鑰

設定好這兩個環境變數,所有的 LangChain 呼叫就會自動被追蹤。這個習慣能幫你省下大量調試時間。

步驟 3:想做 Agent,直接跳 LangGraph

如果你的目標是建立複雜的 Agent(有循環、有條件、有狀態),跳過 legacy 的 AgentExecutor,直接學 LangGraph。它是 LangChain 官方目前的戰略重心。


我的反思

LangChain 剛出現時,很多資深工程師對它持保留態度:「這不就是把 API 包一層嗎?」

但 Harrison Chase 證明了一件事:好的抽象層,本身就是巨大的價值

就像 Rails 之於 Web 開發,jQuery 之於前端——它們的本質都是「把複雜的事情變成一套可學習的規範」。這讓原本只有少數專家能做的事,突然成為任何工程師都能快速上手的工作。

這也讓我重新思考上兩篇文章的脈絡:Andrew Ng 定義了 Agent 的思維框架,Shunyu Yao 設計了推理引擎,而 Harrison Chase 則把這一切工程化、民主化,讓理論真正落地成為產品。

三者的關係就像建築學的三個層次:理論(為什麼這樣蓋)、力學(如何承重)、建材(用什麼蓋)。缺少任何一層,高樓都起不來。


參考資料 (References)

官方資源

延伸閱讀

推薦影片