Kiến trúc nổi bật cho AI Agents: A2A, MCP...

Phong cảnh kỹ thuật số đang phát triển vượt xa việc duyệt web lấy con người làm trung tâm, đến một lĩnh vực của các tác nhân tự động cộng tác liền mạch trên các hệ thống đa dạng. Sự thay đổi này đòi hỏi một cơ sở hạ tầng mới, và một giải pháp hấp dẫn đang hình thành, bao gồm bốn thành phần nguồn mở chính.

  • Agent2Agent (A2A) của Google: Một giao thức được thiết kế để tạo điều kiện cho việc khám phá và tương tác giữa các tác nhân.
  • Model Context Protocol (MCP) của Anthropic: Một tiêu chuẩn xác định cách các tác nhân sử dụng các công cụ và dữ liệu ngữ cảnh bên ngoài.
  • Apache Kafka: Một xương sống truyền thông hướng sự kiện mạnh mẽ cho phép điều phối đáng tin cậy và tách rời.
  • Apache Flink: Một công cụ xử lý thời gian thực, rất quan trọng để làm phong phú, giám sát và hành động dựa trên các luồng hoạt động của tác nhân.

Bài viết này khám phá các mối quan hệ hiệp đồng giữa các công nghệ này, làm nổi bật những hạn chế của việc chỉ dựa vào các giao thức và chứng minh cách kiến trúc này đặt nền móng cho việc chuyển đổi từ các bot bị cô lập sang các hệ sinh thái tác nhân thông minh, năng động.

Sự gia tăng dự kiến của các tác nhân AI trong các tổ chức cho thấy rằng hầu hết các công ty sẽ triển khai nhiều tác nhân chuyên biệt hơn là một tác nhân bao trùm duy nhất. Các tác nhân này sẽ tự động hóa các tác vụ như tạo mã, quản lý phiếu hỗ trợ, phân tích dữ liệu khách hàng, giới thiệu nhân viên và giám sát cơ sở hạ tầng.

Tuy nhiên, các công cụ hiện tại không đủ để hỗ trợ một tương lai như vậy.

Thách thức vượt ra ngoài vấn đề ‘đảo tác nhân’, nơi các tác nhân hoạt động trong các silo và thiếu khả năng giao tiếp. Nó bao gồm một sự phân mảnh hệ sinh thái rộng lớn hơn:

  • Thiếu giao tiếp giữa các tác nhân: Các tác nhân thường hoạt động trong môi trường bị cô lập. Một tác nhân quản lý quan hệ khách hàng (CRM) không biết về những hiểu biết sâu sắc do một tác nhân kho dữ liệu thu được. Một tác nhân hỗ trợ không thể phản hồi các bất thường được phát hiện bởi một tác nhân giám sát.
  • Sử dụng công cụ tùy chỉnh và dễ vỡ: Nếu không có các phương pháp tiêu chuẩn để truy cập các công cụ hoặc giao diện lập trình ứng dụng (API) bên ngoài, các tác nhân phải dựa vào các tích hợp được mã hóa cứng và logic không thể tái sử dụng.
  • Các khung không nhất quán: Các thời gian chạy tác nhân khác nhau sử dụng các mô hình đa dạng, coi các tác nhân là chatbot, đồ thị acyclic có hướng (DAG) hoặc các trình lập kế hoạch đệ quy. Điều này dẫn đến việc không có lớp thực thi di động hoặc trạng thái được chia sẻ.
  • Thiết kế tập trung vào môi trường Notebook: Nhiều tác nhân được phát triển dưới dạng các nguyên mẫu một lần, được đặc trưng bởi các hoạt động tuyến tính, đồng bộ và phù du. Tuy nhiên, các hệ thống trong thế giới thực đòi hỏi khả năng xử lý mạnh mẽ các lần thử lại, lỗi, điều phối, ghi nhật ký và mở rộng quy mô, điều này đòi hỏi một cơ sở hạ tầng hỗ trợ.
  • Không có xương sống cộng tác: Không có bus sự kiện, bộ nhớ dùng chung hoặc lịch sử có thể theo dõi các hoạt động và lý do của tác nhân. Thông tin được giới hạn trong các cuộc gọi HTTP trực tiếp hoặc chôn vùi trong nhật ký.

