Stack mới nổi cho AI Agent: A2A, MCP, Kafka, Flink

Internet đang phát triển. Chúng ta đang tiến xa hơn một mạng lưới được thiết kế cho việc duyệt web của con người để đến với một cơ sở hạ tầng hỗ trợ các agent tự động cộng tác trên các hệ thống. Mô hình mới này đòi hỏi một stack hoàn toàn khác biệt, một stack được xây dựng trên các thành phần mở để tạo điều kiện giao tiếp liền mạch, sử dụng công cụ và xử lý thời gian thực.

Trung tâm của stack mới nổi này là bốn công nghệ then chốt:

  • Agent2Agent (A2A): Được phát triển bởi Google, A2A là một giao thức cho phép các agent khám phá và giao tiếp với nhau. Nó cung cấp một cách tiêu chuẩn để các agent thông báo khả năng của họ, trao đổi nhiệm vụ và truyền tải các bản cập nhật.
  • Model Context Protocol (MCP): Được tiên phong bởi Anthropic, MCP là một tiêu chuẩn cho việc sử dụng công cụ và bối cảnh bên ngoài. Nó định nghĩa cách các agent có thể truy cập và sử dụng các API và công cụ bên ngoài, cho phép họ tương tác với thế giới thực.
  • Apache Kafka: Một nền tảng truyền tải sự kiện phân tán đóng vai trò như một hệ thần kinh trung ương cho giao tiếp giữa các agent. Kafka cung cấp một cách đáng tin cậy và có khả năng mở rộng để điều phối các tương tác giữa các agent.
  • Apache Flink: Một công cụ xử lý thời gian thực giúp làm phong phú, giám sát và hành động trên các luồng hoạt động của agent. Flink cho phép các agent phản ứng trong thời gian thực đối với các sự kiện, đưa ra quyết định và điều phối các quy trình làm việc phức tạp.

Thách thức của hệ sinh thái Agent rời rạc

Hiện tại, sự phát triển của AI agent phải đối mặt với những thách thức đáng kể liên quan đến sự phân mảnh và thiếu khả năng tương tác. Những thách thức này cản trở việc tạo ra các hệ thống AI mạnh mẽ và có khả năng mở rộng:

  • Các Agent bị cô lập: Các agent thường hoạt động trong các silo, không thể giao tiếp hoặc chia sẻ thông tin. Ví dụ, một CRM agent có thể không biết về những hiểu biết sâu sắc được khám phá bởi một data warehouse agent, dẫn đến những cơ hội bị bỏ lỡ và sự kém hiệu quả.
  • Sử dụng công cụ mong manh: Nếu không có các giao thức tiêu chuẩn để gọi các công cụ và API, các agent phải dựa vào các tích hợp được mã hóa cứng, khó bảo trì và tái sử dụng. Điều này hạn chế khả năng thích ứng với môi trường thay đổi và tích hợp với các hệ thống mới của họ.
  • Các Framework không nhất quán: Các runtime agent khác nhau sử dụng các mô hình khác nhau, coi các agent như chatbot, đồ thị chu kỳ có hướng (DAG) hoặc các trình lập kế hoạch đệ quy. Sự thiếu nhất quán này gây khó khăn cho việc tạo ra các agent có tính di động và khả năng tương tác.
  • Phát triển tập trung vào Prototype: Nhiều agent được thiết kế như các prototype một lần, thiếu sự mạnh mẽ và khả năng mở rộng cần thiết cho việc triển khai trong thế giới thực. Chúng thường không giải quyết được các vấn đề quan trọng như thử lại, lỗi, điều phối, ghi nhật ký và mở rộng quy mô.
  • Thiếu xương sống cộng tác: Việc thiếu một bus sự kiện trung tâm, bộ nhớ dùng chung hoặc lịch sử có thể theo dõi các hành động của agent cản trở sự cộng tác và điều phối. Thông tin thường bị mắc kẹt trong các cuộc gọi HTTP trực tiếp hoặc bị chôn vùi trong nhật ký, gây khó khăn cho việc hiểu và gỡ lỗi hành vi của agent.

