MCP, A2A và Cuộc Chuyển Mình Im Lặng trong Kiến Trúc Phần Mềm
MCP cho phép mô tả năng lực, A2A cho phép phối hợp giữa các AI Agent. Kết hợp lại, chúng tạo nên bước chuyển từ API-driven sang intent-driven software, nơi chức năng không được lập trình sẵn, mà tự hình thành từ sự tương tác giữa các AI Agent.

Một điều cực kỳ quan trọng đã xảy ra 3 ngày hôm trước trong lĩnh vực kiến trúc AI, và thành thật mà nói, tôi nghĩ phần lớn chúng ta (trong đó có tôi) vẫn chưa nhận ra mức độ to lớn của nó.
Google vừa công bố Agent-to-Agent Protocol (A2A) , và trong khi hầu hết mọi người còn đang "bay" với Model Context Protocol (MCP) , thì điều khiến tôi chú ý không phải là "protocol" hay danh sách các partner tham gia vào A2A, mà là "cái gì".
Cụ thể hơn: cái gì sẽ thay đổi cách chúng ta xây dựng, mở rộng và thậm chí là hình dung về phần mềm một cách căn bản.
Bởi vì thông báo về A2A của Google không đơn thuần chỉ là một “tính năng mới”.
Đây là một lời khẳng định mạnh mẽ cho một sự chuyển dịch mang tính nền tảng:
Tái định nghĩa phần mềm là gì, và nó nên vận hành như thế nào.
Nói cách khác, A2A không chỉ là bước tiến công nghệ, mà là sự thay đổi trong tư duy cốt lõi về cách chúng ta thiết kế và tương tác với hệ thống phần mềm trong kỷ nguyên AI.

