LangChain: Blog
92

Thủ thuật

Phân biệt Deep Agents, LangChain và LangGraph: Lựa chọn nào cho dự án của bạn?

(giờ Việt Nam)

Tóm tắt AI

Bài viết từ LangChain so sánh ba hướng tiếp cận xây dựng AI Agent: LangChain cho người mới, LangGraph cho kiểm soát chi tiết và Deep Agents cho các hệ thống tự chủ cao.

Bản dịch AI

Deep Agents vs LangChain vs LangGraph

Deep Agents, LangChain và LangGraph đều cung cấp các phương pháp tiếp cận riêng biệt để xây dựng các tác nhân (agent). Trong bài viết này, chúng tôi sẽ đề cập đến những điểm khác biệt chính giữa các framework mã nguồn mở của mình và khi nào bạn nên chọn sử dụng từng loại.

Deep Agents, LangChain và LangGraph là ba lớp trong hệ sinh thái tác nhân mã nguồn mở của chúng tôi, được xây dựng dựa trên cùng một triết lý: các nhà phát triển cần có khả năng làm chủ mọi thành phần trong tác nhân của mình: mô hình họ chọn, ngữ cảnh mà mô hình đó tiếp nhận và bộ khung (harness) vận hành nó.

Mỗi lớp đóng một vai trò khác nhau và cung cấp mức độ kiểm soát khác nhau. LangGraph là một runtime (môi trường thực thi) cho tác nhân, LangChain là một framework cho tác nhân, và Deep Agents là một bộ khung cho tác nhân. Runtime cung cấp khả năng kiểm soát cao nhất và ít trừu tượng hóa nhất; bộ khung thì ngược lại. Cả ba đều có khả năng kết hợp hoàn toàn, vì vậy bạn có thể di chuyển giữa các lớp thay vì chỉ chọn một.

Những gì mỗi lớp cung cấp

Deep Agents là một bộ khung tác nhân có sẵn (off-the-shelf): Nhiệm vụ của bộ khung tác nhân là cung cấp đúng ngữ cảnh cho mô hình vào đúng thời điểm thông qua kỹ thuật ngữ cảnh (context engineering). Deep Agents đi kèm với hàng loạt các phương pháp thực hành tốt nhất (best practices) cho việc này ngay khi bắt đầu. Chúng bao gồm:

Có rất nhiều thành phần khác được tích hợp sẵn theo mặc định. Đây là những phương pháp quản lý ngữ cảnh tối ưu mà đội ngũ của chúng tôi liên tục xem xét và cập nhật. Một trong những lợi ích khi sử dụng Deep Agents là bạn có thể tin tưởng rằng chúng tôi luôn khảo sát thị trường và mang đến những phương pháp tốt nhất tại đây.

Việc bắt đầu rất đơn giản với create_deep_agent:

LangChain là framework cho tác nhân: lớp trừu tượng hóa và tích hợp. Nó đi kèm với một bộ khung tác nhân cực kỳ tối giản. Trong khi Deep Agents cung cấp các phương pháp tốt nhất về quản lý ngữ cảnh, thì sự trừu tượng hóa tác nhân của LangChain lại cực kỳ tối giản và không áp đặt quan điểm (un-opinionated).

Sự trừu tượng hóa tác nhân cốt lõi khá đơn giản: một LLM, chạy trong một vòng lặp, gọi các công cụ (tools).

Vòng lặp này cực kỳ đơn giản nhưng lại vô cùng mạnh mẽ. Tuy nhiên, có những lúc bạn muốn sửa đổi vòng lặp đó. Thông thường, các sửa đổi này được thực hiện để thêm các bước mang tính xác định (deterministic) - như tóm tắt khi ngữ cảnh gần đầy, hoặc chạy một trình xác minh ở cuối. Một trong những phần mạnh mẽ nhất của các tác nhân LangChain là cách chúng tôi cho phép bạn thêm các sửa đổi này. Middleware của LangChain cung cấp một tập hợp các hook có thể sửa đổi vòng lặp này theo nhiều cách khác nhau.

