LangGraph là gì? Hướng dẫn xây dựng tác nhân AI ghi nhớ trạng thái

LangGraph là gì? Tìm hiểu cách framework này xây dựng các tác nhân AI tuần hoàn, có trạng thái bằng đồ thị, trạng thái, tính bền bỉ và sự tham gia của con người trong vòng lặp, cũng như cách nó liên quan đến LangChain.

Ashley Innocent

Ashley Innocent

25 tháng 6 2026

LangGraph là gì? Hướng dẫn xây dựng tác nhân AI ghi nhớ trạng thái

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Hầu hết mã agent bắt đầu đơn giản và sau đó sụp đổ vì chính những lần thử lại của nó. Bạn kết nối một LLM, cấp cho nó một số công cụ, và khoảnh khắc quy trình làm việc cần lặp lại, phân nhánh hoặc tạm dừng để con người can thiệp, script chạy thẳng bị phá vỡ. LangGraph là framework được xây dựng dành riêng cho sự phức tạp đó: nó mô hình hóa một agent dưới dạng đồ thị với trạng thái được chia sẻ, do đó các vòng lặp và nhánh trở thành cấu trúc hạng nhất thay vì các câu lệnh if rối rắm. Hướng dẫn này giải thích LangGraph là gì, vấn đề nó giải quyết và API testing phù hợp ở đâu khi agent của bạn gọi các dịch vụ thực.

tải ứng dụng

LangGraph là gì

LangGraph là một framework điều phối cấp thấp và môi trường chạy để xây dựng các agent có trạng thái, chạy lâu dài. Nó được xây dựng bởi LangChain Inc, nhóm đứng sau LangChain, nhưng là một thư viện riêng biệt với trọng tâm riêng. Bạn cài đặt nó độc lập bằng lệnh pip install -U langgraph, và có thể sử dụng nó mà không cần phần còn lại của hệ sinh thái LangChain.

Ý tưởng cốt lõi rất nhỏ. Bạn mô tả agent của mình dưới dạng đồ thị. Các Node thực hiện công việc (gọi một mô hình, chạy một công cụ, biến đổi dữ liệu). Các Edge quyết định điều gì sẽ chạy tiếp theo. Một đối tượng trạng thái chung chảy qua mọi node, và mỗi node có thể đọc và ghi lại vào đó. Vì các cạnh có thể chỉ ngược lại, đồ thị có thể tạo thành chu trình. Đó là phần mà một chuỗi tuần tự thông thường không thể làm tốt.

Nếu bạn đã sử dụng trừu tượng Chain cũ hơn của LangChain, sự khác biệt là hình dạng của luồng điều khiển. Một chain là một chuỗi: bước một, bước hai, bước ba, hoàn thành. Một đồ thị cho phép một node kiểm tra trạng thái hiện tại, sau đó nhảy sang một nhánh khác, quay lại để thử lại, hoặc phân nhánh ra nhiều node chạy song song và hợp nhất kết quả của chúng. Các agent thực tế cần điều đó, vì “suy luận, hành động, quan sát, suy luận lại” là một vòng lặp, không phải một đường thẳng.

Vấn đề LangGraph giải quyết

Các quy trình làm việc của Agent về bản chất là có tính chu kỳ. Một agent gọi một công cụ, xem xét kết quả, quyết định xem đã hoàn thành hay chưa, và nếu chưa, thử lại. Mô hình hóa điều đó bằng các điều kiện lồng nhau sẽ nhanh chóng trở nên khó đọc, và còn tệ hơn khi bạn thêm những thứ mà các agent trong sản xuất thực sự cần:

LangGraph biến mỗi điều này thành một khả năng tích hợp sẵn thay vì thứ bạn phải tự tay triển khai. Bạn có một máy trạng thái với khả năng thực thi bền bỉ, do đó một agent có thể chạy trong vài phút hoặc vài giờ và tiếp tục từ nơi nó đã dừng.

Các khái niệm cốt lõi: đồ thị, trạng thái, node, edge

Bốn yếu tố cơ bản mang phần lớn chức năng của framework. Đây là cách chúng kết hợp với nhau.