Giải pháp không nằm ở việc hợp nhất tất cả các agent vào một nền tảng nguyên khối, mà là xây dựng một stack dùng chung dựa trên các giao thức mở, kiến trúc hướng sự kiện và xử lý thời gian thực. Cách tiếp cận này thúc đẩy khả năng tương tác, khả năng mở rộng và khả năng phục hồi.

Agent2Agent: Tiêu chuẩn hóa giao tiếp giữa các Agent

Giao thức A2A của Google là một bước tiến quan trọng hướng tới giải quyết vấn đề khả năng tương tác của agent. Nó cung cấp một giao thức phổ quát để kết nối các agent, bất kể nguồn gốc hoặc môi trường runtime của chúng. Bằng cách xác định một ngôn ngữ chung cho các agent, A2A cho phép họ:

  • Quảng cáo khả năng: Các agent có thể thông báo khả năng của họ thông qua AgentCard, một mô tả JSON chỉ định những gì agent có thể làm và cách tương tác với nó. Điều này cho phép các agent khác khám phá và sử dụng các dịch vụ của chúng.
  • Trao đổi nhiệm vụ: A2A tạo điều kiện cho các tương tác có cấu trúc giữa các agent thông qua JSON-RPC, trong đó một agent yêu cầu trợ giúp từ một agent khác và nhận kết quả hoặc artifact để đáp lại. Điều này cho phép các agent cộng tác trong các nhiệm vụ phức tạp.
  • Truyền tải các bản cập nhật: Các agent có thể truyền tải phản hồi theo thời gian thực trong các tác vụ chạy dài hoặc cộng tác bằng cách sử dụng các sự kiện được máy chủ gửi (SSE). Điều này mang lại sự minh bạch và cho phép các agent theo dõi tiến trình và phản ứng với các thay đổi.
  • Trao đổi nội dung phong phú: A2A hỗ trợ trao đổi tệp, dữ liệu có cấu trúc và biểu mẫu, không chỉ văn bản thuần túy. Điều này cho phép các agent chia sẻ thông tin phức tạp và cộng tác trong nhiều tác vụ hơn.
  • Đảm bảo an ninh: A2A tích hợp hỗ trợ tích hợp cho HTTPS, xác thực và quyền, đảm bảo giao tiếp an toàn giữa các agent. Điều này rất quan trọng để bảo vệ dữ liệu nhạy cảm và ngăn chặn truy cập trái phép.

Model Context Protocol: Cho phép sử dụng công cụ và nhận biết theo ngữ cảnh

MCP của Anthropic bổ sung cho A2A bằng cách tiêu chuẩn hóa cách các agent sử dụng công cụ và truy cập bối cảnh bên ngoài. Nó định nghĩa cách các agent có thể gọi API, gọi hàm và tích hợp với các hệ thống bên ngoài, cho phép họ tương tác với thế giới thực.

Trong khi A2A tập trung vào cách các agent giao tiếp với nhau, MCP tập trung vào cách các agent tương tác với môi trường của chúng. Cùng với nhau, hai giao thức này cung cấp một bản thiết kế toàn diện cho một hệ sinh thái agent được kết nối:

  • MCP trao quyền cho trí thông minh agent riêng lẻ bằng cách cung cấp quyền truy cập vào các công cụ và thông tin.
  • A2A cho phép trí thông minh tập thể bằng cách tạo điều kiện giao tiếp và cộng tác giữa các agent.

Sự cần thiết của một cơ sở hạ tầng truyền thông mạnh mẽ

Hãy tưởng tượng một công ty nơi nhân viên chỉ có thể giao tiếp thông qua các tin nhắn trực tiếp, một đối một. Việc chia sẻ các bản cập nhật sẽ yêu cầu nhắn tin cho từng người một cách riêng lẻ và việc điều phối các dự án trên nhiều nhóm sẽ liên quan đến việc chuyển tiếp thông tin theo cách thủ công giữa các nhóm. Khi công ty phát triển, cách tiếp cận này ngày càng trở nên hỗn loạn và không bền vững.

