So sánh MCP, Function Calling và OpenAI Plugins: Kiến trúc Tích hợp Công cụ cho AI Agent
Function Calling, MCP, và OpenAI Plugins giải quyết các lớp (layer) khác nhau trong ngăn xếp công cụ (tool stack) dành cho AI agent. Function Calling là cơ chế để mô hình biểu đạt ý định hành động; MCP là giao thức chuẩn hóa việc khám phá và thực thi các yêu cầu công cụ xuyên suốt nhiều nhà cung cấp; OpenAI Plugins là một định dạng manifest độc quyền của ChatGPT đã ngừng hỗ trợ và hiện được thay thế bởi GPTs/Actions kết hợp với MCP cho các luồng công việc đa nhà cung cấp.
TL;DR
- Function Calling là cơ chế đầu ra có cấu trúc đặc thù theo từng LLM (
toolscủa OpenAI,tool_usecủa Anthropic,function_declarationscủa Gemini), cho phép mô hình phát ra yêu cầu công cụ bằng định dạng JSON nội tuyến trong phản hồi. - MCP (Model Context Protocol) là một tiêu chuẩn mở do Anthropic tiên phong, nhằm phân tách lớp công cụ khỏi lớp agent: một máy chủ MCP duy nhất có thể cung cấp các công cụ (tool), lời nhắc (prompt), và tài nguyên (resource) cho bất kỳ client nào tương thích với MCP (như Claude, Cursor, Windsurf, ChatGPT, và các agent tùy chỉnh).
- OpenAI Plugins từng là một cơ chế manifest (bản kê khai) độc quyền của ChatGPT ra mắt năm 2023. OpenAI đã chính thức ngừng hỗ trợ (deprecated) Plugins vào đầu năm 2024 để chuyển dịch sang GPTs/Actions, hiện đã có khả năng tương tác với MCP; do đó, các kiến trúc mới không nên tiếp tục phát triển dựa trên nền tảng Plugins.
Khuyến nghị kiến trúc (Architectural Verdict)
- Khi xây dựng ứng dụng với một nhà cung cấp LLM duy nhất: Sử dụng Function Calling.
- Khi phát triển hệ thống công cụ yêu cầu khả năng tương tác đa client (Claude, ChatGPT, Cursor, agent tùy chỉnh): Sử dụng MCP (lưu ý rằng MCP vẫn kế thừa Function Calling bên dưới ranh giới mô hình).
- Khi mục tiêu là tích hợp với ChatGPT hướng người tiêu dùng thông qua một API từ xa: Sử dụng GPT kết hợp Actions, tuyệt đối không sử dụng Plugins. Plugins hiện đã được xếp vào nhóm công nghệ di sản (legacy).
Bảng phân tích đối chiếu (Side-by-side Comparison)
| Tiêu chí | Function Calling | MCP | OpenAI Plugins (Di sản) |
|---|---|---|---|
| Lớp kiến trúc (Layer) | Ranh giới suy luận (model ↔ host app) | Lớp truyền tải & khám phá (host app ↔ tools) | Runtime của ChatGPT ↔ third-party API |
| Tiêu chuẩn hóa | Phân mảnh theo nhà cung cấp (OpenAI, Anthropic, Google) | Đặc tả mở, tương thích đa nhà cung cấp | Độc quyền của OpenAI |
| Cơ chế khám phá | Hệ thống máy chủ tự đính kèm lược đồ công cụ trong mỗi lượt gọi | Máy chủ tự động quảng bá công cụ, lời nhắc, tài nguyên | Bản kê khai ai-plugin.json + OpenAPI |
| Khả năng tái sử dụng | Yêu cầu triển khai độc lập cho từng nhà cung cấp | Viết một lần, thực thi trên mọi MCP client | Bị giới hạn hoàn toàn trong hệ sinh thái ChatGPT |
| Quản lý trạng thái / Streaming | Kiến trúc không trạng thái (stateless) trên mỗi lượt gọi | Phiên kết nối duy trì liên tục (long-lived session), hỗ trợ streaming và lấy mẫu | HTTP không trạng thái (stateless) |
| Trạng thái (2026) | Tiêu chuẩn ngành | Mức độ sẵn sàng cho sản xuất (production-ready), hệ sinh thái client mở rộng | Đã ngừng hỗ trợ; được thay thế hoàn toàn bởi GPTs/Actions |
Function calling: giao kèo đầu ra có cấu trúc
Function Calling, hay còn được gọi là tool calling (gọi công cụ), là cơ chế tiêu chuẩn được hỗ trợ bởi toàn bộ các LLM tiên tiến hiện nay. Cơ chế này cho phép mô hình tạo ra một yêu cầu hành động được định kiểu (typed action request) thay vì xuất ra văn bản tự do (free-form text). Quy trình thực thi tại ứng dụng host diễn ra như sau:
- Truyền tải đến mô hình danh sách các công cụ khả dụng (bao gồm tên, mô tả và JSON Schema định nghĩa đối số).
- Nhận lại một thông điệp từ trợ lý hoặc một payload yêu cầu gọi công cụ (ví dụ:
{ "name": "search", "arguments": { "q": "..." } }). - Thực thi logic của công cụ trong môi trường cục bộ.
- Đưa kết quả trả về từ công cụ vào lượt tương tác (turn) tiếp theo của mô hình.
Function Calling thuần túy là việc mô hình biểu đạt ý định hành động. Toàn bộ trách nhiệm về việc thực thi, cơ chế thử lại (retries), xác thực (auth), khả năng quan sát (observability), giới hạn tốc độ (rate limiting), và xử lý tác dụng phụ (side-effects) hoàn toàn thuộc về mã nguồn ứng dụng (host application). Mặc dù mỗi nhà cung cấp định nghĩa một cấu trúc cú pháp riêng — như mảng tools của OpenAI, khối tool_use của Anthropic, hay function_declarations của Gemini — mô hình tư duy cốt lõi là hoàn toàn đồng nhất.
Điểm mạnh.
- Độ trễ được tối ưu hóa ở mức tối đa: chỉ phát sinh thêm một vòng lặp mạng (round-trip) trong cùng một chu kỳ hoàn thành trò chuyện (chat completion).
- Cung cấp quyền kiểm soát tuyệt đối đối với quá trình thực thi, thử lại, và ghi nhật ký (logging).
- Không phát sinh yêu cầu về hạ tầng mới: tương thích với mọi HTTP backend tiêu chuẩn.
Điểm yếu.
- Sự phân mảnh lược đồ (schema) theo nhà cung cấp buộc các tổ chức phải phát triển và duy trì N phiên bản tích hợp cho N nhà cung cấp LLM.
- Danh mục công cụ bị lặp lại dư thừa trên toàn bộ các ứng dụng cần tích hợp.
- Thiếu vắng cơ chế khám phá (discovery) nguyên bản: ứng dụng host buộc phải nắm giữ thông tin tĩnh về mọi công cụ cần được đăng ký.
MCP: Mặt phẳng điều khiển công cụ cho các agent (Tool Control Plane)
Model Context Protocol (MCP), được Anthropic công bố vào cuối năm 2024 và nhanh chóng trở thành tiêu chuẩn trên các IDE và agent runtime trong giai đoạn 2025-2026, đóng vai trò chuẩn hóa kênh giao tiếp giữa một AI host và hệ sinh thái công cụ. Một máy chủ MCP cung cấp ba nguyên hàm (primitive) cốt lõi: tools (các hàm thực thi), resources (bối cảnh dữ liệu chỉ đọc, ví dụ: tệp tin hoặc bản ghi cơ sở dữ liệu), và prompts (các mẫu lời nhắc được tham số hóa). Một MCP client (điển hình như Claude Desktop, Cursor, Windsurf, ChatGPT desktop hỗ trợ MCP, hoặc các agent tùy chỉnh) có khả năng thiết lập kết nối tới một hoặc nhiều máy chủ thông qua giao thức stdio hoặc HTTP/SSE nhằm phơi bày các nguyên hàm này cho mô hình.
Khía cạnh quan trọng nhất cần nắm bắt là MCP không thay thế Function Calling — nó hoạt động như một lớp trừu tượng phía trên. Tại thời điểm host điều phối yêu cầu hành động tới mô hình, định dạng gọi công cụ (tool-calling format) nguyên bản của mô hình vẫn được áp dụng. Giá trị cốt lõi của MCP nằm ở việc đảm bảo rằng host luôn được cung cấp sẵn các lược đồ công cụ, mô tả chức năng, và điểm cuối (endpoint) thực thi hoàn toàn tương thích một cách linh hoạt.
Điểm mạnh.
- Nguyên lý "Write once, run anywhere": Máy chủ MCP cung cấp khả năng tương thích tức thì trên toàn bộ các client hỗ trợ MCP.
- Cơ chế khám phá ưu việt (First-class discovery): Cung cấp tính năng liệt kê công cụ, đọc tài nguyên, thực thi lời nhắc một cách tự động mà không yêu cầu sửa đổi mã nguồn của agent.
- Hỗ trợ các phiên kết nối duy trì liên tục (long-lived session): Cho phép máy chủ xử lý stream dữ liệu, phân trang (pagination), và tương tác hai chiều (như yêu cầu mô hình lấy mẫu).
- Hoàn toàn phù hợp với mô hình quản trị công cụ cấp doanh nghiệp: Xây dựng các dịch vụ dùng chung có khả năng quản lý, kiểm toán, và tái sử dụng.
Điểm yếu.
- Đưa vào kiến trúc một lớp truyền tải (transport layer) bổ sung, kéo theo sự phức tạp trong quản lý xác thực (auth), vòng đời kết nối (lifecycle), và khả năng quan sát (observability).
- Mức độ tương thích không đồng nhất giữa các client; hệ sinh thái nguyên hàm (primitive) chưa được hỗ trợ toàn diện trên mọi host.
- Kiến trúc máy chủ
stdiocục bộ bộc lộ hạn chế trong khả năng mở rộng quy mô (scaling); trong khi đó, các máy chủ HTTP từ xa đòi hỏi phải thiết kế giải pháp cổng API (API Gateway) chuyên biệt.
OpenAI Plugins: tại sao nó lại là di sản (legacy)
OpenAI Plugins được giới thiệu vào năm 2023, cung cấp cơ chế cho phép các nhà phát triển bên thứ ba phơi bày API trực tiếp đến người dùng ChatGPT thông qua bản kê khai ai-plugin.json kết hợp tài liệu OpenAPI. ChatGPT đảm nhận vai trò phân tích bản kê khai, định tuyến các truy vấn phù hợp đến plugin, và truyền phát (stream) phản hồi đến giao diện người dùng.
Tuy nhiên, OpenAI đã chính thức đóng cửa hệ sinh thái Plugins vào đầu năm 2024, đánh dấu sự chuyển dịch chiến lược sang GPTs (trợ lý tùy chỉnh) tích hợp Actions (các điểm cuối lệnh gọi công cụ được khai báo qua OpenAPI, gói gọn trong phạm vi một GPT). Nhằm đáp ứng các quy trình làm việc của nhà phát triển và yêu cầu đa client (cross-client), OpenAI sau đó đã tích hợp hỗ trợ MCP vào cả nền tảng ChatGPT và Responses API. Tình trạng kiến trúc tính đến năm 2026 được tổng hợp như sau:
- Đối với các giải pháp hướng tới người tiêu dùng trên ChatGPT: Bắt buộc sử dụng kiến trúc GPTs + Actions, hoàn toàn loại bỏ Plugins.
- Đối với dịch vụ công cụ yêu cầu tính tương thích đa nhà cung cấp (cross-provider): Bắt buộc kiến trúc dưới dạng máy chủ MCP (MCP server).
- Đối với các bản kê khai Plugin hiện hành (legacy manifest): Mặc dù vẫn duy trì khả năng hoạt động hạn chế trên một số hệ thống cũ, kiến trúc này đã đóng băng (không nhận bản cập nhật mới) và đòi hỏi phải lập kế hoạch di chuyển (migration) khẩn cấp.
Hướng dẫn Lựa chọn Kiến trúc (Decision Matrix)
- Triển khai Function Calling độc lập khi hệ thống vận hành với một mô hình duy nhất, danh mục công cụ giới hạn (≤ 5-10 công cụ), và không có yêu cầu tái sử dụng chéo giữa các bộ phận hoặc client. Mô hình này tối ưu cho các tập lệnh nội bộ (internal script), agent chuyên biệt theo chiều dọc (vertical agent), và chatbot có phạm vi xác định chặt chẽ.
- Triển khai kiến trúc MCP khi hệ sinh thái yêu cầu đa client kết nối chung một bộ công cụ, khi mục tiêu kinh doanh xoay quanh quyền truy cập tài liệu và hệ thống nội bộ, hoặc khi yêu cầu tổ chức là thiết lập một mặt phẳng kiểm soát và quan sát (observability plane) tập trung cho toàn bộ agent. Từ năm 2026, mọi hệ thống tài liệu, công cụ lập trình (devtools), cơ sở tri thức (knowledge base), và máy chủ tự động hóa quy trình (workflow automation) đều phải áp dụng MCP làm tiêu chuẩn mặc định.
- Triển khai OpenAI GPTs + Actions (tuyệt đối không dùng Plugins) khi mục tiêu phát hành duy nhất là người dùng cuối trên nền tảng ChatGPT và sản phẩm được định hướng phân phối qua hệ sinh thái cửa hàng GPT (GPT store).
- Mô hình hỗn hợp (Hybrid Model) MCP + Function Calling trong sản xuất: MCP đảm nhiệm vai trò phân phối và quản trị vòng đời công cụ, trong khi Function Calling nguyên bản đảm bảo giao tiếp hiệu suất cao tại ranh giới mô hình. Đây là kiến trúc được tiêu chuẩn hóa và áp dụng rộng rãi nhất trong năm 2026.
Các quan niệm sai lầm phổ biến
- "MCP có khả năng thay thế hoàn toàn Function Calling." Mệnh đề này sai. Các host vẫn duy trì kết nối thông qua API gọi công cụ của mô hình; MCP đóng vai trò là cơ chế cung cấp (provisioning) các định nghĩa công cụ đó.
- "OpenAI Plugins là khái niệm tương đương với OpenAI tools." Sai lệch hoàn toàn. Plugins là một môi trường thực thi (runtime) đã chính thức bị ngừng hỗ trợ; trong khi tools/Function Calling là một bề mặt API lõi đang được vận hành liên tục.
- "MCP là tiêu chuẩn độc quyền, chỉ khả dụng khi sử dụng Claude." Dù Claude là nền tảng tiên phong tích hợp, MCP hiện là tiêu chuẩn mở được hỗ trợ bởi hàng loạt ứng dụng như Cursor, Windsurf, ChatGPT, và các nền tảng host tùy chỉnh.
- "MCP chỉ đơn thuần là RPC qua HTTP." Mệnh đề này đánh giá thấp MCP. Thực tế, MCP là một giao thức định hướng phiên (session-oriented protocol) hỗ trợ cơ chế khám phá (discovery), lấy mẫu (sampling), luồng dữ liệu (streaming), và tích hợp nguyên hàm lời nhắc (prompt primitive) — vượt xa định nghĩa về một lớp RPC truyền thống.
Ứng dụng thực tiễn trong Kiến trúc nền tảng Tài liệu (Documentation Platform Stack)
Đối với quy trình vận hành và tối ưu hóa nội dung tài liệu (docs/GEO), cần triển khai theo cấu trúc sau:
- Đóng gói kiến trúc lõi thành máy chủ MCP: Đóng gói bộ chỉ mục tìm kiếm (search index), module tải trang (page loader), và hệ thống phân tích dữ liệu (analytics) vào một máy chủ MCP duy nhất. Điều này cho phép mọi tác vụ agent nội bộ (soạn thảo, kiểm toán, QA) kết nối vào một nguồn chân lý (source of truth) đồng nhất.
- Sử dụng Function Calling cho các logic biệt lập: Áp dụng Function Calling nguyên bản đối với các công cụ tiện ích nhỏ lẻ, có phạm vi giới hạn theo từng agent cụ thể (ví dụ: trình định dạng nội dung, trình xác thực cú pháp), nơi yêu cầu tái sử dụng giữa các nhóm là không đáng kể.
- Chuyển đổi các hệ thống Plugin di sản: Đánh giá và chuyển đổi bất kỳ hệ thống nào trước đây được thiết kế cho kiến trúc OpenAI Plugin sang kiến trúc máy chủ MCP (khi yêu cầu tính năng dùng chung cho nhiều nhóm hoặc client) hoặc GPT Action (khi module được giới hạn cho trợ lý phục vụ người tiêu dùng trên hệ sinh thái OpenAI).
- Chuẩn hóa tài liệu vận hành (Documentation Standards): Lập tài liệu cho từng máy chủ MCP tuân thủ bản đặc tả tài liệu hộp cát cho agent (
agent sandbox documentation spec). Việc này nhằm đảm bảo các agent hạ nguồn (downstream agent) nhận thức đầy đủ về cơ chế cách ly hệ thống, giao thức xác thực, và chính sách giới hạn tốc độ.
Các câu hỏi thường gặp (FAQ)
Q: MCP có phải là kiến trúc thay thế (replacement) cho Function Calling không?
A: Không. MCP và Function Calling giải quyết các lớp bài toán độc lập trong kiến trúc. Function Calling là cơ chế phía mô hình (model-side API) phục vụ việc khởi tạo các yêu cầu công cụ; trong khi MCP là giao thức phía máy chủ (host-side protocol) đảm nhiệm phân phối và thực thi công cụ. Môi trường sản xuất hiện đại luôn vận hành theo mô hình kết hợp: MCP cấp quyền truy cập danh mục công cụ cho host, host khai báo danh sách công cụ này qua API Function Calling của mô hình, và mô hình khởi tạo lệnh gọi công cụ từ nền tảng đó.
Q: OpenAI Plugins có còn nhận được hỗ trợ vận hành trong năm 2026 không?
A: Không. Kiến trúc Plugins đã bị ngừng hỗ trợ (deprecated) và loại bỏ khỏi chu kỳ nâng cấp tính năng. Định hướng phát triển từ OpenAI chuyển trọng tâm sang kiến trúc GPTs tích hợp Actions đối với sản phẩm ChatGPT dành cho người tiêu dùng, và kiến trúc MCP đối với dịch vụ đa client (cross-client). Các bản kê khai plugin di sản (legacy manifest) dù vẫn được phân giải ở mức độ tối thiểu, nhưng bắt buộc phải tiến hành chuyển đổi (migration) để đảm bảo độ tin cậy của hệ thống.
Q: ChatGPT có khả năng tích hợp và sử dụng MCP server không?
A: Có. Bắt đầu từ năm 2025, OpenAI đã chính thức tích hợp MCP client vào ChatGPT (nền tảng desktop và Responses API). Điều này đưa ChatGPT vào hệ sinh thái chuẩn chung cùng với Claude Desktop, Cursor, Windsurf và các môi trường agent đa dạng khác, qua đó chia sẻ chung một cấu trúc máy chủ MCP duy nhất.
Q: Cấu trúc MCP có buộc tôi phải đưa ra lựa chọn độc quyền giữa Anthropic và OpenAI không?
A: Không. MCP bản chất là một đặc tả kỹ thuật mở (open specification). Máy chủ MCP hoạt động hoàn toàn độc lập với loại mô hình (model-agnostic); do đó, MCP client có thể được triển khai trên cả Claude, ChatGPT, Cursor, Windsurf, và các nền tảng tự xây dựng trên khung LangChain/LlamaIndex.
Q: Phương pháp tối ưu nhất để thực hiện chuyển đổi (migration) từ kiến trúc Plugins sang MCP là gì?
A: Giải pháp là bọc lại bề mặt kiến trúc OpenAPI hiện tại của plugin vào nguyên hàm tools bên trong máy chủ MCP. Đồng thời, tệp mô tả manifest của plugin cần được cấu trúc lại và khai báo dưới dạng mô tả công cụ (tool descriptions) cho MCP. Mọi ứng dụng client hỗ trợ MCP từ thời điểm này có thể khởi tạo kết nối tức thì, loại bỏ sự cần thiết của việc tái cấu trúc các API lõi ở phía backend.
Related Articles
Agent Sandbox Documentation Specification: Documenting Execution Environments for Autonomous AI Agents
Documentation specification for describing AI agent sandbox environments — isolation tier, filesystem, ports, snapshots, resource limits, network policy, and tool access — so downstream agents and operators can use them safely.
How to Build an Answer Grounding Pipeline (End-to-End)
Step-by-step guide to designing an answer grounding pipeline: source selection, evidence extraction, attribution, and guardrails to reduce hallucination measurably.
What is query fan-out? Optimizing multi-query retrieval for RAG
Query fan-out in RAG: when to use multi-query retrieval, how to control cost/latency, deduplicate results, and measure impact on grounded answer quality.