
LangGraph là gì?
LangGraph là framework của LangChain cho phép xây dựng AI Agent có trạng thái (stateful) dựa trên đồ thị (graph). Khác với Chain đơn giản thực thi tuần tự, LangGraph cho phép bạn định nghĩa các node, edge và state machine — từ đó tạo ra Agent có khả năng tự quyết định luồng xử lý, lặp lại và cập nhật bộ nhớ dài hạn.
LangGraph được thiết kế cho các tác vụ phức tạp mà simple chain không thể xử lý — ví dụ: Agent cần lặp lại “thought → action → observation” nhiều vòng trước khi đưa ra kết luận, hoặc Agent cần điều hướng giữa nhiều chuyên gia khác nhau dựa trên ngữ cảnh đầu vào.
Tại sao cần graph-based workflow?
Hạn chế của Chain tuần tự
Chain đơn giản thực thi các bước theo thứ tự cố định: input → step1 → step2 → step3 → output. Nếu bước 2 cần dựa trên kết quả của bước 1, và bước 3 cần dựa trên kết quả của bước 2 — thì chain hoạt động tốt. Nhưng thực tế, Agent thường cần:
- Lặp lại bước cho đến khi đạt điều kiện dừng
- Chuyển hướng sang nhánh xử lý khác dựa trên kết quả
- Cập nhật trạng thái chung (state) mà tất cả các bước có thể đọc/ghi
- Ghép nhiều nhánh xử lý song song rồi merge kết quả
Chain không hỗ trợ các mẫu này. LangGraph ra đời để giải quyết vấn đề đó bằng cách biểu diễn workflow thành đồ thị có hướng, nơi mỗi node là một hàm xử lý, mỗi edge là luồng điều khiển.

Cấu trúc cốt lõi của LangGraph
State
State là đối tượng lưu trữ toàn bộ ngữ cảnh của Agent — input, kết quả trung gian, bộ nhớ chat, metadata. Tất cả các node trong graph đều đọc và ghi cùng một state object. Điều này đảm bảo tính nhất quán và cho phép các node phối hợp dựa trên dữ liệu chung.
State thường được định nghĩa bằng Pydantic BaseModel hoặc TypedDict, giúp type-safe và dễ validate. Bạn có thể thêm field bất kỳ vào state — ví dụ: messages lưu lịch sử chat, research_notes lưu ghi chú nghiên cứu, next_step lưu quyết định điều hướng.
Node
Node là hàm nhận state làm input, xử lý và trả về state mới. Node có thể:
- Gọi LLM để suy luận
- Truy cập tool (search, database, API)
- Điều kiện rẽ nhánh dựa trên state
- Lưu kết quả vào state
Ví dụ node đơn giản:
def agent_node(state: AgentState) -> AgentState:
response = llm.invoke(state.messages)
state.messages.append(AIMessage(content=response.content))
return state
Edge
Edge xác định luồng điều khiển giữa các node. Có hai loại edge chính:
- Normal edge: Chuyển từ node A sang node B cố định.
- Conditional edge: Chuyển sang node khác nhau dựa trên điều kiện từ state — ví dụ: nếu Agent quyết định “cần search thông tin” thì đi đến search node, nếu “đã đủ thông tin” thì đi đến final node.
Mẫu ReAct với LangGraph
Mẫu phổ biến nhất là ReAct (Reason + Act) — Agent lặp lại chu kỳ suy luận và hành động cho đến khi tìm được câu trả lời. LangGraph biểu diễn mẫu này thành đồ thị vòng:
from langgraph.graph import StateGraph, END
builder = StateGraph(AgentState)
builder.add_node("agent", agent_node)
builder.add_node("tools", tool_node)
builder.add_conditional_edges("agent", should_continue, {"continue": "tools", "end": END})
builder.add_edge("tools", "agent")
builder.set_entry_point("agent")
graph = builder.compile()
Khi Agent quyết định cần tool, nó gửi yêu cầu đến tools node, thực thi tool, sau đó quay lại agent node để xử lý kết quả. Vòng lặp này tiếp tục cho đến khi Agent kết luận đã đủ thông tin.

So sánh LangGraph với các framework khác
| Framework | Điểm mạnh | Điểm yếu | Phù hợp |
|---|---|---|---|
| LangGraph | Stateful, cyclic, persistent | Hơi phức tạp | Agent phức tạp, multi-step |
| LangChain Agent | Đơn giản, nhiều tool sẵn | Không cyclic, state yếu | Task đơn giản, single-shot |
| CrewAI | Multi-agent, role-based | Ít kiểm soát luồng | Collaborative tasks |
| AutoGen | Multi-agent conversation | Khó debug luồng | Dialogue simulation |
Khi nào dùng LangGraph?
LangGraph phù hợp cho các tác vụ cần workflow phức tạp:
- Research Agent: Tìm kiếm, đọc, tổng hợp thông tin từ nhiều nguồn
- Customer Support: Phân tích yêu cầu, tra cứu knowledge base, trả lời có ngữ cảnh
- Code Review: Phân tích PR, chạy test, đề xuất fix, lặp lại đến khi pass
- Data Pipeline: Extract, transform, validate từ nhiều nguồn với logic phức tạp
Hạn chế của LangGraph
LangGraph không phải lựa chọn cho mọi tác vụ. Nếu bạn chỉ cần chain đơn giản (prompt → LLM → output), LangChain Agent hay LlamaIndex QueryEngine gọn nhẹ hơn nhiều. LangGraph có overhead nhất định do phải quản lý graph state và execution history. Tuy nhiên, đối với các tác vụ cần cyclic reasoning, tool use lặp lại và persistent memory — không có framework nào hiện tại tiếp cận gần bằng LangGraph về tính linh hoạt.
Kết luận
LangGraph đại diện cho bước tiến mới trong việc xây dựng AI Agent — từ chain đơn giản sang graph có trạng thái, có khả năng tự điều hướng và lặp lại. Đối với các tác vụ nghiên cứu, phân tích hay automation phức tạp, LangGraph cung cấp nền tảng vững chắc với khả năng kiểm soát luồng xử lý cao hơn bất kỳ framework Agent nào hiện tại.
Nếu bạn đang xây dựng hệ thống AI cần suy luận nhiều bước, tích hợp tool phức tạp hoặc cần Agent có bộ nhớ dài hạn — LangGraph xứng đáng là lựa chọn hàng đầu vào năm 2026.