Tương tự, các hệ sinh thái agent được xây dựng trên các kết nối trực tiếp trở nên mong manh và khó mở rộng. Mỗi agent phải biết ai để nói chuyện, cách tiếp cận họ và khi nào họ sẵn sàng. Khi số lượng agent tăng lên, số lượng kết nối cần thiết tăng theo cấp số nhân, khiến hệ thống không thể quản lý được.

A2A và MCP cung cấp cho các agent ngôn ngữ và cấu trúc để giao tiếp và hành động, nhưng chỉ ngôn ngữ thôi là chưa đủ. Để điều phối một số lượng lớn các agent trên một doanh nghiệp, cần có một cơ sở hạ tầng mạnh mẽ để quản lý luồng tin nhắn và phản ứng của agent.

Apache Kafka và Apache Flink cung cấp cơ sở hạ tầng cần thiết để hỗ trợ giao tiếp và tính toán agent có khả năng mở rộng. Kafka đóng vai trò như một nền tảng truyền tải sự kiện phân tán, trong khi Flink là một công cụ xử lý luồng thời gian thực.

Kafka, ban đầu được phát triển tại LinkedIn, đóng vai trò như một bus tin nhắn bền bỉ, thông lượng cao, cho phép các hệ thống xuất bản và đăng ký các luồng sự kiện trong thời gian thực. Nó tách biệt các nhà sản xuất khỏi người tiêu dùng và đảm bảo rằng dữ liệu bền bỉ, có thể phát lại và có khả năng mở rộng. Kafka được sử dụng rộng rãi trong nhiều ứng dụng khác nhau, từ hệ thống tài chính đến phát hiện gian lận đến đường ống đo từ xa.

Flink, cũng là một dự án Apache, được thiết kế để xử lý sự kiện có trạng thái, thông lượng cao, độ trễ thấp. Trong khi Kafka xử lý việc di chuyển dữ liệu, Flink xử lý việc chuyển đổi, làm phongphú, giám sát và điều phối dữ liệu đó khi nó chảy qua một hệ thống.

Cùng với nhau, Kafka và Flink tạo thành một sự kết hợp mạnh mẽ: Kafka là dòng máu, và Flink là hệ thống phản xạ. Chúng cung cấp nền tảng để xây dựng các hệ sinh thái agent có khả năng mở rộng và phục hồi.

Giống như A2A đang nổi lên như HTTP của thế giới agent, Kafka và Flink tạo thành nền tảng hướng sự kiện có thể hỗ trợ giao tiếp và tính toán agent có khả năng mở rộng. Chúng giải quyết các vấn đề mà giao tiếp trực tiếp, điểm-điểm không thể:

  • Tách rời: Với Kafka, các agent không cần biết ai sẽ tiêu thụ đầu ra của họ. Chúng xuất bản các sự kiện (ví dụ: "TaskCompleted", "InsightGenerated") vào một chủ đề và bất kỳ agent hoặc hệ thống quan tâm nào có thể đăng ký.
  • Khả năng quan sát và khả năng phát lại: Kafka duy trì một bản ghi có độ bền cao, được sắp xếp theo thời gian của mọi sự kiện, làm cho hành vi của agent hoàn toàn có thể theo dõi, kiểm tra và phát lại.
  • Đưa ra quyết định theo thời gian thực: Flink cho phép các agent phản ứng trong thời gian thực đối với các luồng sự kiện, lọc, làm phong phú, tham gia hoặc kích hoạt các hành động dựa trên các điều kiện động.
  • Khả năng phục hồi và mở rộng quy mô: Các công việc Flink có thể mở rộng độc lập, phục hồi sau lỗi và duy trì trạng thái trên các quy trình làm việc dài hạn. Điều này rất cần thiết cho các agent thực hiện các tác vụ phức tạp, nhiều bước.
  • Điều phối gốc luồng: Thay vì chờ phản hồi đồng bộ, các agent có thể điều phối thông qua các luồng sự kiện, xuất bản các bản cập nhật, đăng ký các quy trình làm việc và tiến hành trạng thái một cách hợp tác.