State (Trạng thái) là một đối tượng có kiểu dữ liệu được chia sẻ trong toàn bộ quá trình chạy. Bạn định nghĩa hình dạng của nó bằng một schema, thường là TypedDict, và LangGraph hợp nhất các cập nhật của mỗi node vào đó. Một điểm khởi đầu phổ biến là MessagesState, một schema được xây dựng sẵn để chứa danh sách các tin nhắn trò chuyện đang chạy.

Nodes (Các Node) là các hàm. Mỗi node nhận trạng thái hiện tại và trả về một bản cập nhật một phần. Bạn đăng ký chúng bằng add_node().

Edges (Các Edge) kết nối các node. Một edge thông thường với add_edge() luôn đi từ A đến B. Một edge có điều kiện với add_conditional_edges() chạy một hàm định tuyến đọc trạng thái và trả về tên của node tiếp theo, đây là cách bạn thể hiện “nếu mô hình yêu cầu một công cụ, hãy chạy nó; nếu không thì kết thúc.”

STARTEND là các dấu hiệu đặc biệt cho biết nơi thực thi bắt đầu và dừng.

Đây là hình dạng của một đồ thị tối thiểu. Nó ở cấp độ mã giả, nhưng tên API là thật.

from langgraph.graph import StateGraph, START, END, MessagesState

def call_model(state: MessagesState):
    response = model.invoke(state["messages"])
    return {"messages": [response]}

def should_continue(state: MessagesState) -> str:
    last = state["messages"][-1]
    return "tools" if last.tool_calls else END

builder = StateGraph(MessagesState)
builder.add_node("model", call_model)
builder.add_node("tools", tool_node)
builder.add_edge(START, "model")
builder.add_conditional_edges("model", should_continue)
builder.add_edge("tools", "model")   # loop back

graph = builder.compile()

Dòng add_edge("tools", "model") là chu trình. Sau khi các công cụ chạy, quyền điều khiển quay lại mô hình, sau đó có thể gọi thêm công cụ hoặc dừng lại. Vòng lặp đó là toàn bộ lý do LangGraph tồn tại.

Khả năng duy trì và con người tham gia vào vòng lặp

Biên dịch một đồ thị với một checkpointer và nó sẽ lưu một ảnh chụp nhanh trạng thái sau mỗi bước. Truyền một thread_id trong cấu hình, và LangGraph khôi phục điểm kiểm tra gần nhất cho luồng đó trong lần gọi tiếp theo. Các node của bạn không thay đổi; môi trường chạy xử lý việc lưu và khôi phục.

from langgraph.checkpoint.memory import InMemorySaver

graph = builder.compile(checkpointer=InMemorySaver())
config = {"configurable": {"thread_id": "user-42"}}
graph.invoke({"messages": [user_message]}, config)

InMemorySaver phù hợp cho việc phát triển. Đối với thứ gì đó tồn tại qua các lần khởi động lại, LangGraph cung cấp các bộ lưu trữ được hỗ trợ bởi cơ sở dữ liệu (SQLite cho một máy chủ, Postgres cho quy mô đa phiên bản). Vì trạng thái bền vững, bạn cũng nhận được tính năng con người tham gia vào vòng lặp gần như miễn phí. Bạn có thể gián đoạn đồ thị tại một điểm đã chọn, hiển thị trạng thái hiện tại để người dùng kiểm tra hoặc chỉnh sửa, sau đó tiếp tục từ điểm kiểm tra chính xác đó. Các cổng phê duyệt, các chỉnh sửa thủ công và các bước “bạn có chắc không?” đều được xây dựng dựa trên điều này.

Phát trực tuyến hoàn thiện nó. LangGraph có thể truyền trực tuyến các token của mô hình và cập nhật cấp độ node khi quá trình chạy diễn ra, do đó giao diện người dùng có thể hiển thị agent đang suy nghĩ thay vì nhìn chằm chằm vào biểu tượng chờ.

LangGraph liên quan đến LangChain như thế nào

Điều này gây bối rối cho mọi người, vì vậy hãy nói thẳng. LangChain là bộ công cụ rộng hơn: các trình bao bọc mô hình, mẫu lời nhắc, trình truy xuất, trình tải tài liệu và tích hợp với hàng trăm nhà cung cấp. LangGraph là lớp điều phối bên dưới các phần agent của bộ công cụ đó.