Bạn có thể sử dụng các tác nhân LangChain với sự trừu tượng hóa đơn giản create_agent:

LangGraph là runtime cho tác nhân: một framework dựa trên đồ thị dành cho các quy trình làm việc (workflow) của tác nhân tùy chỉnh, được hỗ trợ bởi một engine bền bỉ với tính năng human-in-the-loop (có sự tham gia của con người), khả năng chịu lỗi và khả năng quan sát (observability) ở mọi bước. Một trong những lợi ích của việc tư duy về tác nhân dưới dạng đồ thị là bạn có thể mã hóa tính xác định vào chúng nhiều hơn và kiểm soát chặt chẽ hơn các bước diễn ra.

LangGraph cung cấp sức mạnh cho các sự trừu tượng hóa tác nhân (được hiển thị ở trên dưới dạng đồ thị) trong cả LangChain và Deep Agents.

Khi nào nên chọn lớp nào

Deep Agents

Hãy chọn Deep Agents khi bạn muốn có một tác nhân mạnh mẽ ngay lập tức. Đây là nơi hầu hết các nhà phát triển nên bắt đầu, và chỉ cần chuyển xuống các lớp thấp hơn nếu bạn cần kiểm soát nhiều hơn đối với chính bộ khung đó.

Giả sử bạn đang xây dựng một tác nhân GTM (Go-To-Market). Nó cần bộ nhớ cho mỗi đại diện (với các thông tin như sở thích về phong cách email và hiểu biết về mối quan hệ), các kỹ năng cho các quy trình định kỳ như chuẩn bị QBR, và các tác nhân phụ (subagents) để thực hiện nghiên cứu chuyên sâu về một tài khoản thông qua bản ghi cuộc gọi, tin tức và lịch sử CRM.

Đây không chỉ là một ví dụ lý thuyết: chúng tôi đã xây dựng tác nhân GTM của mình trên deepagents! Hiện tại nó đang xử lý lưu lượng truy cập lớn, gần 10 nghìn yêu cầu mỗi tuần và hơn 150 người dùng hoạt động. 26% lưu lượng truy cập là do người dùng khởi tạo, và 74% còn lại được thúc đẩy bởi các tác vụ tác nhân ngầm (ambient agent work). Chúng tôi triển khai nó bằng LangSmith deployments, hỗ trợ cả lưu lượng truy cập đột biến và các tác vụ ngầm theo lịch trình/kích hoạt bởi sự kiện.

LangChain

Hãy chọn LangChain khi bạn muốn các khối xây dựng cốt lõi và/hoặc dự định tự lắp ráp bộ khung riêng của mình trên đó. Các tích hợp và sự trừu tượng hóa của LangChain có thể hữu ích ở mọi cấp độ: trong các đồ thị tùy chỉnh, với create_agent và với create_deep_agent. Đây cũng là lựa chọn phù hợp khi bạn muốn kiểm soát chi tiết công cụ và ngữ cảnh nào sẽ đến với mô hình ở mỗi bước; các ứng dụng cực kỳ nhạy cảm về độ trễ thường cần điều này.

Giả sử bạn đang xây dựng một bot hỏi đáp tài liệu RAG: khi nhận được câu hỏi, tác nhân sẽ tìm kiếm trong kho vector của bạn các trang liên quan. Vòng lặp tác nhân sẽ kiểm soát xem câu trả lời thỏa đáng đã đạt được hay chưa và điều khiển bot cho đến khi truy vấn hoàn tất. Loại tác nhân này không cần ủy quyền thông qua các tác nhân phụ hoặc quản lý ngữ cảnh thông qua hệ thống tệp. Các tích hợp của LangChain cho phép bạn kết nối bất kỳ kho vector nào như một công cụ và chọn bất kỳ mô hình nào bạn muốn, còn create_agent cung cấp cho bạn vòng lặp kết nối chúng lại với nhau.

LangGraph

