1. Giới thiệu
Các Mô hình Ngôn ngữ Lớn (LLM) đã thể hiện những khả năng ấn tượng trong nhiều tác vụ xử lý ngôn ngữ tự nhiên.1 Tuy nhiên, chúng vẫn tồn tại những hạn chế cố hữu như hiện tượng “ảo giác” (hallucination) – tạo ra thông tin không chính xác nhưng có vẻ hợp lý, kiến thức bị giới hạn bởi thời điểm huấn luyện (outdated knowledge), thiếu tính minh bạch trong quá trình suy luận, và không có khả năng tương tác trực tiếp với các hệ thống bên ngoài hoặc truy cập dữ liệu thời gian thực.1 Những hạn chế này cản trở việc ứng dụng LLM một cách đáng tin cậy và hiệu quả trong nhiều tình huống thực tế đòi hỏi độ chính xác cao và thông tin cập nhật.
Để giải quyết những thách thức này, cộng đồng nghiên cứu và phát triển AI đã đề xuất nhiều kỹ thuật tiên tiến. Bài viết này tập trung phân tích ba phương pháp nổi bật: Retrieval-Augmented Generation (RAG), Model Context Protocol (MCP), và Function Calling. Các kỹ thuật này đại diện cho những nỗ lực quan trọng nhằm tăng cường độ tin cậy, khả năng và tính ứng dụng của LLM bằng cách kết nối chúng với kiến thức bên ngoài và cho phép chúng thực hiện các hành động cụ thể.
Một điểm cần làm rõ là thuật ngữ “MCP”. Dựa trên các tài liệu kỹ thuật và thảo luận gần đây trong cộng đồng AI6, MCP trong ngữ cảnh các ứng dụng LLM hiện đại chủ yếu đề cập đến Model Context Protocol. Đây là một giao thức mở, được thiết kế để chuẩn hóa cách các ứng dụng LLM (như agent, copilot) tương tác với các công cụ và nguồn dữ liệu bên ngoài. Nó không phải là một kỹ thuật prompting cụ thể như “Model-Centric Prompting”. Sự xuất hiện và phát triển của MCP cho thấy một xu hướng rõ ràng trong ngành công nghiệp AI: hướng tới việc chuẩn hóa tầng giao tiếp giữa LLM và thế giới bên ngoài.6 Khi LLM ngày càng cần tích hợp nhiều công cụ và nguồn dữ liệu để trở nên hữu ích hơn5, việc tích hợp từng công cụ/nguồn dữ liệu với từng LLM/agent riêng lẻ tạo ra bài toán phức tạp M x N.7 Các giải pháp ban đầu thường phụ thuộc vào nhà cung cấp cụ thể.11 Do đó, các giao thức như MCP6 và các tiêu chuẩn Function Calling15 ra đời nhằm tạo ra một giao diện chung, tương tự như các nỗ lực chuẩn hóa trong các lĩnh vực công nghệ khác (ví dụ: USB, HTTP, LSP8), thúc đẩy sự phát triển của hệ sinh thái và giảm thiểu nỗ lực trùng lặp. Bài viết này sẽ phân tích MCP theo định nghĩa là Model Context Protocol.
Mục tiêu của bài nghiên cứu này là cung cấp một cái nhìn tổng quan, phân tích kỹ thuật và so sánh chi tiết về RAG, MCP và Function Calling. Bài viết sẽ đi sâu vào định nghĩa, cơ chế hoạt động, ưu nhược điểm, và các trường hợp ứng dụng của từng kỹ thuật, sau đó so sánh chúng và thảo luận về tiềm năng kết hợp cũng như xu hướng phát triển trong tương lai.
2. Retrieval-Augmented Generation (RAG)
2.1 Định nghĩa
Retrieval-Augmented Generation (RAG) là một kiến trúc lai tiên tiến được thiết kế để giải quyết các hạn chế của các mô hình sinh thuần túy.20 Nó kết hợp sức mạnh sinh văn bản của LLM với khả năng truy xuất thông tin chính xác từ các nguồn kiến thức bên ngoài (như cơ sở dữ liệu, tài liệu PDF, trang web).2 Mục đích cốt lõi của RAG là nâng cao độ chính xác, giảm thiểu hiện tượng ảo giác và cho phép LLM truy cập vào kiến thức cập nhật hoặc chuyên biệt theo lĩnh vực, đặc biệt hiệu quả cho các tác vụ đòi hỏi nhiều kiến thức (knowledge-intensive tasks).1 RAG thực hiện điều này bằng cách hợp nhất một cách linh hoạt kiến thức nội tại (tham số hóa) được mã hóa trong LLM với kiến thức bên ngoài (phi tham số hóa) được truy xuất theo yêu cầu.1
2.2 Cơ chế hoạt động
Quy trình hoạt động điển hình của một hệ thống RAG thường bao gồm ba giai đoạn chính1:
- Lập chỉ mục (Indexing): Giai đoạn này chuẩn bị nguồn kiến thức bên ngoài để có thể truy xuất hiệu quả.
- Thu thập và Tiền xử lý Dữ liệu: Dữ liệu thô từ nhiều định dạng (PDF, HTML, Word, v.v.) được thu thập, làm sạch (loại bỏ nhiễu, định dạng lại) và chuyển đổi thành định dạng văn bản thuần nhất quán.1
- Phân đoạn (Chunking): Văn bản được chia thành các đoạn nhỏ hơn, có ý nghĩa (chunks) để phù hợp với giới hạn ngữ cảnh của LLM và tối ưu cho việc truy xuất.1 Các chiến lược phân đoạn nâng cao như cửa sổ trượt (sliding window) hay phân đoạn chi tiết (fine-grained segmentation) cũng được áp dụng.1
- Tạo Vector Embeddings: Các đoạn văn bản được chuyển đổi thành các biểu diễn vector bằng cách sử dụng các mô hình embedding (ví dụ: BERT, Sentence Transformers21). Những vector này nắm bắt ngữ nghĩa của văn bản, cho phép tìm kiếm dựa trên sự tương đồng.
- Lưu trữ Vector: Các biểu diễn vector được lưu trữ trong một cơ sở dữ liệu vector (Vector Store/Database), được tối ưu hóa cho việc truy xuất nhanh chóng dựa trên các độ đo tương đồng.1 Việc gắn thêm siêu dữ liệu (metadata) vào các chunk cũng giúp tăng cường khả năng truy xuất có mục tiêu.2
- Truy xuất (Retrieval): Khi người dùng đưa ra một truy vấn (query), hệ thống RAG sẽ tìm kiếm và lấy ra thông tin liên quan nhất từ kho kiến thức đã được lập chỉ mục.
- Embedding Truy vấn: Truy vấn của người dùng cũng được chuyển đổi thành biểu diễn vector bằng cùng mô hình embedding đã sử dụng trong giai đoạn lập chỉ mục.2
- Tìm kiếm Tương đồng: Hệ thống thực hiện tìm kiếm trong cơ sở dữ liệu vector để xác định các chunk có độ tương đồng ngữ nghĩa cao nhất với vector truy vấn (thường sử dụng độ đo như cosine similarity).1
- Lấy Top-K Chunks: Hệ thống truy xuất K đoạn văn bản có liên quan nhất (top-K chunks).1 Các kỹ thuật truy xuất nâng cao như viết lại truy vấn (query rewriting), tái xếp hạng kết quả (re-ranking), và truy xuất lặp/đệ quy (recursive/iterative retrieval) được sử dụng để cải thiện chất lượng truy xuất.24
- Tăng cường và Sinh văn bản (Augmentation and Generation):
- Tăng cường Ngữ cảnh: Truy vấn gốc của người dùng được kết hợp với nội dung của các chunk đã truy xuất để tạo thành một prompt tăng cường (augmented prompt).2
- Sinh Phản hồi: Prompt tăng cường này được cung cấp cho LLM (ví dụ: GPT, Llama21). LLM xử lý đầu vào này để tạo ra một phản hồi mạch lạc, không chỉ trôi chảy mà còn dựa trên các dữ kiện được cung cấp trong ngữ cảnh truy xuất.2
Cần lưu ý rằng RAG không phải là một kỹ thuật tĩnh. Nó đã trải qua quá trình phát triển đáng kể. Ban đầu, “Naive RAG” chỉ đơn giản thực hiện quy trình “truy xuất rồi sinh”. Tuy nhiên, cách tiếp cận này gặp phải các vấn đề về chất lượng truy xuất (nhiễu, không liên quan) và giới hạn cửa sổ ngữ cảnh.1 Để khắc phục, “Advanced RAG” ra đời, tập trung vào việc tối ưu hóa giai đoạn truy xuất thông qua các chiến lược tiền xử lý (tối ưu hóa lập chỉ mục, truy vấn) và hậu xử lý (tái xếp hạng, nén ngữ cảnh).1 Khi các ứng dụng trở nên phức tạp hơn, đòi hỏi tích hợp nhiều nguồn dữ liệu và xử lý các truy vấn phức tạp25, kiến trúc tuyến tính của RAG truyền thống trở nên không đủ. Điều này dẫn đến sự ra đời của “Modular RAG”.25 Modular RAG phân tách hệ thống RAG thành các mô-đun độc lập (ví dụ: tìm kiếm, bộ nhớ, định tuyến, dự đoán, hợp nhất) và giới thiệu các cơ chế điều phối (orchestration) để quản lý sự tương tác giữa chúng. Cách tiếp cận này mang lại sự linh hoạt cao hơn, cho phép các quy trình làm việc phức tạp hơn (như truy xuất lặp, truy xuất thích ứng25) và tích hợp các loại dữ liệu đa dạng (bảng, đồ thị tri thức25), phản ánh nỗ lực không ngừng nhằm giải quyết các điểm nghẽn cụ thể và tăng cường khả năng thích ứng của hệ thống trước các yêu cầu ứng dụng ngày càng cao.
2.3 Ưu điểm
- Tăng cường Độ chính xác Thực tế / Giảm Ảo giác: Neo các phản hồi vào dữ liệu bên ngoài có thể kiểm chứng, giảm đáng kể việc LLM tạo ra thông tin sai lệch.1
- Truy cập Kiến thức Cập nhật/Mới nhất: Vượt qua giới hạn về thời điểm cắt dữ liệu huấn luyện của LLM bằng cách truy xuất thông tin thời gian thực.1
- Tính Chuyên biệt theo Lĩnh vực: Cho phép LLM sử dụng kiến thức chuyên ngành hoặc độc quyền không có trong dữ liệu huấn luyện của chúng.1
- Minh bạch/Truy xuất Nguồn gốc: Cho phép người dùng có khả năng xem các tài liệu nguồn được sử dụng để tạo ra câu trả lời, tăng độ tin cậy.1
- Cập nhật Kiến thức Hiệu quả về Chi phí: Việc cập nhật cơ sở kiến thức bên ngoài thường ít tốn kém hơn so với việc huấn luyện lại toàn bộ LLM.2
2.4 Nhược điểm / Thách thức
- Chất lượng Truy xuất: Hiệu suất phụ thuộc nhiều vào khả năng của bộ truy xuất trong việc tìm ra các chunk thực sự liên quan và chính xác (vấn đề về độ chính xác – precision và độ bao phủ – recall).2 Các chunk nhiễu hoặc không liên quan có thể làm giảm chất lượng sinh văn bản.25
- Độ trễ (Latency): Bước truy xuất thông tin làm tăng thêm thời gian xử lý so với việc chỉ sinh văn bản trực tiếp từ LLM.2
- Độ phức tạp Tích hợp: Việc tích hợp liền mạch ngữ cảnh được truy xuất vào một phản hồi mạch lạc có thể khó khăn (augmentation hurdles).2
- Thách thức Lập chỉ mục: Tạo ra các chunk và embeddings tối ưu đòi hỏi sự tinh chỉnh cẩn thận.1
- Chi phí Triển khai: Việc thiết lập và duy trì pipeline RAG (vector stores, mô hình embedding) đòi hỏi tài nguyên và chuyên môn.26
- Vấn đề “Lost in the Middle”: LLM có thể gặp khó khăn trong việc sử dụng hiệu quả thông tin nếu ngữ cảnh truy xuất quá dài.2
2.5 Trường hợp ứng dụng
RAG đã được áp dụng thành công trong nhiều lĩnh vực đòi hỏi độ chính xác và hiểu biết ngữ cảnh:
- Hỏi đáp Miền mở (Open-Domain Question Answering).2
- Hệ thống Đối thoại/AI Hội thoại dựa trên Kiến thức.2
- Kiểm tra/Xác minh Thông tin (Fact Checking/Verification).2
- Sinh Nội dung dựa trên Nguồn cụ thể (ví dụ: tóm tắt bài báo nghiên cứu).
- Hệ thống Đề xuất Cá nhân hóa.20
- Các Lĩnh vực Chuyên biệt như Y tế, Luật.2
- Tìm kiếm/Sinh Mã nguồn (Code Search/Generation).2
- Ứng dụng Đa phương thức (Multi-modal).2
3. Model Context Protocol (MCP)
3.1 Định nghĩa và Mục tiêu
Model Context Protocol (MCP) là một giao thức (protocol) tiêu chuẩn mở, dựa trên JSON-RPC 2.0, được thiết kế để chuẩn hóa giao tiếp giữa các ứng dụng LLM (đóng vai trò Host/Client) và các khả năng bên ngoài (được cung cấp bởi các Server).6 Mục tiêu chính của MCP là giải quyết bài toán tích hợp M x N (kết nối M LLM với N công cụ/nguồn dữ liệu) bằng cách tạo ra một giao diện phổ quát – hoạt động như một “cổng USB cho AI” – cho phép các công cụ, dữ liệu và prompt được truy cập một cách nhất quán, thúc đẩy khả năng tương tác và loại bỏ nhu cầu tích hợp tùy chỉnh cho từng cặp LLM/công cụ.6
3.2 Kiến trúc và Thành phần Cốt lõi
MCP hoạt động dựa trên mô hình Client-Server6:
- Host: Là môi trường nơi ứng dụng LLM chạy (ví dụ: môi trường phát triển tích hợp – IDE, giao diện chatbot như Claude Desktop).6 Host quản lý các client và các chính sách bảo mật.
- Client: Là một trình kết nối (connector) bên trong Host, duy trì kết nối đến một Server cụ thể.6
- Server: Là một chương trình độc lập (có thể chạy cục bộ hoặc từ xa) có nhiệm vụ cung cấp các khả năng (capabilities) thông qua giao thức MCP.6
Các Server cung cấp ba loại “nguyên thủy” (primitives) chính cho Client6:
- Tools (Công cụ): Các hàm có thể thực thi mà LLM có thể gọi (invoke) để thực hiện hành động (ví dụ: chạy lệnh shell, gọi API, truy vấn cơ sở dữ liệu). Đây là cơ chế chính để LLM tác động ra bên ngoài.6
- Resources (Tài nguyên): Dữ liệu có cấu trúc mà LLM có thể đọc hoặc tham chiếu (ví dụ: tệp tin, log, bản ghi cơ sở dữ liệu, phản hồi API). Chúng cung cấp ngữ cảnh thụ động cho LLM.6
- Prompts (Mẫu gợi ý): Các mẫu tin nhắn hoặc quy trình làm việc được định nghĩa trước mà người dùng hoặc LLM có thể tái sử dụng.6
Ngoài ra, Client có thể cung cấp khả năng Sampling cho Server, cho phép Server yêu cầu Host thực hiện sinh văn bản (completion) từ LLM, hỗ trợ các tương tác do server khởi tạo.6
3.3 Lợi ích
- Khả năng tương tác/Chuẩn hóa: Cho phép kết nối bất kỳ LLM/agent tuân thủ MCP nào với bất kỳ công cụ/nguồn dữ liệu tuân thủ MCP nào.6
- Tính Mô-đun/Tái sử dụng: Xây dựng các server cung cấp công cụ/dữ liệu một lần và sử dụng chúng trên nhiều ứng dụng khác nhau.6 Dễ dàng thay thế các thành phần.
- Giảm thiểu Nỗ lực Phát triển: Loại bỏ nhu cầu xây dựng các tích hợp riêng lẻ, tốn kém.8
- Tăng cường Bảo mật/Kiểm soát: Host có thể quản lý quyền truy cập và sự đồng ý của người dùng đối với việc truy cập tài nguyên và thực thi công cụ.6
- Độc lập Ngôn ngữ: Các Server có thể được xây dựng bằng nhiều ngôn ngữ lập trình khác nhau.6
3.4 Kỹ thuật liên quan
Điều quan trọng là phải phân biệt MCP với các kỹ thuật prompting. MCP bản thân nó là một giao thức truyền thông, không phải là một kỹ thuật để điều khiển trực tiếp đầu ra của LLM thông qua prompt.12 Tuy nhiên, các kỹ thuật prompt engineering đóng vai trò thiết yếu bên trong ứng dụng Host/LLM để diễn giải yêu cầu của người dùng và quyết định khi nào và làm thế nào để sử dụng các khả năng được cung cấp thông qua MCP. Ví dụ, LLM cần được prompt một cách hiệu quả (có thể sử dụng zero-shot, few-shot, hoặc Chain-of-Thought26) để hiểu rằng yêu cầu “Giá cổ phiếu AAPL hiện tại là bao nhiêu?” đòi hỏi phải gọi (invoke) công cụ get_current_stock_price được cung cấp bởi một MCP server.8 Yêu cầu gọi công cụ này sau đó sẽ được định dạng và gửi đi thông qua giao thức MCP (tools/call).
MCP và Function Calling (sẽ thảo luận ở phần 4) có mối liên hệ chặt chẽ nhưng khác biệt. Function Calling thường đề cập đến khả năng của LLM (thường được tinh chỉnh hoặc kích hoạt qua prompt15) để tạo ra yêu cầu có cấu trúc (như JSON) cần thiết để gọi một công cụ bên ngoài.8 Trong khi đó, MCP cung cấp giao thức chuẩn hóa để truyền tải yêu cầu đó đến một tool server và nhận lại kết quả, cũng như chuẩn hóa việc truy cập các loại tài nguyên khác. Nói cách khác, Function Calling tập trung vào việc tạo yêu cầu, còn MCP chuẩn hóa giao diện và cách truyền tải yêu cầu đó cũng như các tương tác khác.
Cách tiếp cận chuẩn hóa của MCP đối với việc truy cập công cụ và tài nguyên tạo ra một lớp nền tảng vững chắc cho việc xây dựng các hệ thống AI agent phức tạp, đáng tin cậy và có khả năng tương tác cao.6 Các AI agent cần có khả năng nhận thức môi trường (truy cập tài nguyên/dữ liệu) và hành động trong đó (sử dụng công cụ).6 Việc phát triển agent hiện tại thường đòi hỏi các tích hợp tùy chỉnh, dễ bị lỗi cho từng công cụ/nguồn dữ liệu.8 MCP cung cấp một phương thức chuẩn hóa, có thể tái sử dụng để kết nối các agent (Hosts/Clients) với các khả năng này (Servers cung cấp Tools/Resources).6 Điều này cho phép các agent khám phá và sử dụng động các công cụ/tài nguyên có sẵn tại thời điểm chạy13, đồng thời tạo điều kiện cho các quy trình làm việc phức tạp, đa bước liên quan đến nhiều công cụ/hệ thống khác nhau (ví dụ: kiểm tra lịch -> đặt địa điểm -> gửi email cho khách mời thông qua các MCP tool riêng biệt).11 Do đó, MCP đóng vai trò như một lớp cơ sở hạ tầng quan trọng, đơn giản hóa việc tạo ra và nâng cao độ bền vững của các AI agent tinh vi.
3.5 Trường hợp ứng dụng
MCP đặc biệt hữu ích trong các môi trường đòi hỏi sự tương tác chuẩn hóa và an toàn với nhiều hệ thống:
- Trợ lý AI doanh nghiệp truy cập dữ liệu/dịch vụ nội bộ (CSDL, hệ thống HR, công cụ quản lý dự án).7
- Trợ lý Lập trình AI (truy cập codebase, tài liệu, chạy kiểm thử).7
- Truy vấn Dữ liệu bằng AI (chuyển đổi ngôn ngữ tự nhiên sang SQL/tương tác CSDL).7
- Ứng dụng AI trên máy tính để bàn truy cập tệp/ứng dụng cục bộ.7
- Kết nối AI với các công cụ phát triển (Sourcegraph, Replit, Codeium).7
- Tự động hóa trích xuất dữ liệu/web scraping (ví dụ Apify).7
- Tích hợp với các nền tảng như Google Drive, Slack, GitHub, Postgres.7
- Điều phối nhiều công cụ cho các quy trình làm việc phức tạp.7
4. Function Calling
4.1 Định nghĩa
Function Calling là khả năng của một LLM tương tác một cách đáng tin cậy với các công cụ hoặc API bên ngoài bằng cách tạo ra đầu ra có cấu trúc (thường là JSON) chỉ định một hàm (function) cần được gọi cùng với các đối số (arguments) của nó.5 Khả năng này cho phép LLM vượt ra ngoài việc chỉ sinh văn bản đơn thuần để kích hoạt các hành động hoặc truy xuất dữ liệu bên ngoài theo yêu cầu.5 Đôi khi nó còn được gọi là “sử dụng công cụ” (tool use).33
4.2 Cơ chế hoạt động
Quy trình Function Calling điển hình diễn ra như sau5:
- Định nghĩa/Khai báo Hàm (Function Definition/Declaration): Nhà phát triển cung cấp cho LLM mô tả về các hàm/công cụ có sẵn mà nó có thể gọi. Mô tả này bao gồm tên hàm, mục đích sử dụng, và danh sách các tham số đầu vào (thường tuân theo lược đồ OpenAPI).15
- LLM Phát hiện Nhu cầu (LLM Detects Need): Dựa trên prompt của người dùng và các mô tả hàm được cung cấp, LLM (thường được tinh chỉnh đặc biệt cho tác vụ này15) xác định xem liệu việc gọi một hàm bên ngoài có cần thiết để đáp ứng yêu cầu hay không.
- LLM Tạo Đầu ra Có Cấu trúc (LLM Generates Structured Output): Nếu LLM quyết định cần gọi hàm, nó sẽ tạo ra một đầu ra có định dạng cấu trúc (ví dụ: JSON) chứa tên của hàm dự định gọi và các đối số được trích xuất hoặc suy luận từ prompt của người dùng.5
- Ứng dụng Client Thực thi Hàm (Client Application Executes Function): Mã ứng dụng phía client (nơi gọi LLM) sẽ phân tích (parse) đầu ra có cấu trúc này, xác thực nó, và sau đó gọi hàm/API bên ngoài thực tế với các đối số được chỉ định.5 Điều quan trọng là bản thân LLM không thực thi hàm này.17
- Kết quả được Trả về cho LLM (Result Returned to LLM): Đầu ra hoặc kết quả từ việc thực thi hàm bên ngoài được gửi trở lại cho LLM (thường dưới dạng một loại tin nhắn hoặc vai trò cụ thể trong cuộc hội thoại).5
- LLM Tạo Phản hồi Cuối cùng (LLM Generates Final Response): LLM sử dụng kết quả của hàm để xây dựng một phản hồi cuối cùng, thân thiện với người dùng, tích hợp thông tin hoặc kết quả hành động từ bên ngoài.15
Các nhà phát triển có thể kiểm soát hành vi này thông qua các chế độ như AUTO (LLM tự quyết định), ANY (buộc LLM gọi một hàm nào đó), hoặc NONE (cấm LLM gọi hàm), và có thể chỉ định danh sách các hàm được phép gọi.16 Nhiều LLM cũng hỗ trợ gọi nhiều hàm song song hoặc tuần tự trong một lượt tương tác.5
4.3 Ưu điểm
- Mở rộng Khả năng của LLM: Cho phép LLM thực hiện các hành động (đặt vé, đặt hàng), truy cập dữ liệu thời gian thực (thời tiết, giá cổ phiếu), và tương tác với các hệ thống bên ngoài (CSDL, API).5
- Cải thiện Độ chính xác/Liên quan: Neo các phản hồi vào dữ liệu cụ thể, thời gian thực được lấy qua API.5
- Tương tác Có Cấu trúc: Chuyển đổi ngôn ngữ tự nhiên thành các lệnh gọi API hoặc truy vấn cơ sở dữ liệu có cấu trúc hợp lệ.5
- Tự động hóa: Cho phép tự động hóa các tác vụ đòi hỏi tương tác bên ngoài.5
4.4 Nhược điểm / Thách thức
- Phụ thuộc/Độ tin cậy của API: Hoạt động phụ thuộc vào sự sẵn có và tính đúng đắn của các API/công cụ bên ngoài.18
- Xử lý Lỗi: Đòi hỏi cơ chế xử lý lỗi mạnh mẽ cho các trường hợp gọi API thất bại hoặc nhận phản hồi không mong muốn.18
- Rủi ro Bảo mật: Có thể tiềm ẩn các lỗ hổng bảo mật nếu không được triển khai cẩn thận (ví dụ: xác thực đầu vào, làm sạch đầu ra, quản lý khóa API).14 Đầu vào người dùng không rõ ràng có thể dẫn đến các lệnh gọi sai.18
- Độ phức tạp: Việc định nghĩa hàm, xử lý vòng lặp gọi-thực thi-phản hồi làm tăng độ phức tạp của ứng dụng.18
- Chi phí: Các lệnh gọi API có thể phát sinh chi phí; các lệnh gọi LLM để quyết định/tóm tắt cũng tốn tài nguyên tính toán.
- Hạn chế của LLM: Mô hình có thể gặp khó khăn với các tác vụ phức tạp/đa bước hoặc chọn sai hàm/trích xuất sai tham số.18
4.5 Trường hợp ứng dụng
Function Calling mở ra nhiều khả năng ứng dụng thực tế cho LLM:
- Agent/Chatbot Hội thoại sử dụng công cụ bên ngoài.15
- Truy xuất thông tin thời gian thực (thời tiết, giá cổ phiếu, tin tức).5
- Tương tác với API (đặt vé máy bay/nhà hàng, đặt hàng).5
- Chuyển đổi ngôn ngữ tự nhiên thành lệnh gọi API hoặc truy vấn CSDL.15
- Trích xuất Thông tin (lấy các thực thể/dữ liệu cụ thể).5
- Giải quyết Vấn đề Toán học (gọi các hàm tính toán).15
- Tương tác với dữ liệu cá nhân (lịch, email – với quyền truy cập).5
- Các tác vụ kinh doanh thông minh (truy vấn dữ liệu bán hàng, CRM).5
5. So sánh RAG, MCP và Function Calling
5.1 Tổng quan
Cả ba kỹ thuật – RAG, MCP, và Function Calling – đều nhằm mục đích nâng cao năng lực của LLM bằng cách kết nối chúng với thông tin hoặc khả năng bên ngoài. Tuy nhiên, chúng khác biệt đáng kể về cách tiếp cận, trọng tâm và mục tiêu cuối cùng.
5.2 Điểm tương đồng và khác biệt
- Mục tiêu: Cả ba đều giải quyết các hạn chế của LLM. RAG tập trung vào việc bổ sung kiến thức để cải thiện chất lượng sinh văn bản, làm cho nó chính xác và phù hợp hơn với ngữ cảnh.2 Function Calling tập trung vào việc cho phép LLM thực hiện hành động và truy xuất dữ liệu thời gian thực thông qua API.5 MCP tập trung vào việc chuẩn hóa giao diện để LLM tương tác với cả nguồn kiến thức (Resources) và các công cụ thực hiện hành động (Tools).6
- Cơ chế: RAG sử dụng quy trình truy xuất-rồi-sinh, sửa đổi prompt đầu vào bằng dữ liệu truy xuất được.2 Function Calling liên quan đến việc LLM tạo ra một yêu cầu có cấu trúc để gọi hàm bên ngoài, sau đó client thực thi yêu cầu đó.15 MCP định nghĩa một giao thức để client (ứng dụng LLM) khám phá và tương tác với các server cung cấp công cụ/tài nguyên.6
- Loại tương tác: RAG chủ yếu là tăng cường đầu vào của LLM bằng ngữ cảnh truy xuất. Function Calling là việc LLM xuất ra một lệnh để thực thi. MCP chuẩn hóa kênh giao tiếp hai chiều cho nhiều loại tương tác khác nhau (đọc tài nguyên, gọi công cụ, lấy prompt).
- Trọng tâm: RAG = Neo giữ Sinh văn bản (Grounding Generation). Function Calling = Kích hoạt Hành động/Tương tác API. MCP = Chuẩn hóa Tích hợp (Standardizing Integration).
Mặc dù khác biệt, các kỹ thuật này không loại trừ lẫn nhau mà có tính bổ sung cao và thường được sử dụng kết hợp. Một hệ thống AI phức tạp có thể cần cả ba. Ví dụ, khi người dùng yêu cầu “Tóm tắt báo cáo công ty mới nhất và gửi email cho quản lý của tôi”, RAG có thể được sử dụng để truy xuất nội dung báo cáo (đóng vai trò như một MCP Resource hoặc được truy xuất bởi một MCP Tool chuyên dụng). Sau đó, LLM cần gọi một hàm ’email’. Nếu công cụ email này được cung cấp thông qua một MCP server6, LLM (sử dụng khả năng Function Calling của nó19) sẽ tạo ra một yêu cầu có cấu trúc theo định nghĩa công cụ MCP. MCP client sẽ gửi yêu cầu tools/call này đến MCP server8, và server sẽ thực thi hành động gửi email. Trong kịch bản này, RAG cung cấp ‘cái gì’ (nội dung), Function Calling cung cấp ‘làm thế nào’ (tạo yêu cầu có cấu trúc), và MCP cung cấp ‘ở đâu/giao thức’ (giao diện chuẩn hóa đến công cụ email). Chúng giải quyết các phần khác nhau của bài toán tương tác LLM nâng cao và có thể hoạt động phối hợp hiệu quả.
5.3 Tình huống ứng dụng phù hợp
- RAG: Phù hợp nhất khi nhu cầu chính là sinh văn bản dựa trên một kho kiến thức lớn, có thể tĩnh nhưng cụ thể (tài liệu nội bộ, wiki).2 Lý tưởng để giảm ảo giác trong các tác vụ đòi hỏi nhiều kiến thức.
- Function Calling: Tốt nhất khi LLM cần tương tác với các nguồn dữ liệu động thông qua API hoặc thực hiện các hành động cụ thể trong các hệ thống bên ngoài.5 Cần thiết cho thông tin thời gian thực hoặc thực thi tác vụ.
- MCP: Phù hợp nhất cho các môi trường cần truy cập chuẩn hóa, có khả năng tương tác vào một tập hợp đa dạng các công cụ và nguồn dữ liệu, đặc biệt là trong môi trường doanh nghiệp hoặc các hệ thống agent phức tạp nơi nhiều LLM/công cụ cần kết nối một cách đáng tin cậy và an toàn.6 Đây là một lựa chọn về cơ sở hạ tầng/giao thức.
5.4 Bảng so sánh
Bảng dưới đây tóm tắt các điểm khác biệt chính giữa ba kỹ thuật:
| Đặc điểm | RAG (Retrieval-Augmented Generation) | MCP (Model Context Protocol) | Function Calling |
|---|---|---|---|
| Mục tiêu chính | Tăng cường sinh văn bản bằng kiến thức bên ngoài | Chuẩn hóa tương tác LLM với công cụ/dữ liệu | Cho phép LLM kích hoạt hành động/API bên ngoài |
| Loại cơ chế | Truy xuất dữ liệu -> Tăng cường prompt -> Sinh văn bản | Giao thức Client-Server (JSON-RPC) để truy cập công cụ/tài nguyên | LLM tạo yêu cầu cấu trúc -> Client thực thi hàm |
| Chế độ tương tác | Tăng cường đầu vào (Dữ liệu -> LLM) | Giao tiếp hai chiều chuẩn hóa (LLM <-> Server Công cụ/Dữ liệu) | Kích hoạt hành động đầu ra (LLM -> Hành động) |
| Lợi ích chính | Giảm ảo giác, Truy cập kiến thức cụ thể/cập nhật | Khả năng tương tác, Chuẩn hóa, Tái sử dụng, Bảo mật | Truy cập dữ liệu thời gian thực, Thực thi tác vụ, Mở rộng |
| Thách thức chính | Chất lượng truy xuất, Độ trễ, Phức tạp tích hợp | Mức độ chấp nhận, Phức tạp triển khai Server, Mô hình bảo mật | Độ tin cậy API, Xử lý lỗi, Bảo mật, Độ trễ |
| Ứng dụng điển hình | Hỏi đáp kiến thức, Tóm tắt có căn cứ, Chatbot lĩnh vực | Trợ lý doanh nghiệp, Công cụ lập trình, Hệ thống agent phức tạp | Hệ thống đặt chỗ, Bot thời tiết, Tích hợp API, Truy vấn CSDL |
6. Thảo luận và Kết luận
RAG, MCP và Function Calling đại diện cho các hướng tiếp cận quan trọng và bổ trợ lẫn nhau để khắc phục những hạn chế cố hữu của LLM. RAG cung cấp cơ chế để neo giữ kiến thức của LLM vào các nguồn dữ liệu bên ngoài, tăng cường độ chính xác và tính cập nhật. Function Calling trao quyền cho LLM để vượt ra ngoài việc sinh văn bản, cho phép chúng thực hiện hành động và tương tác với các hệ thống động thông qua API. MCP đóng vai trò là lớp giao thức nền tảng, chuẩn hóa cách thức các tương tác này diễn ra, thúc đẩy khả năng tương tác, tái sử dụng và bảo mật trong một hệ sinh thái AI ngày càng phức tạp.
Sự kết hợp của các kỹ thuật này là chìa khóa để xây dựng các hệ thống AI thực sự mạnh mẽ, linh hoạt và đáng tin cậy. Một agent AI trong tương lai có thể sử dụng MCP làm giao diện chuẩn để khám phá và truy cập các công cụ có sẵn. Một trong những công cụ đó có thể triển khai quy trình RAG để trả lời các câu hỏi dựa trên kiến thức chuyên sâu từ tài liệu nội bộ. Một công cụ khác có thể sử dụng các nguyên tắc Function Calling để tương tác với API của bên thứ ba nhằm đặt lịch hẹn hoặc truy xuất dữ liệu thị trường thời gian thực. Sự phối hợp nhịp nhàng này cho phép tạo ra các ứng dụng AI có khả năng hiểu ngữ cảnh sâu sắc, truy cập thông tin đa dạng và thực hiện các hành động hữu ích trong thế giới thực.
Sự phát triển này cũng đánh dấu một sự chuyển dịch quan trọng: từ việc xem AI chủ yếu là công cụ sinh nội dung sang việc coi chúng là các tác nhân (agent) có khả năng tương tác và hành động trong môi trường số và thậm chí cả vật lý.11 Khi các tương tác này trở nên phổ biến và phức tạp hơn, các vấn đề về bảo mật, độ tin cậy và quản trị (governance) trở nên tối quan trọng.14 Các tiêu chuẩn như MCP và việc triển khai Function Calling an toàn là những bước đi cần thiết để đảm bảo các hệ thống AI này hoạt động một cách có trách nhiệm.
Nhìn về tương lai, chúng ta có thể kỳ vọng vào sự phát triển liên tục của các kỹ thuật này. RAG sẽ tiếp tục được cải tiến với các phương pháp truy xuất và tích hợp thông minh hơn, hỗ trợ các cấu trúc dữ liệu phức tạp hơn và tối ưu hóa hiệu suất.25 MCP có tiềm năng được chấp nhận rộng rãi hơn, với nhiều nhà cung cấp công cụ và ứng dụng LLM hỗ trợ giao thức này, cùng với sự phát triển của nhiều server được xây dựng sẵn.11 Function Calling sẽ trở nên đáng tin cậy hơn trong việc lựa chọn hàm và tham số, tích hợp các cơ chế xử lý lỗi tốt hơn và được kết hợp chặt chẽ hơn vào các khung phát triển agent tinh vi.18 Quan trọng nhất, sự hội tụ và tích hợp sâu sắc hơn giữa RAG, Function Calling và các giao thức như MCP sẽ tạo nền tảng cho thế hệ tiếp theo của các ứng dụng AI thông minh, đa năng và đáng tin cậy hơn.
Tóm lại, RAG, MCP và Function Calling là những trụ cột kỹ thuật thiết yếu trong hành trình phát triển LLM. Chúng không chỉ giải quyết các vấn đề hiện tại mà còn mở đường cho những ứng dụng AI tiên tiến, có khả năng tương tác sâu sắc và mang lại giá trị thực tiễn lớn hơn trong tương lai.
Works cited
- Retrieval-Augmented Generation for Large Language Models: A Survey – arXiv, accessed on April 20, 2025, https://arxiv.org/html/2312.10997v5
- arxiv.org, accessed on April 20, 2025, https://arxiv.org/pdf/2312.10997
- Retrieval-Augmented Generation for Large Language Models: A Survey – arXiv, accessed on April 20, 2025, https://arxiv.org/abs/2312.10997
- Retrieval-Augmented Generation for AI-Generated Content: A Survey – arXiv, accessed on April 20, 2025, https://arxiv.org/html/2402.19473v6
- Leveraging LLM function calling to harness real-time knowledge – Fabrity, accessed on April 20, 2025, https://fabrity.com/blog/leveraging-llm-function-calling-to-harness-real-time-knowledge/
- A Journey from AI to LLMs and MCP – 6 – Enter the Model Context Protocol (MCP) — The Interoperability Layer for AI Agents – DEV Community, accessed on April 20, 2025, https://dev.to/alexmercedcoder/a-journey-from-ai-to-llms-and-mcp-6-enter-the-model-context-protocol-mcp-the-4i7k
- What is MCP? Claude Anthropic’s Model Context Protocol – PromptLayer, accessed on April 20, 2025, https://blog.promptlayer.com/mcp/
- Model Context Protocol (MCP): A comprehensive introduction for developers – Stytch, accessed on April 20, 2025, https://stytch.com/blog/model-context-protocol-introduction/
- The Model Context Protocol (MCP): A guide for AI integration | Generative-AI – Wandb, accessed on April 20, 2025, https://wandb.ai/byyoung3/Generative-AI/reports/The-Model-Context-Protocol-MCP-A-guide-for-AI-integration–VmlldzoxMTgzNDgxOQ
- What is MCP (Model Context Protocol)? – Zapier, accessed on April 20, 2025, https://zapier.com/blog/mcp/
- #14: What Is MCP, and Why Is Everyone – Suddenly!– Talking About It? – Hugging Face, accessed on April 20, 2025, https://huggingface.co/blog/Kseniase/mcp
- How Model Context Protocol works. MCP Explained – Quickchat AI, accessed on April 20, 2025, https://www.quickchat.ai/post/mcp-explained
- Model Context Protocol (MCP) Explained – Humanloop, accessed on April 20, 2025, https://humanloop.com/blog/mcp
- Specification – Model Context Protocol, accessed on April 20, 2025, https://modelcontextprotocol.io/specification/2025-03-26
- Function Calling with LLMs – Prompt Engineering Guide, accessed on April 20, 2025, https://www.promptingguide.ai/applications/function_calling
- Function calling reference | Generative AI on Vertex AI – Google Cloud, accessed on April 20, 2025, https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/function-calling
- Function Calling with the Gemini API | Google AI for Developers, accessed on April 20, 2025, https://ai.google.dev/gemini-api/docs/function-calling
- Mastering LLM Function Calling: A Guide to Enhancing AI Capabilities – Runloop AI, accessed on April 20, 2025, https://www.runloop.ai/blog/mastering-llm-function-calling-a-guide-to-enhancing-ai-capabilities
- Function Calling for LLMs: A Deep Dive into Modern Approaches / AI SEO Mike Levin, accessed on April 20, 2025, https://mikelev.in/futureproof/function-calling-llms/
- A Comprehensive Review of Retrieval-Augmented Generation (RAG): Key Challenges and Future Directions – arXiv, accessed on April 20, 2025, https://arxiv.org/pdf/2410.12837
- Developing Retrieval Augmented Generation (RAG) based LLM Systems from PDFs: An Experience Report – arXiv, accessed on April 20, 2025, https://arxiv.org/html/2410.15944v1
- [2005.11401] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks – arXiv, accessed on April 20, 2025, https://arxiv.org/abs/2005.11401
- A Survey on RAG Meeting LLMs: Towards Retrieval-Augmented Large Language Models, accessed on April 20, 2025, https://arxiv.org/html/2405.06211v2
- Retrieval Augmented Generation (RAG) and Beyond: A Comprehensive Survey on How to Make your LLMs use External Data More Wisely – arXiv, accessed on April 20, 2025, https://arxiv.org/html/2409.14924v1
- Modular RAG: Transforming RAG Systems into LEGO-like Reconfigurable Frameworks, accessed on April 20, 2025, https://arxiv.org/html/2407.21059v1
- RAG vs fine-tuning vs. prompt engineering | IBM, accessed on April 20, 2025, https://www.ibm.com/think/topics/rag-vs-fine-tuning-vs-prompt-engineering
- Prompt Engineering Guide: Techniques & Management Tips for LLMs – Portkey, accessed on April 20, 2025, https://portkey.ai/blog/the-complete-guide-to-prompt-engineering
- Prompt Engineering Techniques: Top 5 for 2025 – K2view, accessed on April 20, 2025, https://www.k2view.com/blog/prompt-engineering-techniques/
- Advanced Prompt Engineering Techniques – Mercity AI, accessed on April 20, 2025, https://www.mercity.ai/blog-post/advanced-prompt-engineering-techniques
- Chain-of-Thought Prompting Elicits Reasoning in Large Language Models – arXiv, accessed on April 20, 2025, https://arxiv.org/pdf/2201.11903
- Prompting Techniques | Prompt Engineering Guide, accessed on April 20, 2025, https://www.promptingguide.ai/techniques
- Chain-of-Thought Prompting | Prompt Engineering Guide, accessed on April 20, 2025, https://www.promptingguide.ai/techniques/cot
- Introduction to function calling | Generative AI on Vertex AI – Google Cloud, accessed on April 20, 2025, https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling
- A Guide to Function Calling in OpenAI – Mirascope, accessed on April 20, 2025, https://mirascope.com/blog/openai-function-calling/
- The LLM Series #3: Multiple Function Calling: Taking OpenAI Models to the Next Level, accessed on April 20, 2025, https://towardsai.net/p/artificial-intelligence/the-llm-series-3-multiple-function-calling-taking-openai-models-to-the-next-level