Tóm lại:

  • A2A xác định cách các agent nói.
  • MCP xác định cách chúng hành động trên các công cụ bên ngoài.
  • Kafka xác định cách các tin nhắn của chúng chảy.
  • Flink xác định cách các luồng đó được xử lý, chuyển đổi và biến thành quyết định.

Stack bốn lớp cho AI Agent cấp doanh nghiệp

Các giao thức như A2A và MCP rất cần thiết để tiêu chuẩn hóa hành vi và giao tiếp của agent. Tuy nhiên, nếu không có một lớp nền hướng sự kiện như Kafka và một runtime gốc luồng như Flink, các agent này vẫn bị cô lập, không thể điều phối linh hoạt, mở rộng quy mô một cách duyên dáng hoặc lý luận theo thời gian.

Để hiện thực hóa đầy đủ tầm nhìn về các AI agent có khả năng tương tác, cấp doanh nghiệp, chúng ta cần một stack bốn lớp:

  1. Giao thức: A2A và MCP xác định cái gì của giao tiếp agent và sử dụng công cụ.
  2. Framework: LangGraph, CrewAI và ADK xác định cách triển khai agent và quản lý quy trình làm việc.
  3. Cơ sở hạ tầng nhắn tin: Apache Kafka hỗ trợ luồng tin nhắn và sự kiện giữa các agent.
  4. Tính toán thời gian thực: Apache Flink hỗ trợ suy nghĩ bằng cách xử lý và chuyển đổi các luồng dữ liệu trong thời gian thực.

Stack bốn lớp này đại diện cho stack internet mới cho AI agent, cung cấp một nền tảng để xây dựng các hệ thống không chỉ thông minh mà còn có tính cộng tác, có thể quan sát và sẵn sàng cho sản xuất.

Tiến tới một hệ sinh thái Agent được kết nối

Chúng ta đang ở một thời điểm quan trọng trong sự phát triển của phần mềm. Giống như stack internet ban đầu đã mở ra một kỷ nguyên kết nối toàn cầu mới, một stack mới đang nổi lên cho AI agent. Stack này được xây dựng cho các hệ thống tự động làm việc cùng nhau để lý luận, quyết định và hành động.

A2A và MCP cung cấp các giao thức cho giao tiếp agent và sử dụng công cụ, trong khi Kafka và Flink cung cấp cơ sở hạ tầng cho sự điều phối thời gian thực, khả năng quan sát và khả năng phục hồi. Cùng với nhau, chúng giúp có thể chuyển từ các bản demo agent bị ngắt kết nối sang các hệ sinh thái cấp sản xuất thông minh, có khả năng mở rộng.

Đây không chỉ là về việc giải quyết các thách thức kỹ thuật; đó là về việc cho phép một loại phần mềm mới nơi các agent cộng tác trên các ranh giới, cung cấp cái nhìn sâu sắc và luồng hành động trong thời gian thực, và cho phép trí thông minh trở thành một hệ thống phân tán.

Để hiện thực hóa tầm nhìn này, chúng ta cần xây dựng một cách cởi mở, có khả năng tương tác và ghi nhớ những bài học của cuộc cách mạng internet vừa qua. Lần tới khi bạn xây dựng một agent, đừng chỉ hỏi nó có thể làm gì. Hãy hỏi nó phù hợp với hệ thống lớn hơn như thế nào:

  • Nó có thể giao tiếp với các agent khác không?
  • Nó có thể điều phối hành động của mình với những người khác không?
  • Nó có thể phát triển và thích ứng với những thay đổi của hoàn cảnh không?

Tương lai không chỉ được cung cấp năng lượng bởi agent; nó được kết nối với agent.