Bạn không cần LangChain để sử dụng LangGraph. Bạn có thể định nghĩa trạng thái, node và cạnh của mình, và gọi bất kỳ client mô hình nào bạn muốn bên trong một node. Nhiều nhóm kết hợp cả hai, vì các trừu tượng mô hình và công cụ của LangChain tiện lợi, và trình trợ giúp create_react_agent được xây dựng sẵn của LangGraph (trong langgraph.prebuilt) cung cấp cho bạn một agent gọi công cụ hoạt động chỉ trong vài dòng mã khi bạn không cần một đồ thị tùy chỉnh.

LangChain LangGraph
Vai trò Các thành phần và tích hợp Điều phối và môi trường chạy
Luồng điều khiển Chuỗi tuyến tính Đồ thị có chu trình và nhánh
Trạng thái tích hợp Hạn chế Được chia sẻ, có kiểu dữ liệu, bền vững
Khả năng duy trì / tiếp tục Không phải trọng tâm Checkpointer + thread ID
Tốt nhất cho Ghép nối các cuộc gọi mô hình và công cụ Các agent có trạng thái, nhiều bước

Một lưu ý cho người dùng hiện tại: dòng LangGraph v1.0 (ổn định từ cuối năm 2025) đã chuyển trình trợ giúp agent được xây dựng sẵn sang langchain.agents.create_agent, vì vậy hãy kiểm tra phiên bản đã cài đặt và tài liệu tham khảo chính thức để biết đường dẫn import chính xác trước khi bạn sao chép các đoạn mã cũ hơn. Xây dựng các agent tùy chỉnh từ đầu cũng là một kỹ năng hữu ích tại đây; hãy xem hướng dẫn chi tiết của chúng tôi về xây dựng một AI agent tùy chỉnh để có cái nhìn tổng quan hơn.

LangGraph Platform và Studio

Thư viện mã nguồn mở là cốt lõi, nhưng hai sản phẩm liền kề quan trọng một khi bạn triển khai.

LangGraph Studio là một IDE agent trực quan. Nó hiển thị đồ thị của bạn, cho phép bạn chạy nó và hiển thị trạng thái tại mỗi node để bạn có thể xem quá trình thực thi từng bước qua các node và cạnh của mình. Đối với bất kỳ thứ gì có chu trình và định tuyến có điều kiện, việc nhìn thấy đường đi thực tế mà agent đã thực hiện tốt hơn nhiều so với việc đọc các dòng nhật ký.

LangGraph Platform là phía triển khai được quản lý: các API endpoint cho các agent của bạn, khả năng duy trì tích hợp cho các lần chạy lâu dài và các tùy chọn lưu trữ từ tự lưu trữ đến được quản lý hoàn toàn trên đám mây. Bạn không cần nó để sử dụng thư viện; nó có sẵn khi bạn muốn cơ sở hạ tầng cho các agent trong sản xuất thay vì tự chạy chúng.

Khi nào nên sử dụng LangGraph

Hãy tìm đến LangGraph khi agent của bạn có luồng điều khiển thực sự. Các dấu hiệu tốt:

Hãy bỏ qua nó khi một cuộc gọi mô hình đơn lẻ hoặc một chuỗi tuyến tính ngắn hoàn thành công việc. Đồ thị là một chi phí bổ sung bạn không cần cho “tóm tắt văn bản này”. Hãy giữ cấu trúc cho các quy trình làm việc thực sự phân nhánh và lặp lại.

API testing và mocking phù hợp ở đâu

Đây là phần gây khó khăn cho các nhóm trong quá trình phát triển. Một LangGraph agent chỉ đáng tin cậy như các API mà nó gọi, và nó gọi rất nhiều API: endpoint của LLM, cộng với mọi API công cụ (tìm kiếm, CRM, backend của riêng bạn). LangGraph điều phối các cuộc gọi đó; nó không kiểm tra chúng. Đó là một công việc riêng biệt, và đó là nơi Apidog phát huy tác dụng.

Hai vấn đề nhanh chóng xuất hiện. Đầu tiên, việc gọi các API trực tiếp trong mỗi lần chạy thử nghiệm sẽ tốn token và vượt giới hạn tốc độ. Bạn có thể giả lập API mà một agent phụ thuộc vào để một endpoint công cụ trả về một phản hồi tức thì, có tính xác định trong khi bạn lặp lại trên logic đồ thị. Giả lập endpoint của LLM theo cách tương tự và bạn sẽ ngừng phải trả tiền cho các token chỉ để kiểm tra định tuyến.