Hãy chọn LangGraph khi tác nhân của bạn không phù hợp với một vòng lặp tiêu chuẩn, hoặc bạn cần kết hợp các bước mang tính xác định và các bước mang tính tác nhân trong cùng một quy trình làm việc.

Giả sử bạn đang xây dựng một quy trình xử lý đơn đăng ký thuê nhà. Nó có một vài bước:

Chỉ bước 1 là chạm đến LLM, phần còn lại là mã cố định. Quy trình này sử dụng sức mạnh của LLM để trích xuất thông tin từ tài liệu, nhưng nó không cung cấp cho mô hình bất kỳ công cụ nào để thực hiện hành động. Đó là một quy trình tương đối xác định.

Đang sử dụng LangGraph? Hãy tiếp tục nếu giá trị nằm ở hình dạng của đồ thị và các bước xác định của nó. Nếu luồng LangGraph của bạn mang tính tác nhân cao, bạn có thể hưởng lợi từ việc chuyển đổi sang Deep Agents.

Cả ba

Cả ba đều có khả năng kết hợp: đưa create_agent hoặc create_deep_agent vào một quy trình LangGraph lớn hơn, hoặc đưa một quy trình LangGraph tùy chỉnh vào làm tác nhân phụ bên trong create_agent hoặc create_deep_agent.

Bất kể bạn xây dựng với gói nào, bạn đều có thể triển khai với LangSmith deployments và quan sát với LangSmith observability.

Cân bằng giữa tính xác định và tính tác nhân

Quyền tự chủ cao hơn mang lại cho tác nhân tiềm năng giá trị lớn hơn, nhưng phải đánh đổi bằng độ tin cậy. Tính xác định là lựa chọn tốt hơn cho các quy trình nhạy cảm hoặc đã được thiết lập sẵn, và cho các tác vụ lặp đi lặp lại không cần đến tính tác nhân. Tác nhân càng năng động thì càng có khả năng và sáng tạo. Để biết thêm các ví dụ về sự đánh đổi này trong thực tế, hãy nghe Max Agency, podcast của chúng tôi về cách các đội ngũ thiết kế, triển khai và lặp lại trên các hệ thống tác nhân thực tế.

Ba lớp nằm ở các điểm khác nhau trên phổ đó. LangGraph cung cấp tính xác định tối đa: nó cho phép bạn mã hóa kiến thức chuyên môn trực tiếp vào cấu trúc của đồ thị thay vì để sự phán đoán đó cho mô hình. LangChain nằm ở giữa: vòng lặp tác nhân cốt lõi vốn dĩ không mang tính xác định, mô hình quyết định điều gì sẽ xảy ra tiếp theo ở mỗi bước. Deep Agents cung cấp tính tác nhân tối đa: một vòng lặp tác nhân có thể chạy lâu hơn và mở rộng quy mô nhờ các tính năng tích hợp sẵn như tóm tắt và tác nhân phụ.

Nhiều tác nhân chạy trên vòng lặp cốt lõi nhưng vẫn cần một vài bước xác định được tích hợp sẵn: một bước phê duyệt, kiểm tra tuân thủ, hoặc quy tắc kinh doanh không nên để mô hình tự quyết định. Middleware giải quyết vấn đề này cho Deep Agents và LangChain, cho phép bạn chèn các bước này và các khoảnh khắc cần sự can thiệp của con người (human-in-the-loop) xung quanh vòng lặp cốt lõi.

Nếu bạn cần sự linh hoạt hoặc kiểm soát nhiều hơn những gì middleware cung cấp thông qua các hook tích hợp sẵn này, LangGraph chính là lối thoát cho phép bạn xây dựng một đồ thị tùy chỉnh hoàn toàn, mã hóa logic cụ thể của quy trình làm việc trực tiếp vào hình dạng của nó, giống như ví dụ về fan-out-and-synthesize ở trên.

Tại sao lại có ba lớp

LangChainAI AgentsLập trình AILangGraphPhát triển phần mềm
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ LangChain: Blog. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.