LangChain: Blog
85

Sản phẩm

LangChain tích hợp MCP: Hỗ trợ chuẩn 2026-07-28 thông qua FastMCP

(giờ Việt Nam)

Tóm tắt AI

LangChain bổ sung hỗ trợ MCP trong langchain.mcp, cho phép xử lý yêu cầu thông qua LangGraph interrupt và tối ưu hóa danh sách công cụ bằng cơ chế bộ nhớ đệm.

Bản dịch AI

MCP in LangChain: Stateless Protocol, Elicitation, and More!

Các SDK Tier 1 chính thức của MCP đang đạt gần nửa tỷ lượt tải xuống mỗi tháng và mức độ sử dụng vẫn đang tăng nhanh hơn nữa: các lệnh gọi công cụ MCP từ người dùng ChatGPT đã tăng gấp 98 lần trong năm 2026, riêng trong tháng 8 đã tăng hơn gấp đôi.

Model Context Protocol (MCP) là cách phổ biến nhất để kết nối các tác nhân (agent) với các công cụ. Vào tháng 7, giao thức này đã trải qua đợt viết lại lớn nhất kể từ khi ra mắt. Chúng tôi đã cải tiến hỗ trợ MCP trong LangChain để phù hợp với đặc tả mới và nhu cầu ngày càng tăng đối với nó.

Ba thay đổi chính bao gồm:

Đặc tả không trạng thái (stateless) mới

Trước đây (với đặc tả cũ), mọi lệnh gọi MCP đều chạy thông qua một giao thức được xây dựng dựa trên các phiên (session). Việc gọi một công cụ qua MCP đồng nghĩa với việc phải mở một phiên trước. Client và server thực hiện bắt tay (handshake), server trả về một ID phiên và mọi yêu cầu sau đó đều phải mang theo ID này, điều đó gắn chặt client đó với đúng instance server đã cấp phát nó.

Việc chạy một server từ xa ở bất kỳ quy mô nào đều đòi hỏi định tuyến dính (sticky routing) và một kho lưu trữ phiên dùng chung.

Tất cả những điều này đã thay đổi trong đặc tả MCP mới, cho phép một lõi không trạng thái. Nhóm MCP mô tả lõi không trạng thái là một trong những tính năng được yêu cầu nhiều nhất từ các nhà phát triển, những người muốn có độ tin cậy và khả năng mở rộng tốt hơn từ server của họ. Trong đặc tả mới, không còn gì để phải gắn chặt nữa. Việc triển khai lại (redeploy) không còn làm gián đoạn các phiên đang hoạt động, vì đơn giản là không còn phiên nào cả.

Điều đó mở ra hai khả năng, và cả hai hiện đã có trong langchain.mcp:

Đọc thông báo của nhóm MCP để biết thêm thông tin về bản sửa đổi này.

Hỗ trợ MCP hạng nhất (First-class)

Chúng tôi đã chuyển hỗ trợ MCP vào langchain để nó trở thành tính năng hạng nhất cho các agent. Nó được cài đặt với gói mcp extra:

Chuyển từ gói cũ sang, MultiServerMCPClient được gộp lại thành một lớp MCPAdapter duy nhất. Hãy đọc hướng dẫn di chuyển để biết các chỉ dẫn chi tiết hơn về cách áp dụng. Cách sử dụng cơ bản như sau:

Các công cụ này là các công cụ LangChain thông thường, vì vậy chúng có thể đi bất cứ đâu mà công cụ có thể hoạt động: create_deep_agent, create_agent, hoặc một đồ thị (graph) mà bạn tự thiết lập.

Được xây dựng trên FastMCP

FastMCP cung cấp các lớp trừu tượng sạch sẽ trên lớp truyền tải: kết nối, xác thực, bộ nhớ đệm và thương lượng giao thức. Bề mặt client của nó khả dụng trực tiếp cho bạn.

MCP hiện có hai "kỷ nguyên" giao thức riêng biệt, nghĩa là client cần có khả năng thương lượng với hai giao thức khác nhau. FastMCP thực hiện điều đó trên mỗi kết nối: nó thử giao thức mới và quay lại bắt tay (handshake) đối với server chưa được nâng cấp. Mã nguồn của bạn không cần thay đổi trong cả hai trường hợp. Những điểm mới trong FastMCP 4 có chi tiết về vấn đề này.

Hãy cấp cho mỗi server kết nối riêng của nó với một ClientGroup và mỗi server sẽ giữ lại kỷ nguyên tốt nhất mà nó hỗ trợ, cùng với thông tin xác thực riêng:

Tên công cụ được gắn tiền tố với server mà chúng xuất phát, vì vậy một công cụ tìm kiếm trên mỗi server sẽ xuất hiện dưới dạng billing_search và docs_search. Nếu các server của bạn không cần khác biệt với nhau, một dict cấu hình đơn giản là đủ; hướng dẫn kết nối sẽ đề cập đến việc khi nào nên sử dụng cách nào.

Phần còn lại của client là để bạn sử dụng trực tiếp:

FastMCP cũng giúp việc xây dựng và kiểm thử server của riêng bạn trở nên dễ dàng. Một instance FastMCP là một đích đến adapter hợp lệ, không cần tiến trình con (subprocess) và không cần socket, vì vậy một agent có thể chạy với một MCP server thực tế ngay trong tiến trình (in-process).

Khơi gợi thông tin (Elicitation) thông qua ngắt (interrupts)

Elicitation là tính năng hỗ trợ con người trong vòng lặp (human-in-the-loop) của MCP: một công cụ không thể hoàn thành nếu không hỏi người gọi điều gì đó trước. Đặc tả không trạng thái đã biến điều đó thành một yêu cầu thông thường mà client có thể thử lại với câu trả lời được đính kèm, điều này cho phép chúng tôi hỗ trợ nó bằng nguyên hàm ngắt (interrupt primitive) mà bạn đã sử dụng. Quá trình chạy tạm dừng, bất kỳ ai đang xem xét công việc của agent sẽ trả lời, và nó sẽ tiếp tục:

Không cần thiết lập gì ngoài một checkpointer, để quá trình tạm dừng có nơi để chờ đợi. Tài liệu về elicitation đề cập đến việc từ chối một câu hỏi và kiểm soát các công cụ có tính phá hủy thông qua cùng một quy trình phê duyệt.

Bộ nhớ đệm phía client (Client-side caching)

Mỗi lần chạy agent đều bắt đầu bằng việc khám phá các công cụ hiện có, nghĩa là một yêu cầu khứ hồi để khám phá công cụ trước khi mô hình nhìn thấy bất cứ thứ gì. Các server hiện có thể cho biết danh sách công cụ của chúng sẽ giữ được độ tươi mới trong bao lâu, vì vậy danh mục có thể được phục vụ từ bộ nhớ đệm thay thế. cache=True cung cấp cho bạn một bộ nhớ đệm trong bộ nhớ (in-memory cache) tuân thủ các gợi ý đó:

Bộ nhớ đệm thuộc về client, vì vậy mỗi client cho mỗi người gọi sẽ giữ cho các danh mục không bị trộn lẫn. Xem phần bộ nhớ đệm phản hồi để biết về TTL, kho lưu trữ dùng chung và các chế độ bộ nhớ đệm khác.

Bắt đầu

Namespace này yêu cầu langchain[mcp]>=1.4.0 và đang ở giai đoạn beta, vì vậy API vẫn có thể thay đổi. Chúng tôi đang phát hành hỗ trợ cho Python hôm nay, với TypeScript sẽ sớm ra mắt sau đó.

Đọ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.