Thứ hai, các node của bạn giả định một hình dạng phản hồi. Nếu API của một công cụ lặng lẽ thay đổi tên trường, cạnh có điều kiện của bạn sẽ đọc sai thông tin và agent sẽ lặp lại hoặc bị kẹt. Xác định rõ các giao ước đó bằng các xác nhận API giúp phát hiện sự thay đổi trước khi nó ảnh hưởng đến đồ thị của bạn. Và vì các agent quản lý các khóa giữa môi trường staging và prod, việc quản lý chúng trong các môi trường giữ bí mật không bị lộ trong mã node của bạn. Nếu bạn muốn quy trình làm việc tập trung vào agent đầy đủ, bộ công cụ kiểm thử Apidog cho AI agent sẽ hướng dẫn bạn từ đầu đến cuối. Nói rõ hơn, không có điều nào trong số này điều phối agent; Apidog kiểm tra và giả lập các API bên dưới nó.

Các câu hỏi thường gặp

LangGraph có phải là sự thay thế cho LangChain không? Không. LangGraph là môi trường chạy điều phối; LangChain là tập hợp rộng hơn các thành phần và tích hợp. Chúng là các thư viện riêng biệt từ cùng một nhóm, và bạn có thể chạy LangGraph mà không cần LangChain hoặc sử dụng chúng cùng nhau. LangGraph xử lý luồng điều khiển có trạng thái, có tính chu kỳ mà các chuỗi tuần tự gặp khó khăn.

Tôi có cần biết LangChain để bắt đầu với LangGraph không? Không. Bạn có thể định nghĩa một StateGraph, thêm các node và cạnh, và gọi bất kỳ client mô hình nào bên trong một node. Các trình bao bọc mô hình của LangChain tiện lợi, nhưng chúng là tùy chọn. Bắt đầu với các nguyên thủy đồ thị cốt lõi và chỉ thêm phần còn lại khi bạn cần.

Làm cách nào LangGraph ghi nhớ các thứ giữa các lần gọi? Thông qua các checkpointer. Biên dịch đồ thị của bạn với một checkpointer và truyền một thread_id, và LangGraph sẽ lưu một ảnh chụp nhanh trạng thái sau mỗi bước, sau đó khôi phục nó trong lần gọi tiếp theo cho luồng đó. Đó là cách bạn có được bộ nhớ cuộc trò chuyện và khả năng phục hồi sau sự cố mà không thay đổi logic node của bạn.

Làm cách nào để kiểm tra các API mà agent của tôi gọi? Kiểm tra và giả lập chúng một cách riêng biệt khỏi đồ thị. Giả lập các endpoint của LLM và công cụ để các lần chạy nhanh chóng và miễn phí trong quá trình phát triển, và xác nhận hình dạng phản hồi để một trường bị thay đổi không làm hỏng một node. Hướng dẫn của chúng tôi về kiểm tra ChatGPT API bao gồm xác thực, phát trực tuyến và gọi công cụ, đây là những bề mặt chính mà một agent phụ thuộc vào.

Tóm tắt

LangGraph cung cấp cho bạn cấu trúc còn thiếu cho các agent có khả năng lặp lại, phân nhánh, duy trì trạng thái và tạm dừng để con người can thiệp. Mô hình hóa quy trình làm việc dưới dạng đồ thị với trạng thái được chia sẻ, dựa vào các checkpointer để ghi nhớ và phục hồi, và sử dụng Studio và Platform khi bạn đã sẵn sàng gỡ lỗi và triển khai. Framework xử lý việc điều phối. Các API mà agent của bạn gọi vẫn cần mạng lưới an toàn riêng của chúng, vì vậy hãy giả lập và kiểm tra chúng trong Apidog để giữ chi phí phát triển thấp và đảm bảo tính đúng đắn của các giao ước công cụ của bạn. Tải xuống Apidog để giả lập một endpoint và xác nhận các phản hồi của nó trước khi agent của bạn thực sự gọi đến nó.

tải ứng dụng

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API