---
# System prepended metadata

title: 友達課程：LLM-LangChain(4) - LangGraph Hands-On - 課後測驗問答集

---

# 友達課程：LLM-LangChain(4) - LangGraph Hands-On - 課後測驗問答集

1. 推出 LangGraph 主要是為了解決早期 LangChain 在哪個方面的不足？
    
    * A：缺乏足夠的模型整合
    * B：無法處理 RAG 流程
    * C：對流程的「可控性」（Controllability）不足
    * D：執行速度過慢

> 答案：C
> 解說：早期的 LangChain 高階介面雖然容易使用，但隱藏了太多細節（如隱藏的提示詞（prompt）），使得開發者在進入正式環境時，難以克制化和控制 Agent 的行為。LangGraph 的誕生就是為了提供這種低階的「可控性」。

2. LangGraph 的「執行環境（Runtime）」設計旨在提供哪些正式環境所需的關鍵功能？

    * A：自動模型微調與部署
    * B：更快的模型推論（Inference）
    * C：持久化執行（Durable execution）、串流（Streaming）和人本迴圈（Human-in-the-Loop）
    * D：內建的向量資料庫

> 答案：C
> 解說：這是描述 LangGraph runtime 的三大特性，都是針對正式環境設計的：持久化執行（Durable execution） - 允許長時間執行的任務在出錯時從檢查點恢復、串流（Streaming） - 原生支援將每一步的執行過程即時回傳給使用者、人本迴圈（Human-in-the-Loop） - 框架本身就支援在流程中加入人為審核的步驟。

3. LangChain 1.0 在架構上最關鍵的變革是什麼？

    * A：宣布 LangGraph 為獨立專案，與 LangChain 脫鉤
    * B：棄用 Python，全面轉向 Typescript
    * C：它被重寫並建立在 LangGraph 之上（built on top of LangGraph）
    * D：簡化了所有高階介面，移除了 Agent 功能

> 答案：C
> 解說：LangChain 1.0 的關鍵部分就是「重寫並建立在 LangGraph 智商」。這意味著 LangChain 1.0 的高階介面（如 `create_agent`）現在底層是由 LangGraph 強大的執行環境驅動的，從而同時獲得了易用性和正式上線級的穩定性。

4. LangGraph 在設計工作流（workflow）時的一個關鍵優勢是它允許混合哪兩種不同類型的組件？

    * A：Python 和 Typescript 節點
    * B：CPU 和 GPU 運算
    * C：確定性的步驟（Deterministic components）和代理性的步驟（Agentic components）
    * D：線上 API 和離線資料庫

> 答案：C
> 解說：LangGraph 的強大之處在於，你可以設計一個混合型工作流。例如，流程的第一步可以是一個「確定性的」Python 函數（Deterministic，如資料預處理），下一步再交給一個「代理性的」Agent（Agentic，由 LLM 驅動決策），這種靈活性是 `create_agent` 標準循環難以實現的。

5. LangGraph 的架構設計，使其在處理複雜工作流時，與傳統的 LangChain 相比有何根本不同？

    * A：LangGraph 只能處理線性序列
    * B：LangGraph 依賴 Middleware 來實現所有控制
    * C：LangGraph 允許構建「有環」的圖（Cyclical Graphs），而 LangChain 主要用於「有向無環圖」（DAGs）
    * D：LangGraph 無法調用 LangChain 的工具

> 答案：C
> 解說：LangGraph 是為「極度客製化」的工作流和「Agent 循環」而設計的。Agent 循環（思考 -> 行動 -> 觀察 -> 再思考）本質上就是一個「環」（Loop）。LangGraph 的圖結構（節點和邊）允許流程根據條件返回到先前的步驟或在步驟間任意跳轉，這是 LangGraph 的核心能力，使其能處理複雜的狀態機和循環，而 LangChain 主要用於線性的、一步到底的流程。


6. 在 LangGraph 中，一個「節點（Node）」通常代表什麼？

    * A：一個用戶輸入
    * B：一個資料庫連接
    * C：一個工作單元，例如一個 Python 函數或一個 LangChain 鏈
    * D：一個條件判斷（If/Else）

> 答案：C
> 解說：根據創辦人的描述，是希望視為「具備混合確定性組件（deterministric components）和代理性組建（agentic components）」的工作單元，此工作單元稱之為「節點」。

7. LangGraph 如何實現「人本迴圈（Human-in-the-Loop）」功能？

    * A：透過 `create_agent` 的 Middleware 自動實現
    * B：只能透過外部 API 不斷輪詢來中斷流程
    * C：框架原生支援流程的暫停（pausing）和更新（updating）等待人為輸入後再繼續
    * D：LangGraph 並不支援人為介入

> 答案：C
> 解說：LangChain 團隊意識到人本迴圈在應用原型（prototype）中可以很簡單的實現，例如：直接性的採用 Python 的 `input()` 函式，但實際上在上線環境中難以良好呈現。因此，LangGraph 在架構設計時就考慮了這一點，其執行環境原生支援流程的「暫停」，這允許流程在某個節點後停止，等待人為介入（例如透過一個 Web UI 等等），然後再從該點繼續執行，這是其持久化狀態管理的一部分。


8. LangGraph 的「原生串流（Native Streaming）」功能有何重要意義？

    * A：它只能串流最終的答案
    * B：它會降低 Agent 的執行速度
    * C：它是一個「一等公民」特性，允許即時查看 Agent 的每一步思考和中間結果
    * D：它只適用於 Typescript 版本

> 答案：C
> 解說：串流現在是 LangGraph 執行環境的「原生一等公民」（native first class citizen）。這與早期 LangChain 必須「改造」（retrofit）才能支援串流不同，這意味著開發者不單只能看到 LLM 最終的回應結果，還可以即時觀察到 Agent 每一步狀態的變化、工具調用和中間結果，這對於 UI/UX、監控、偵錯至關重要。


9. LangGraph 的核心設計原則之一是什麼？

    * A：抽象化所有提示和架構，提供一鍵式解決方案
    * B：專注於抽象化底層硬體
    * C：不抽象化提示（prompts）或架構（architecture）
    * D：專注於抽象化資料庫連接

> 答案：C
> 解說：在官方技術文件中的 LangGraph Overview 「Core benefits」一節開頭提到：「LangGraph does not abstract prompts or architecture...」，這意味著開發者需要自行定義這些，從而獲得低階控制權。

10. LangGraph（v1.0） 的靈感來自哪兩個專案？

    * A：TensorFlow 和 PyTorch
    * B：React 和 Vue
    * C：Pregel 和 Apache Beam
    * D：LangChain 和 LangSmith

> 答案：C
> 解說：Pregel 是一個大規模圖形處理模型，其核心是「想頂點一樣思考」（think like a vertex），讓每個節點在同步的「超步驟」（superstep）中獨立計算並傳遞訊息；LangGraph 導入了這種「以節點為中心」的計算模式，將 Agent 工作流程中的每個函數或工具調用視為一個節點，並在節點間傳遞和更新一個共享的「狀態」（State）。而 Apache Beam 是一個同意的資料處理模型，其核心是將資料管線（pipeline）的「定義」與實際執行的「執行器」（runner）徹底分離；LangGraph 導入了這種「定義與執行分離」的概念，讓你先以抽象的方式定義一個工作流程圖（Graph），然後再將其「編譯」（compile）成一個可實際執行的 runtime。