Khi phần mềm không còn là tập hợp lệnh cứng nhắc, mà là sự cộng tác tự chủ giữa các agent
Tôi đã đọc được rằng, suốt khoảng 70 năm qua, chúng ta đã xây dựng phần mềm dựa trên một mô hình tư duy rất cố định và khuôn khổ:
- Xác định rõ ràng kịch bản hoạt động
- Logic được lập trình cụ thể
- Input và output được định nghĩa sẵn
- Mọi luồng dữ liệu và quyết định đều phải được xử lý bởi con người
Mô hình này đã phục vụ rất tốt, thậm chí là xuất sắc cho nhiều bài toán: như hệ thống ngân hàng, thương mại điện tử, hệ thống Insurtech và cả Salesforce. Đồng thời, chúng ta đã cải tiến liên tục từ waterfall, sang agile, rồi đến microservices.
Nhưng nền móng tư duy cốt lõi vẫn giữ nguyên: con người viết ra logic, máy móc làm theo.
Rồi có điều gì đó đã thay đổi.
Khi tôi bắt đầu đọc các tài liệu về Model Context Protocol (MCP) trong thời gian qua, tôi nhận ra:
Đây là tín hiệu đầu tiên của sự phá vỡ cấu trúc logic tuyến tính vốn thống trị kiến trúc phần mềm suốt hàng thập kỷ. Nó khẽ lay động nền tảng tưởng chừng bất biến của thế giới phần mềm.
MCP không thay thế phần mềm truyền thống, nhưng nó giúp chúng ta đặt câu hỏi đầu tiên về cách mà phần mềm nên được xây dựng.
MCP không yêu cầu chúng ta lập trình từng bước một cách chi tiết.
Thay vào đó, nó mời gọi chúng ta mô tả các khả năng một cách có cấu trúc, và để cho AI tự quyết định cách sử dụng tốt nhất những khả năng đó.
Nghe thì nhỏ, nhưng thật ra cực kỳ sâu sắc.
Từ "cách làm" → sang "điều gì là có thể"
Chúng ta đang chuyển từ câu hỏi:
“Làm điều này như thế nào?”
sang:
“Điều gì là có thể làm được với những năng lực này?”
Đây là một cú lật hoàn toàn trong tư duy xây dựng hệ thống.
Và bây giờ, sau MCP, với A2A, chúng ta đang mở rộng bước chuyển mình này: không chỉ từ con người sang AI, mà còn từ agent này sang agent khác, một hệ sinh thái nơi các AI agents cộng tác với nhau một cách tự chủ.
Vậy điều này có ý nghĩa gì cho người làm sản phẩm AI như chúng ta?
Nếu bạn đang build một AI Agent hôm nay, đừng nghĩ đơn lẻ.
Hãy nghĩ:
- Làm sao để agent của bạn có thể giao tiếp với các agent khác? (A2A)
- Làm sao để mô tả năng lực của agent một cách có cấu trúc? (MCP)
- Làm sao để người dùng không cần biết agent hoạt động ra sao, chỉ cần nói mục tiêu là đủ?
Sự khác biệt giữa một chatbot và một agent thật sự nằm ở khả năng cộng tác và thích nghi. A2A không phải là một API. Nó là định hình lại cách phần mềm vận hành.
Chúng ta đang đứng trước bước ngoặt lớn như thời điểm chuyển từ command line sang GUI (Graphical User Interface ), từ web tĩnh sang app tương tác. Chỉ khác là lần này, phần mềm đang dần biết “nghĩ” và “phối hợp” mà không cần con người viết từng dòng code.
Thế hệ sản phẩm kế tiếp có thể không phải là ứng dụng nữa, mà là tập hợp các agent biết cách hỗ trợ bạn như một nhóm chuyên gia cá nhân hóa.
Khi các AI Agent có thể “nói chuyện” với nhau như con người
Nếu như MCP , hiểu đơn giản là việc trao cho AI quyền truy cập linh hoạt vào một "kho" công cụ, thì A2A chính là việc cho phép các agent khám phá và cộng tác với nhau một cách chủ động.
Đây không còn là chuyện lập trình các luồng công việc nữa. Mà là:
Các agent hiểu năng lực của nhau, khởi xướng sự phối hợp linh hoạt, và hợp tác vì mục tiêu chung.
Hãy tưởng tượng: phần mềm không còn là những quy trình chết cứng, mà trở thành một hệ sinh thái các nhóm làm việc tự động, được tự hình thành và tổ chức tùy tình huống.
Tưởng tượng một hệ thống Sales Automation trong 2 thế giới:
Trong thế giới phần mềm truyền thống:
Bạn phải lập trình từng bước:
- Quy tắc xác định lead tiềm năng
- Thời gian gửi email
- Logic cho follow-up
Với MCP:
Một AI Agent có thể:
- Tự khám phá CRM của bạn
- Truy cập email client và công cụ phân tích
- Và tự tìm cách tối ưu quy trình
Còn với A2A?
Agent Sales không làm một mình nữa. Nó có thể:
- Tìm một agent chuyên về chiến lược định giá
- Gọi một agent chuyên viết email hấp dẫn, và thậm chí viết được hơn 15 loại email marketing khác nhau
- Phối hợp với agent quản lý lịch để book cuộc hẹn
Bạn không cần lập trình sự phối hợp này. Bạn chỉ cần mô tả năng lực, các agent sẽ tự tổ chức để đạt mục tiêu.
Đây chính là một cú chuyển mình toàn diện trong tư duy phát triển phần mềm.
Liệu có thách thức không? Rất rất nhiều. Nhưng đó là những thách thức đáng giá.
Hãy thẳng thắn: đây không phải công nghệ kiểu "cắm vào là chạy liền". Nếu bạn là một engineer hoặc PM đang build AI Agent, hẳn đầu bạn đang hiện lên hàng loạt câu hỏi:
- Làm sao đảm bảo trạng thái (state) nhất quán giữa các agent độc lập?
- Nếu mỗi agent có context riêng, thì làm sao tránh xung đột hoặc sai lệch dữ liệu?
- Xử lý thế nào khi một phần trong quá trình cộng tác giữa các agent bị lỗi hoặc gián đoạn?
- Chi phí tính toán cho việc “phối hợp” giữa các agent có bị lãng phí không?
Đây là những câu hỏi hoàn toàn hợp lý. Nhưng hãy nhớ:
Đây không phải là “lỗi” của mô hình mới, mà là đặc trưng của hệ thống mới đang được phát triển theo một tư duy mới.
Chúng ta đang dần rời xa thế giới của phần mềm “dự đoán được, định nghĩa trước”, để bước vào một hệ sinh thái thích nghi, tự hình thành và thông minh theo ngữ cảnh.
Và chính điều đó mới là thứ khiến thế giới Agent đáng để dấn thân.
Từ “Giao việc cho phần mềm” → sang “Giao ý định cho Agent”
Đây là sự chuyển dịch tư duy mà tôi không thể ngừng suy nghĩ gần đây. Tôi tin rằng chúng ta đang chứng kiến sự ra đời của một kiến trúc phần mềm hoàn toàn mới.
Chúng ta không còn giao tác vụ cho phần mềm,
mà đang giao ý định cho một agent có khả năng tự chủ.
Trong thế giới phần mềm truyền thống, mọi chức năng đều được lập trình một cách tường minh:
- Chức năng được viết cứng bằng code
- Mỗi bước đều được định nghĩa rõ ràng
- Phần mềm giống như một cái máy CNC, làm gì thì làm đúng cái đó. CNC (Computer Numerical Control) là một dạng máy sử dụng phổ biến trong các ngành gia công cơ khí, được điều khiển tự động hóa dưới sự hỗ trợ của máy tính.
Trong thế giới Agent có MCP, A2A:
- Chức năng không được định nghĩa tuyệt đối, mà được đàm phán, khám phá, và tự hình thành
- Chúng ta không chỉ “gọi API” nữa, mà tương tác với những agent có khả năng tự quyết định cách đạt được mục tiêu, thay vì chỉ làm theo các bước đã định.
Tiêu chuẩn A2A đã phản ánh tư duy mới này:
- Nó dựa trên các chuẩn mở hiện có như HTTP, JSON-RPC
- Nó hỗ trợ các nhiệm vụ dài hạn (long-running tasks)
- Được thiết kế chú trọng vào khả năng quan sát (observability) và gỡ lỗi (debuggability)
Đây là các chúng ta tái tưởng tượng lại bản chất của phần mềm.
Chúng ta đang đi đến đâu?
Chúng ta đang chứng kiến sự ra đời của một kiến trúc phần mềm hoàn toàn mới. Sẽ có thách thức mới (rất nhiều). Sẽ có sự cố nghiêm trọng (lẽ thường tình). Nhưng đó là cái giá cho sự thay đổi về công nghệ.
Đây không phải là “nâng cấp cách làm phần mềm cũ”, mà là thay đổi mang tính chất nền tảng.
Đây còn lớn hơn cả cloud. Còn vượt ra ngoài DevOps.
Đây là bước tiến tới một nền tảng phần mềm biết suy nghĩ, thích nghi và cộng tác, mà không cần con người phải lập trình từng bước.
Giai đoạn "cloud-native" đầu những năm 2010 là một thời kỳ chuyển mình lớn trong cách chúng ta xây dựng, triển khai và vận hành phần mềm, tương tự như cách agentic software đang định hình lại phần mềm ngày nay.
Giai đoạn đầu 2010s, điều gì đã diễn ra?
Năm | Sự kiện tiêu biểu |
---|---|
2006 | AWS ra mắt dịch vụ đầu tiên (S3, EC2) → mở ra cloud era |
2011–2014 | Docker xuất hiện → bùng nổ containerization |
2014 | Kubernetes được Google open source → mở ra kỷ nguyên orchestration |
2015 | CNCF (Cloud Native Computing Foundation) được thành lập |
2010s | DevOps trở thành triết lý phát triển chính |
MCP + A2A = hệ thống thực sự tự chủ (autonomous systems)
Có thể đây chính là mảnh ghép để đưa chúng ta từ những chatbot đơn lẻ, từ những công cụ AI đơn lẻ sang một môi trường nơi AI thật sự hoạt động như đồng nghiệp, không phải như “những chức năng nâng cao”.
Vì vậy, điều này rất đáng để quan tâm.
Không chỉ vì Google vừa công bố một cái gì đó “hào nhoáng”. Mà vì lần đầu tiên, chúng ta đang xây dựng phần mềm cư xử như một cộng sự thực thụ, không còn chỉ là một đoạn mã chạy theo lệnh.
Nếu bạn thấy MCP và A2A cũng giống như tôi đang thấy
MCP (Model Context Protocol): lớp trung gian ngữ nghĩa cho AI Agents
- MCP giống như một "hợp đồng API" cho agent, nhưng thay vì mô tả API cụ thể, nó mô tả "khả năng + ngữ cảnh sử dụng" của một tác nhân AI.
- Đây là bước tiến cực kỳ quan trọng vì nó giúp decouple (gỡ rối phụ thuộc) giữa hệ thống backend truyền thống và logic của agent.
- Trong tương lai gần, tôi hy vọng MCP (hoặc các phiên bản cao cấp hơn) sẽ:
- Trở thành chuẩn mô tả năng lực cho agent (giống như OpenAPI với REST)
- Được tích hợp trong các nền tảng orchestration
- Đóng vai trò quan trọng trong các RAG-based Agents (kết hợp với context, memory)
Hy vọng MCP sẽ là xương sống của các ứng dụng AI trong doanh nghiệp, tương đương role của GraphQL trong data-layer.
A2A (Agent-to-Agent Protocol): Giao tiếp xã hội cho phần mềm
- Nếu MCP là “hộ chiếu” của một agent, thì A2A là “ngôn ngữ giao tiếp” giữa các agent trong một xã hội phần mềm.
- A2A là cơ sở để tạo nên các hệ sinh thái agent tự tổ chức (self-organizing agent society):
- Không cần orchestration script cố định
- Các agent tự tìm nhau, tự phối hợp
- A2A sẽ làm cho phần mềm biến đổi từ kiểu hệ thống đóng → thành mạng lưới mở gồm nhiều tác nhân AI linh hoạt.
Hy vọng A2A hoặc những gì tốt hơn A2A sắp tới sẽ mở đường cho một tương lai agentic runtime, nơi AI tự "spin up" các nhóm tạm thời để giải quyết một task cụ thể, sau đó rã nhóm - "ai về nhà nấy".
Phần mềm truyền thống còn “đất diễn” không?
Câu trả lời ngắn: Có, nhưng vai trò sẽ thay đổi rất rõ rệt.
Phần mềm truyền thống vẫn cực kỳ quan trọng trong 3 vai trò chính:
1. Hạ tầng thực thi (Execution Infrastructure)
- AI agent vẫn cần hệ thống cơ sở: database, API, business logic
- Các service như payment, auth, data pipeline vẫn cần được xây vững chắc
2. Quản lý trạng thái và độ tin cậy (State & Reliability)
- Agent chỉ tốt khi nền tảng bên dưới ổn định
- Phần mềm truyền thống giúp đảm bảo consistency, rollback, observability
3. Cung cấp API + Tool cho AI sử dụng
- Phần mềm truyền thống sẽ được “wrap” lại thành các tool để agent dùng qua MCP
- Lúc này, phần mềm truyền thống giống như các “plugin chuyên dụng” cho agent
Nhưng phần mềm truyền thống sẽ mất đi quyền kiểm soát business logic cao cấp
- Trước đây, workflow do developer viết
- Tương lai, workflow được "vẽ" ra và đàm phán bởi các agent tùy ngữ cảnh và mục tiêu chung
- Các hệ thống truyền thống chỉ còn đóng vai đầu cuối thực thi (execution endpoint)
MCP, A2A, Và phần còn lại thuộc về chúng ta
Trong cách làm sản phẩm mới, nơi logic được lên kịch bản, điều chỉnh và chức năng được khám phá, định nghĩa từ AI Agent, vai trò của chúng ta có thể không còn là developer viết code (mặc dù thực ra vẫn phải viết) hay Product Manager viết PRD, mà là những người thiết kế ý định.
MCP và A2A là bước đầu tiên. Phần còn lại, là cách chúng ta tận dụng nó để tạo ra sản phẩm có khả năng thích nghi, học hỏi và cộng tác thực sự. Đôi khi, những thay đổi lớn không đến bằng tiếng vang lớn , mà bằng sự im lặng. MCP và A2A là như thế. Âm thầm, nhưng không thể đảo ngược. Và nếu bạn là người làm sản phẩm, có lẽ đã đến lúc bạn không chỉ thiết kế tính năng, mà hãy thiết kế khả năng.
Comments ()