Như đã nhấn mạnh bởi dự án 12-Factor Agents, các tác nhân nên tuân thủ các nguyên tắc gốc trên đám mây, thể hiện khả năng quan sát, ghép nối lỏng lẻo, khả năng tái tạo và nhận biết cơ sở hạ tầng. Thật không may, phần lớn được xây dựng dưới dạng các tập lệnh dễ vỡ, được lắp ráp thủ công và được cho là hoạt động độc lập.

Điều này dẫn đến sự kém hiệu quả, trùng lặp nỗ lực và tính dễ vỡ.

Agent2Agent giải quyết một phần vấn đề này bằng cách cung cấp cho các tác nhân một giao thức tiêu chuẩn để khám phá và giao tiếp. Tuy nhiên, việc chuyển đổi vượt ra ngoài các trình diễn hời hợt sang khả năng mở rộng và độ tin cậy mà các hệ thống sản xuất yêu cầu đòi hỏi nhiều hơn là chỉ các giao thức. Nó đòi hỏi một cơ sở hạ tầng toàn diện.

Hệ sinh thái tác nhân hiện tại phản ánh các giai đoạn đầu của web, được đặc trưng bởi các hệ thống mạnh mẽ nhưng bị cô lập và không tương thích. Tương tự như những thách thức ban đầu mà các trình duyệt phải đối mặt khi giao tiếp với các máy chủ mà không có giao thức tiêu chuẩn, các tác nhân AI ngày nay phải vật lộn để khám phá, giao tiếp và cộng tác với nhau một cách hiệu quả.

Agent2Agent (A2A) của Google: Một giao thức phổ quát cho giao tiếp giữa các tác nhân

Giao thức A2A của Google là một nỗ lực quan trọng để giải quyết vấn đề này. Nó tự phân biệt mình bằng cách không phải là một khung tác nhân khác, mà là một giao thức phổ quát được thiết kế để kết nối bất kỳ tác nhân nào, bất kể nguồn gốc hoặc môi trường triển khai của nó.

Tương tự như cách HTTP tiêu chuẩn hóa giao tiếp trang web, A2A xác định một ngôn ngữ chung cho các tác nhân, cho phép họ:

  • Thông báo khả năng: Thông qua một AgentCard, một bộ mô tả JSON phác thảo các khả năng và phương pháp tương tác của tác nhân.
  • Gửi và nhận tác vụ: Thông qua các tương tác có cấu trúc sử dụng JSON-RPC, nơi một tác nhân yêu cầu hỗ trợ và một tác nhân khác trả lời bằng kết quả hoặc ‘hiện vật’.
  • Cập nhật luồng với Server-Sent Events (SSEs): Tạo điều kiện cho phản hồi theo thời gian thực trong các tác vụ dài hoặc hợp tác.
  • Trao đổi nội dung phong phú: Hỗ trợ trao đổi tệp, dữ liệu có cấu trúc và biểu mẫu, vượt ra ngoài văn bản đơn giản.
  • Duy trì bảo mật theo mặc định: Tích hợp hỗ trợ tích hợp cho HTTPS, xác thực và quyền.

Điểm mạnh của A2A nằm ở việc tránh phát minh lại các giải pháp đã được thiết lập. Nó tận dụng các tiêu chuẩn web đã được thiết lập tốt, tương tự như HTTP và SMTP, tạo điều kiện cho việc áp dụng dễ dàng hơn và tích hợp nhanh hơn.

Tuy nhiên, A2A chỉ đại diện cho một khía cạnh của giải pháp tổng thể.

Model Context Protocol (MCP) của Anthropic: Tiêu chuẩn hóa việc sử dụng công cụ và quyền truy cập ngữ cảnh

