← 返回首頁
LESSON 032AI 開發13 分鐘

LangChain 是什麼?把模型、Prompt、工具、RAG 與 Agent 接成一條可管理的工作流程

第 32 篇接回 API、RAG 與 Agent,解釋 LangChain 為什麼出現、Model Interface、Tool、Agent Loop 與 Framework 的角色,並逐行拆解一個最小 create_agent() 範例。

今天用這個比喻模型像很聰明的員工,LangChain 像辦公室流程系統,把員工、工具、資料來源與工作步驟接成能重複運作的流程

前面幾篇其實已經把 AI App 的零件湊得差不多了。

Lesson 018:API 講過:API 讓你的程式可以和模型服務交換 Request 與 Response。

Lesson 023:RAG 講過:RAG 先找相關外部資料,再把資料放進 Context 讓模型回答。

Lesson 020:AI Agent 講過:Agent 把模型的判斷、工具與工作流程接起來,讓系統可以不只回答文字,還能採取動作。

當這些東西全部出現在同一個專案,問題會變成:

誰來管理它們之間的連線?

這就是 LangChain 這類 Framework 出現的背景。

Framework 是什麼?

框架(Framework) 可以先理解成一套已經設計好的程式結構與介面,讓你不用每次從最底層重新接線。

想像你要開一間公司。

你可以自己發明:

也可以先採用一套現成辦公流程,再針對自己的需求修改。

LangChain 就比較像後者。

LangChain 不是模型

LangChain 是一套用來建立 LLM / Agent 應用的開發框架。

它不會取代 GPT、Gemini、Grok、Local LLM。

相反地,它通常站在模型的「外面」,幫你處理:

所以如果模型是員工,LangChain 更像辦公室流程與工具管理系統。

為什麼不直接自己寫 Python?

當然可以。

其實很小的專案直接自己寫,往往更簡單。

例如:

question = input("問題:")
answer = call_model(question)
print(answer)

如果你的程式只有一個模型 Request,可能根本不需要大型 Framework。

LangChain 比較有價值的時候,是當系統開始出現:

所以不要把「有用 LangChain」當成專案比較專業的證明。

框架是降低複雜度的工具,不是勳章。

最小 Agent 範例

LangChain 現代 Python API 裡可以使用 create_agent() 建立 Agent。

先看一個概念範例:

from langchain.agents import create_agent


def get_word_count(text: str) -> str:
    """Count characters in text."""
    return str(len(text))


agent = create_agent(
    model="openai:<model-name>",
    tools=[get_word_count],
    system_prompt="你是一位簡潔的助理。",
)

這裡故意把 <model-name> 留成佔位符,因為 Provider 支援的模型名稱會隨時間變動;實際使用時要依當下官方文件換成可用模型。

逐段看。

第一行:載入 create_agent

from langchain.agents import create_agent

這和 Lesson 026:Python 的 from ... import ... 一樣:從 LangChain 套件載入建立 Agent 的功能。

這個函式就是 Tool

def get_word_count(text: str) -> str:
    """Count characters in text."""
    return str(len(text))

它是一個普通 Python Function。

作用是:

  1. 接收 text。
  2. 用 len(text) 計算字元數。
  3. 把數字轉成字串回傳。

在 Agent 系統裡,這個 Function 可以被註冊成 Tool。

重要的是:

模型本身沒有真的執行 Python。Framework / Runtime 會根據 Tool Call 去執行你的函式,再把結果交回模型。

create_agent() 在組什麼?

agent = create_agent(
    model="openai:<model-name>",
    tools=[get_word_count],
    system_prompt="你是一位簡潔的助理。",
)

這裡提供三個主要東西:

model

指定 Agent 使用哪個模型。

tools

tools=[get_word_count]

告訴 Agent:你有這個工具可以使用。

system_prompt

提供高層行為指示。

Lesson 005:Prompt 已經講過 Prompt 是把任務與限制說清楚;System Prompt 則通常是應用程式在更高優先層提供給模型的行為指示之一。

Agent 怎麼真的跑?

概念上可能會看到:

result = agent.invoke({
    "messages": [
        {"role": "user", "content": "請算 SATIN SYNTAX 有幾個字元"}
    ]
})

invoke() 的作用是把一次輸入交給 Agent Runtime 執行。

這次流程可能是:

User Message
↓
Model 判斷需要計算字元
↓
產生 Tool Call
↓
LangChain 執行 get_word_count()
↓
Tool Result 回到 Model
↓
Model 組成最後回答

這就是 Agent Loop 的直覺。

Tool Description 為什麼重要?

模型需要知道:

如果 Tool Description 模糊,模型可能選錯工具或傳錯參數。

所以 Tool Calling 並不是「丟一個 Python Function 給模型,它就自然懂」。

Framework 會把 Function Signature、Description、Schema 等資訊整理成模型能使用的工具描述。

LangChain 和 RAG 怎麼接?

Lesson 023:RAG 的流程是:檢索 → 把相關內容放進 Context → 生成回答。

LangChain 可以把 Retriever、Vector Store、Prompt、Model 等元件組成流程。

但不要誤會成:

「RAG = LangChain。」

RAG 是架構概念;LangChain 只是實作它的一種工具選擇。

你完全可以不用 LangChain 自己寫 RAG。

LangChain 和 LangGraph 是什麼關係?

目前 LangChain 的 Agent 實作底層會使用圖式 Runtime 來管理步驟與狀態,而 LangGraph 是其生態中處理較低階、長流程與 Stateful Agent Workflow 的重要元件。

現在先不用把所有 API 背起來。

只要知道:

當 Agent 從單純的一次 Tool Call 變成多步驟、有狀態、會循環的工作流程時,「流程圖」式的執行模型會變得很有用。

Framework 會讓 Agent 比較安全嗎?

不會自動安全。

LangChain 可以提供 Middleware、Tool 管理與結構化介面,但安全仍取決於你怎麼設計:

後面 Lesson 035 會專門談 Prompt Injection。

如果我用 Ollama 還能用 LangChain 嗎?

可以。

Lesson 030:Ollama 已經講過:Local LLM 也可以透過本機 API 提供服務。

LangChain 支援多種 Model Provider / Integration;真正能否使用某個模型與哪些功能,要看對應 Integration 是否支援該 Provider 的 Tool Calling、Structured Output 等能力。

因此:

LangChain ≠ 雲端專用

它是一層應用 Framework。

什麼時候不該用 LangChain?

如果你的 App 只有:

User → Model → Answer

直接用 Provider SDK 可能更清楚。

如果你只是想學 API,也建議先自己寫幾次 Request,不然 Framework 會把很多關鍵概念藏起來。

等你理解 API、Tool、RAG、Agent 之後,再使用 LangChain,會更知道它到底替你省了什麼。

一句話帶走

LangChain 不是模型,而是把模型、Tool、Prompt、RAG 與 Agent Workflow 組裝成可管理程式的 Framework;真正重要的不是會背 LangChain API,而是知道每個元件原本負責什麼。

正式資料來源

比喻是理解入口;正式定義與細節請以原始資料為準。

  1. LangChain — Overview ↗
  2. LangChain — Agents ↗
← 上一章031Attention Is All You Need 到底改變了什麼?從 Self-Attention 到 Transformer,看懂現代 LLM 的核心骨架
下一章 →033Cursor、Codex 這類 Coding Agent 在做什麼?從讀 Repo、改檔、跑測試到 Review Diff
COMMUNITY

留言

有想法、疑問或想補充的地方,都可以留在這裡。

0 / 1200