昨天我們介紹了如何運用 Function Calling,讓模型能夠執行外部功能,進一步擴展聊天機器人的能力。不過,隨著功能持續擴充,程式碼的維護難度也隨之增加。例如:提示字串散落各處、流程控制愈加複雜,以及不同工具間的整合變得更加棘手。
這正是我們要著手解決的挑戰。接下來,我們將進入 LangChain 的主題,帶大家認識這個 LLM 框架的核心定位,瞭解它如何協助我們克服開發上的各種難題,以及我們選擇 LangChain 作為後續開發基礎工具的原因。
如果你只是想開發一個「輸入一句話、模型回一句話」的簡單聊天機器人,直接使用 OpenAI API 就很夠用。但當我們的應用開始變得更複雜,例如需要以下功能情境:
你會很快發現,僅靠 OpenAI API 開發,邏輯管理會變得越來越棘手。每次呼叫模型前,我們必須自行組合提示字串、維護訊息歷史、處理條件分支、控制執行順序。這些工作不僅重複且容易出錯,隨著功能擴充,維護成本也會不斷攀升。
換句話說,OpenAI API 提供的是「模型能力」,但不提供「開發架構」。當我們想打造一個具備邏輯、記憶、互動能力的 AI 應用時,就需要一個能夠組織流程、管理模組的框架。這正是 LangChain 等 LLM 開發框架存在的意義:它幫助開發這把大型語言模型變成一個真正可組裝、可擴充的應用元件,而不只是單一回應器。
要讓大型語言模型從「能回答問題」進化到「能完成任務」,中間必須補上大量工程設計。模型本身只負責生成文字,但真正的應用程式還需要整合資料、處理複雜邏輯、記憶上下文、管理工具,甚至要能組合出完整且流暢的使用流程。
以下是開發 LLM 應用時常見的挑戰與對應工程需求:
工程需求 | 常見問題描述 | 開發者需要的能力 |
---|---|---|
Prompt 管理 | 不同任務、角色的提示詞需要切換與參數化,難以維護。 | 可參數化且易於維護的提示模板機制。 |
對話記憶與上下文 | 模型預設不會記住使用者過去的提問,長對話中容易失去脈絡。 | 自動化記憶管理與上下文擴充能力。 |
多步驟任務流程 | 像「先查資料、再分析、最後回答」這類邏輯需手動拼接 API 呼叫。 | 能組合多個模型呼叫的流程控制機制。 |
工具調用與動態決策 | 根據不同問題自動選擇工具或 API 來執行任務。 | 具備條件判斷與功能調用能力的 Agent 機制。 |
整合外部資料 | 模型需要查詢向量資料庫、SQL、JSON 文件等外部知識來源。 | 支援檔案載入、嵌入、查詢等 RAG 能力。 |
除錯與觀察 | 想追蹤模型怎麼處理每個步驟,但 console.log 不夠用。 |
能觀察輸入、輸出與中介狀態的除錯與監控工具。 |
這些挑戰並不是語言模型本身能解決的,而是屬於「應用開發層」必須處理的問題。這也是我們為什麼會需要一個「LLM 開發框架」的原因。它的目的,不是要取代模型,而是幫助你:
LangChain 正是針對這些需求量身打造的框架。它讓你不必從零開始重寫每一段串接邏輯,而是能用結構化、模組化的方式,快速組裝出強大且可擴充的 LLM 應用。
LangChain 是一套開源的 LLM 開發框架,目的是協助開發者更有效率地建構、組合、擴充大型語言模型的應用邏輯。它不是新的模型,也不是單純封裝 OpenAI API 的 SDK,而是一套模組化工具,讓你能將 LLM 作為應用程式中的一個元件,靈活整合各種功能。
換句話說,LangChain 就像是大型語言模型的應用架構層:OpenAI 提供模型,LangChain 則幫你處理提示設計、記憶管理、工具調用等繁瑣的應用邏輯,讓整體流程更容易組裝、擴充與維護。
LangChain 提供多項核心能力,主要包括:
PromptTemplate
,可將提示詞模板化,將變數(如任務、輸入內容)抽離,提升重用性與維護性。Memory
機制,協助管理對話歷史,無需每次手動拼接訊息陣列,並支援進階記憶類型(如總結式記憶)。Tool
模組可定義外部功能(如查天氣、查資料庫),搭配 Agent 動態決定何時使用哪些工具,賦予模型「自主選擇行動」的能力。這些功能讓 LangChain 不僅僅是模型的包裝工具,更是打造完整 AI 應用系統的開發框架。
在眾多 LLM 框架中,我們選擇 LangChain 作為開發主軸,原因如下:
PromptTemplate
與 ChatModel
起步,隨需求逐步擴充記憶、流程、工具等功能,降低學習與導入門檻。這些優勢讓 LangChain 成為 LLM 應用開發的熱門選擇,能靈活應用於各類場景。
LangChain 不僅是一個 LLM 應用開發框架,更是一個完整的生態系,涵蓋從開發、測試、部署到監控的全方位支援。這個生態系的設計目標,是讓開發者能有效率地開發、維護並擴展 LLM 應用,無論是簡單的聊天機器人,還是複雜的多 Agent 決策系統,都能找到合適的工具模組。
以下這張圖展示了 LangChain 生態系的主要組成:
圖片來源:LangChain.js
這些元件大致可分為三個層級:基礎抽象、應用元件、開發工具,各自發揮不同功能:
@langchain/core
:基礎抽象與流程語言作為生態系的核心,@langchain/core
提供:
這一層是所有 LangChain 應用的基礎,無論串接哪種模型或工具,都會依賴這個共通語言。
@langchain/community
:第三方整合與擴充元件這個套件收錄了大量外部整合元件,包括:
此外,部分熱門整合(如 @langchain/openai
、@langchain/anthropic
)被拆分為獨立套件,僅依賴 @langchain/core
,讓開發者能更輕量、彈性地導入所需功能。
langchain
:應用邏輯組裝層這個套件整合了 Chain、Agent、Retriever 等常見應用邏輯,讓開發者能快速組裝對話流程、多步驟處理、檢索式問答等各類 LLM 應用。作為 LangChain 的應用層,它大幅簡化複雜邏輯的實作,協助開發者快速完成產品邏輯。
LangGraph 是專為 LLM 應用設計的流程控制工具,開發者可透過「節點與邊」的圖形化方式,直觀定義應用邏輯流程。相較於傳統條件控制,這種設計更易於組合、追蹤與擴充,特別適合多 Agent 協作及多輪決策等複雜場景。LangGraph 與 LangChain 可無縫整合,並支援 LCEL 語法定義節點邏輯,讓流程設計更加靈活高效。
LangSmith 是由 LangChain 團隊打造的開發平台,能協助開發者全面追蹤每一次模型呼叫的輸入輸出、工具調用過程、錯誤紀錄與執行時間,同時支援 Prompt 與回應的版本控管與比對、測試資料集建立及自動對比不同版本表現。這些功能讓團隊在部署正式環境或建立可測試流程時,能有效掌握品質與效能,是 LLM 應用開發流程中的重要利器。
今天我們從 LLM 應用開發的實務痛點切入,認識了 LangChain 這套專為大型語言模型打造的開源框架,如何為我們提供建構完整 AI 應用架構的全方位解決方案:
接下來,我們將實際操作,帶你用 LangChain 打造第一個 LLM 應用,親自體驗它的開發模式與運作邏輯!