MCP của Anthropic giải quyết khía cạnh quan trọng về cách các tác nhân sử dụng các công cụ và truy cập thông tin ngữ cảnh. MCP tiêu chuẩn hóa quy trình mà các tác nhân gọi API, gọi các hàm và tích hợp với các hệ thống bên ngoài, về cơ bản xác định cách chúng hoạt động trong môi trường của chúng. Trong khi A2A quản lý giao tiếp giữa các tác nhân, MCP tập trung vào sự tương tác của tác nhân với thế giới bên ngoài.

Về bản chất:

  • MCP trao quyền cho trí thông minh của từng tác nhân.
  • A2A cho phép trí thông minh tập thể.

Tương tự như cách HTTP và SMTP yêu cầu áp dụng, cơ sở hạ tầng và công cụ phát triển rộng rãi để đạt được thành công rộng rãi, A2A và MCP sẽ yêu cầu một hệ sinh thái mạnh mẽ để hiện thực hóa đầy đủ tiềm năng của chúng.

Ngay cả với các nỗ lực tiêu chuẩn hóa như A2A và MCP, một câu hỏi quan trọng vẫn tồn tại: Làm thế nào để giao tiếp giữa các tác nhân có thể được mở rộng hiệu quả trên các môi trường doanh nghiệp phức tạp và năng động? Việc chỉ dựa vào các kết nối trực tiếp, điểm-điểm được xác định bởi các giao thức này sẽ gây ra những thách thức liên quan đến khả năng mở rộng, khả năng phục hồi và khả năng quan sát. Điều này làm nổi bật sự cần thiết của một cơ sở hạ tầng truyền thông cơ bản mạnh mẽ.

Hãy xem xét 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. Chia sẻ một bản cập nhật sẽ yêu cầu nhắn tin cho từng cá nhân riêng biệt. Điều phối một dự án trên nhiều nhóm sẽ liên quan đến việc chuyển tiếp thông tin thủ công giữa mỗi nhóm.

Việc mở rộng một hệ thống như vậy cho hàng trăm nhân viên sẽ dẫn đến sự hỗn loạn.

Kịch bản này phản ánh những thách thức mà các hệ sinh thái tác nhân phải đối mặt được xây dựng trên các kết nối trực tiếp. Mỗi tác nhân phải biết những tác nhân nào cần liên hệ, cách tiếp cận chúng và tính khả dụng của chúng. Khi số lượng tác nhân tăng lên, số lượng kết nối cần thiết tăng theo cấp số nhân, dẫn đến một hệ thống dễ vỡ, khó quản lý và không thể mở rộng.

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

Apache Kafka và Apache Flink cung cấp cơ sở hạ tầng quan trọng này.

Apache Kafka, ban đầu được phát triển tại LinkedIn và hiện là một dự án của Apache Software Foundation, là một nền tảng truyền phát sự kiện phân tán. Nó hoạt động như một bus tin nhắn có độ bền cao, 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 theo thời gian thực. Kafka được sử dụng rộng rãi trong nhiều ứng dụng khác nhau, bao gồm các hệ thống tài chính, phát hiện gian lận và đường ống đo từ xa, do khả năng tách rời nhà sản xuất khỏi người tiêu dùng và đảm bảo độ bền, khả năng phát lại và khả năng mở rộng của dữ liệu.

Flink, một dự án Apache khác, là một công cụ xử lý luồng thời gian thực đượ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 quản lý việc di chuyển dữ liệu, Flink xử lý việc chuyển đổi, làm phong phú, giám sát và điều phối dữ liệu khi nó chảy qua một hệ thống.

Cùng nhau, Kafka và Flink tạo thành một sự kết hợp mạnh mẽ. Kafka đóng vai trò là dòng máu, trong khi Flink hoạt động như hệ thống phản xạ.

