1. Giới thiệu về LangGraph Essentials

Nam

Nam Hoang / Sep 01, 2025

6 min read

Trong bài học này, bạn sẽ tìm hiểu các động lực cốt lõi đằng sau framework LangGraph, ba thách thức chính khi đưa các ứng dụng LLM vào môi trường production, và cách thiết lập môi trường phát triển cục bộ để chạy Node đầu tiên của bạn.

I. Giới thiệu về LangGraph

LangGraph là một framework cung cấp một durable runtime (môi trường thực thi bền bỉ) cho các AI Agent và ứng dụng. Trong khi việc xây dựng một bản chat prototype đơn giản với LLM khá dễ dàng, thì việc đưa ứng dụng đó vào môi trường production đòi hỏi sự tùy biến và khả năng mở rộng rất lớn. LangGraph được thiết kế đặc biệt để xử lý các logic phức tạp, có trạng thái (stateful logic) cần thiết cho các AI Agent chuyên nghiệp.

II. Các thách thức của ứng dụng LLM trong Production

Việc chuyển đổi từ một bản "demo" sang một agent chạy "production" thực tế đòi hỏi phải giải quyết ba rào cản kỹ thuật cụ thể:

  1. Latency (Độ trễ): Phản hồi từ LLM thường tính bằng giây. LangGraph giảm thiểu điều này thông qua Parallelization (Xử lý song song nhiều tác vụ) và Streaming (Trả kết quả ngay khi chúng được tạo ra).
  2. Reliability (Độ tin cậy): Các agent chạy trong thời gian dài thường dễ bị lỗi. LangGraph giải quyết vấn đề này qua Checkpointing: Lưu lại trạng thái của ứng dụng tại mỗi bước để quy trình có thể tiếp tục chính xác tại nơi nó bị dừng lại sau khi gặp lỗi.
  3. Non-Determinism (Tính không xác định): Các phản hồi từ AI có thể khó dự đoán. LangGraph đảm bảo khả năng kiểm soát thông qua cơ chế Human-in-the-loop (Tạm dừng để chờ con người phê duyệt) và tích hợp các công cụ đánh giá nghiêm ngặt.

III. Hệ sinh thái LangGraph

LangGraph nằm trong một hệ sinh thái rộng lớn gồm các công cụ phối hợp với nhau để quản lý vòng đời của một agent:

  • PregelLoop: Công nghệ runtime truyền tin nhắn (message-passing) cơ sở.
  • StateGraph SDK: Giao diện chính để định nghĩa logic của agent bằng các node (nút) và edge (cạnh).
  • LangChain Library: Cung cấp các bộ kết nối LLM và các công cụ (tools).
  • LangSmith & Studio: Được sử dụng để gỡ lỗi (debugging), lưu trữ và giám sát các triển khai của bạn.

IV. Thiết lập môi trường và Lab thực hành

Để thực hiện các bài tập trong khóa học này, bạn cần chuẩn bị môi trường Node.js (phiên bản 20 trở lên).

Các bước cài đặt:

  1. Khởi tạo dự án:
npm init -y
npm install @langchain/langgraph zod
npm install -D tsx typescript
  1. Mã nguồn thực hành (01-introduction.ts):
    Hãy tạo file 01-introduction.ts để xây dựng một graph đơn giản với một Node duy nhất.
// path: 01-introduction.ts
import { END, START, StateGraph } from '@langchain/langgraph';
import { generateImage } from '@workspace/util-langchain';
import z from 'zod';

// 1. Define State structure (Shared memory)
const StateDefinition = z.object({
  nlist: z.array(z.string()),
});

type State = z.infer<typeof StateDefinition>;

// 2. Define Node function
function nodeA(state: State) {
  console.log(`Node A is receiving state: ${JSON.stringify(state.nlist)}`);

  const note = 'Hello World from Node A';
  console.log(`Action: ${note}`);

  // Return an object to update the state
  return { nlist: [note] };
}

// 3. Build and Compile the Graph
export const graph = new StateGraph(StateDefinition)
  .addNode('a', nodeA)
  .addEdge(START, 'a')
  .addEdge('a', END)
  .compile();

// 4. Execution
async function run() {
  // Generate a diagram of the graph for visualization
  await generateImage(graph, 'graph-ignore/scripts-01-introduction.jpg');

  console.log('\n=== L1: Simple Node Example ===\n');

  const initialState: State = {
    nlist: ['Initial input from user'],
  };

  console.log('Running graph with initial state:', initialState);
  const result = await graph.invoke(initialState);

  console.log('\n=== FINAL RESULT ===');
  console.log(result);
}

run();

Sơ đồ hoạt động của Graph bài 1:

Sơ đồ Graph Bài 1

V. Tổng kết

LangGraph giải quyết vấn đề "chặng đường cuối" của việc phát triển AI bằng cách cung cấp một môi trường bền bỉ và có trạng thái cho các agent. Bằng cách tận dụng checkpointing để tăng độ tin cậy và parallelization để tăng tốc độ, bạn có thể xây dựng các ứng dụng sẵn sàng cho thực tế.

Trong bài học tiếp theo, chúng ta sẽ bắt đầu khám phá kỹ hơn về cách quản lý dữ liệu thông qua State và cách xây dựng các Nodes xử lý logic phức tạp hơn.

👉 Bài tiếp theo: 2. Nodes và State trong LangGraph