LinkedIn chia sẻ kiến trúc nền tảng cho các tác nhân AI và công cụ MCP
Karthik Ramgopal và Prince Valluri từ LinkedIn thảo luận về việc sử dụng AI như một mô hình thực thi mới cho kỹ thuật quy mô lớn. Bài viết trình bày cách xây dựng các abstraction nền tảng cho điều phối, ngữ cảnh có cấu trúc và công cụ an toàn như MCP, cùng những kiến trúc thực tế từ các tác nhân mã hóa, quan sát và kiểm thử UI.

Tại hội nghị QCon AI, Karthik Ramgopal và Prince Valluri từ LinkedIn đã có một bài thuyết trình sâu sắc về cách mạng hóa kỹ thuật quy mô lớn thông qua AI. Với hơn 1,3 tỷ thành viên và hàng nghìn kho lưu trữ mã nguồn, LinkedIn đối mặt với thách thức lớn trong việc duy trì hiệu quả kỹ thuật. Giải pháp của họ không chỉ là áp dụng AI vào từng công việc riêng lẻ, mà là biến AI thành một mô hình thực thi (execution model) mới, được hỗ trợ bởi một nền tảng vững chắc.
AI Multi-Agentic Tools
AI là mô hình thực thi mới trong kỹ thuật
Theo Karthik và Prince, phần khó nhất của kỹ thuật hiện nay không phải là viết mã, mà là viết đúng mã và điều phối giữa các công cụ, hệ thống khác nhau. Trước đây, con người phải tự kết nối mọi thứ thủ công. Giờ đây, với sự hỗ trợ của AI, chúng ta chuyển sang mô hình con người biểu đạt ý định (intent) và hệ thống thực thi ý định đó.
Quy trình này bao gồm 5 bước chính:
- Intent (Ý định): Con người xác định rõ ràng những gì cần thay đổi, sửa chữa hoặc di chuyển.
- Plan (Kế hoạch): Hệ thống dịch ý định thành các bước luồng công việc chi tiết.
- Execution (Thực thi): Điều phối, quản lý môi trường và quản trị.
- Validation (Xác thực): Xây dựng lòng tin thông qua kiểm tra, phân tích tĩnh và các biện pháp an toàn.
- Output (Kết quả): Tạo ra các phản hồi hoặc hiện vật có thể xem xét (như Pull Request) với đầy đủ khả năng truy xuất nguồn gốc.
LinkedIn tập trung áp dụng mô hình này vào các lĩnh vực: Phát triển (viết mã, di chuyển, kiểm thử), Vận hành (triển khai, độ tin cậy), Truy xuất thông tin (tìm kiếm mã, phân tích) và Xử lý sự cố.
Tránh bẫy triển khai phân mảnh
Một sai lầm phổ biến là để từng đội ngũ tự xây dựng giải pháp AI của riêng mình, dẫn đến hàng trăm triển khai mong manh và thiếu nhất quán. Thay vào đó, LinkedIn cho rằng việc kích hoạt AI phải là trách nhiệm của nền tảng (platform responsibility).
Họ xác định ba yếu tố chung cần thiết cho mọi quy trình do tác nhân AI điều khiển:
- Điều phối (Orchestration): Cần một xương sống thực thi đáng tin cậy với thời gian chạy tiêu chuẩn, lập lịch, thử lại và khả năng yêu cầu sự trợ giúp từ con người.
- Công cụ và Ngữ cảnh (Tools & Context): Tác nhân chỉ tốt bằng ngữ cảnh và công cụ được cung cấp. Chúng cần quyền truy cập nhất quán vào kiến thức kỹ thuật và các công cụ được thiết kế an toàn để máy gọi.
- Đánh giá (Evaluations): Kiểm tra liên tục, phát hiện hồi quy và khả năng truy xuất đầy đủ là bắt buộc để xây dựng lòng tin.
Lớp Điều phối (Orchestration Layer)
Để đảm bảo tính nhất quán, LinkedIn sử dụng một lớp điều phối tập trung. Khi một tác nhân mã hóa chạy, quy trình sẽ diễn ra như sau:
- Nhà phát triển gửi một đặc tả (spec) qua chat hoặc API.
- Bộ điều phối khởi tạo một sandbox với danh tính, quyền hạn và môi trường thực thi nhất quán.
- Tác nhân phân tích mã, cập nhật tệp, chạy kiểm tra và sửa lỗi.
- Mọi trạng thái được lưu liên tục để xử lý thử lại hoặc khôi phục.
- Tác nhân tương tác với các hệ thống bên ngoài thông qua các công cụ được cấp phép, và mọi cuộc gọi công cụ đều được ghi log để kiểm toán.
Cách tiếp cận này đảm bảo rằng cùng một ý định sẽ tạo ra cùng một kết quả, bất kể thời gian hay môi trường thực thi.
Vai trò của MCP và Lớp Công cụ (Tooling Layer)
Công cụ là nơi thực sự thực hiện công việc. LinkedIn nhấn mạnh tầm quan trọng của các lược đồ (schemas) và tính dự đoán. Tác nhân không nên đoán mò; chúng cần đầu vào/ra có cấu trúc.
Một bước tiến quan trọng trong lĩnh vực này là MCP (Model Context Protocol) của Anthropic. MCP cho phép khai báo các công cụ tiếp xúc một cách dễ dàng và dự đoán được.
- Độc lập mô hình: Các tác nhân khác nhau sử dụng các mô hình khác nhau đều có thể dùng cùng một bộ công cụ mà không bị khóa vào một định dạng cụ thể.
- Khả năng hơn là hàm số: MCP coi công cụ là các khả năng đi kèm với quyền hạn, logic thử lại và xác thực lược đồ.
Các ví dụ về công cụ bao gồm công cụ tìm kiếm mã ngữ nghĩa, công cụ quan sát (logs, metrics), và công cụ kiến thức (lịch sử PR, kiến trúc hệ thống).
Ngữ cảnh và Bộ nhớ (Context & Memory)
Tác nhân AI cần được "neo" vào thực tế kỹ thuật để tránh ảo giác. LinkedIn cung cấp ngữ cảnh từ nhiều nguồn: mã nguồn, dependencies, lịch sử thay đổi mã, và quyền sở hữu.
Họ cũng phân loại bộ nhớ để giúp tác nhân thông minh hơn theo thời gian:
- Bộ nhớ làm việc (Working memory): Ngắn hạn, cụ thể theo nhiệm vụ.
- Bộ nhớ dài hạn (Long-term memory): Nơi lưu trữ các bài học đã được xác thực (ví dụ: mẫu di chuyển nào hoạt động tốt).
- Bộ nhớ tập thể (Collective memory): Chia sẻ trên tất cả các tác nhân và đội ngũ, chứa các mẫu và quy trình tốt nhất của tổ chức.
Các tác nhân thực tế tại LinkedIn
LinkedIn đã triển khai nhiều tác nhân AI vào quy trình thực tế của mình:
- Tác nhân mã hóa nền (Background Coding Agent): Chạy không đồng bộ dựa trên đặc tả kỹ thuật. Nó có thể xử lý các tác vụ lặp đi lặp lại như nâng cấp phiên bản thư viện trên hàng trăm kho lưu trữ, tạo ra các Pull Request có đầy đủ dấu vết kiểm toán.
- Tác nhân quan sát (Observe Agent): Được kích hoạt bởi các cảnh báo (alerts) ở chế độ nearline. Nó giúp giảm gánh nặng cho nhân viên trực vận hành (on-call) bằng cách tổng hợp thông tin từ nhiều hệ thống và cung cấp cái nhìn lịch sử về các sự cố tương tự.
- Tác nhân QA UI: Với kiến trúc UI do máy chủ điều khiển (server-driven UI), việc viết mã kiểm thử truyền thống là rất khó. Tác nhân này sử dụng ngôn ngữ tự nhiên để mô tả các trường hợp kiểm thử chức năng và chạy định kỳ để phát hiện các lỗi hồi quy trên iOS, Android và Web.
- Tác nhân phân tích (Analytics Agent): Một chatbot trực tuyến cung cấp đầu ra đa phương thức (văn bản, biểu đồ) để giúp các kỹ sư, quản lý sản phẩm và vận hành phân tích dữ liệu nhanh hơn.
Bài học kinh nghiệm
Từ kinh nghiệm thực tế, LinkedIn đúc kết một số phương pháp tốt nhất:
- Mô tả nhu cầu một cách rõ ràng: Viết đặc tả rõ ràng, bắt đầu bằng cấu trúc để tránh tác nhân đoán mò.
- Đầu tư vào abstraction nền tảng: Đừng giải quyết cùng một vấn đề nhiều lần. Hãy xây dựng abstraction cho điều phối, ngữ cảnh và gọi công cụ.
- Xây dựng thông minh: Tận dụng mã nguồn mở, các giao thức mở và các hệ thống hiện có. Cân nhắc mua hoặc mở rộng (ví dụ: mở rộng GitHub Copilot với MCP) thay vì xây dựng từ đầu.
- Giữ con người trong vòng lặp (Human-in-the-loop): Con người vẫn chịu trách nhiệm ra quyết định, phê duyệt và đào tạo hệ thống.
Chuyển đổi sang AI không chỉ là thay thế con người, mà là trao quyền cho hệ thống thực thi các tác vụ cơ bản trong khi con người tập trung vào ý định và phán xét.