Tương tự như vai trò của A2A là HTTP của thế giới tác nhân, Kafka và Flink cung cấp một nền tảng hướng sự kiện để giao tiếp và tính toán tác nhân có thể mở rộng, giải quyết những thách thức mà giao tiếp trực tiếp, điểm-điểm không thể:

  • Tách rời: Với Kafka, các tác nhân không cần biết người tiêu dùng đầu ra của họ. Chúng xuất bản các sự kiện (ví dụ: "TaskCompleted", "InsightGenerated") lên một chủ đề, cho phép bất kỳ tác nhân hoặc hệ thống quan tâm nào đăng ký.
  • Khả năng quan sát và khả năng phát lại: Kafka duy trì nhật ký lâu dài, được sắp xếp theo thời gian của tất cả các sự kiện, đảm bảo rằng hành vi của tác nhân có thể theo dõi, kiểm tra và phát lại hoàn toàn.
  • Ra quyết định theo thời gian thực: Flink cho phép các tác nhân phản ứng theo thời gian thực với các luồng sự kiện, lọc, làm phong phú, kết hợp 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 quy mô độc lập, phục hồi sau lỗi và duy trì trạng thái trên các quy trình công việc dài hạn, điều này rất cần thiết cho các tác nhân 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ờ đợi các phản hồi đồng bộ, các tác nhân 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ý quy trình công việc và cùng nhau tiến hành trạng thái.

Tóm lại:

  • A2A xác định cách các tác nhân giao tiếp.
  • MCP xác định cách chúng tương tác với các công cụ bên ngoài.
  • Kafka xác định cách tin nhắn của chúng luân chuyển.
  • Flink xác định cách các luồng đó được xử lý, chuyển đổi và sử dụng để đưa ra quyết định.

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

Kiến trúc bốn lớp cho các tác nhân AI cấp doanh nghiệp

Để hiện thực hóa đầy đủ tầm nhìn về các tác nhân AI tương tác, cấp doanh nghiệp, cần có kiến trúc bốn lớp:

  • Giao thức: A2A, MCP – xác định cái gì.
  • Khung: LangGraph, CrewAI, ADK – xác định cách.
  • Cơ sở hạ tầng nhắn tin: Apache Kafka – hỗ trợ luồng.
  • Tính toán thời gian thực: Apache Flink – hỗ trợ suy nghĩ.

Cùng nhau, các lớp này tạo thành ngăn xếp internet mới cho các tác nhân AI, 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ó khả năng cộng tác, quan sát và sẵn sàng sản xuất.

Chúng ta hiện đang ở một thời điểm quan trọng trong quá trình phát triển của phần mềm.

Giống như ngăn xếp internet ban đầu – bao gồm các giao thức như HTTP và SMTP và cơ sở hạ tầng như TCP/IP – đã mở ra một kỷ nguyên kết nối toàn cầu, một ngăn xếp mới đang nổi lên cho các tác nhân AI. Tuy nhiên, thay vì con người điều hướng các trang web hoặc gửi email, ngăn xếp này được thiết kế cho các hệ thống tự trị cộng tác để suy luận, quyết định và hành động.

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

Sự phát triển này không chỉ là giải quyết các thách thức kỹ thuật. Đó là về việc cho phép một mô hình phần mềm mới, nơi các tác nhân cộng tác trên các ranh giới, cung cấp thông tin chi tiết và thúc đẩy các hành động trong thời gian thực, do đó cho phép trí thông minh trở thành một hệ thống phân tán.

Tuy nhiên, tầm nhìn này đòi hỏi sự phát triển tích cực, nhấn mạnh tính cởi mở, khả năng tương tác và tận dụng các bài học kinh nghiệm từ cuộc cách mạng internet trước đó.

Do đó, khi phát triển một tác nhân, điều quan trọng là phải xem xét sự tích hợp của nó trong hệ thống rộng lớn hơn. Nó có thể giao tiếp hiệu quả không? Nó có thể phối hợp với các tác nhân khác không? Nó có thể phát triển và thích ứng với các điều kiện thay đổi không?

Tương lai không chỉ được hỗ trợ bởi tác nhân; nó được kết nối bằng tác nhân.