mcp-rb: Khi Ruby Bắt Tay AI Agent – Đơn Giản Hóa Giao Tiếp Giữa LLM và Thế Giới Bên Ngoài
Lê Lân
0
MCP-rb: Khai Phá Tiềm Năng AI Agents Với Ruby Và Model Context Protocol
Mở Đầu
Trong thời đại bùng nổ LLM (Large Language Models) như ChatGPT, việc tích hợp AI vào các công cụ và dịch vụ không còn là điều xa lạ. Tuy nhiên, sự đa dạng về triển khai giữa các LLM khiến việc phát triển các AI Agent trở nên phức tạp và thiếu đồng bộ.
Model Context Protocol (MCP) ra đời nhằm chuẩn hóa cách thức các AI Agent tương tác, vận hành các công cụ, tài nguyên bên ngoài một cách nhất quán. Trong khi các SDK tham khảo cho MCP đã có bằng TypeScript và Python, cộng đồng Ruby chưa có một công cụ tối ưu để phát triển AI Agent theo MCP. Chính vì vậy, mcp-rb - một SDK Ruby dành cho các Rubyist - được sáng tạo nhằm hỗ trợ phát triển AI Agent hiệu quả, linh hoạt bằng ngôn ngữ Ruby yêu thích.
Bài viết sẽ giới thiệu chi tiết về mcp-rb, cách thức sử dụng DSL đơn giản và trực quan để định nghĩa các Tool và Resource theo chuẩn MCP, so sánh với triển khai TypeScript, đồng thời chỉ ra những điểm còn thiếu và định hướng phát triển trong tương lai.
Giới Thiệu Về Model Context Protocol (MCP)
MCP Là Gì?
MCP là một giao thức nhằm chuẩn hóa và đơn giản hóa việc xây dựng các AI Agents – những thực thể AI có khả năng thao tác, điều khiển các công cụ và tài nguyên bên ngoài.
MCP giúp ẩn đi sự khác biệt kỹ thuật giữa các LLM, làm cho việc tương tác với thế giới bên ngoài trở nên đồng nhất và dễ dàng hơn.
Khái Niệm Cơ Bản: Tool và Resource
Tool: Có thể hiểu như các thao tác POST, là hành động mà agent có thể thực thi, ví dụ gọi API, gửi dữ liệu.
Resource: Giống như thao tác GET, là các nguồn tài nguyên AI có thể truy cập để đọc thông tin.
Mcp-rb cung cấp một DSL (Domain Specific Language) giúp định nghĩa các Tool và Resource một cách trực quan và dễ hiểu, lấy cảm hứng từ các framework Ruby nổi tiếng như Sinatra và graphql-ruby.
Đối với lập trình viên web service, việc hình dung Tool như lệnh POST và Resource như lệnh GET sẽ giúp nhanh chóng làm quen với MCP.
Cách Sử Dụng MCP-rb Với DSL Dễ Hiểu
Định Nghĩa Tool và Resource Với DSL Ruby
Dựa trên phong cách cú pháp Ruby, mcp-rb cho phép bạn định nghĩa một server MCP rất ngắn gọn:
require"mcp"
name "demo"
tool "greet"do
description "Greet someone by name"
argument :name, String, required:true, description:"Name to greet"
call { |args| "Hello, #{args[:name]}!" }
end
resource "hello://world"do
name "Hello World"
description "A simple hello world message"
mime_type "text/plain"
call { "Hello, World!" }
end
Các thành phần chính:
name: Đặt tên cho server MCP.
tool: Định nghĩa một hành động với tên, mô tả, và các tham số.
resource: Khai báo một tài nguyên với URI và nội dung trả về.
argument: Định nghĩa tham số đi kèm với kiểu dữ liệu và yêu cầu bắt buộc.
call: Khối thực hiện xử lý khi tool hoặc resource được gọi.
So Sánh Với Vai Dụ TypeScript
Đặc điểm
TypeScript
Ruby (mcp-rb)
Cú pháp
Phức tạp, cần khai báo kiểu dữ liệu tường minh
Ngắn gọn, Ruby-like, dễ đọc
Hệ thống type
Rất mạnh, sử dụng
zod
để kiểm tra schema
Hiện tại chưa mạnh bằng, thiếu tính năng loại tường minh
Khởi tạo server
Câu lệnh phức tạp với class và builder pattern
Đơn giản, theo kiểu DSL trực quan
Định nghĩa tools/resources
Cần gọi hàm với tham số
Định nghĩa trực tiếp trong block DSL
Ưu điểm của mcp-rb là đơn giản hóa tiến trình phát triển AI Agent bằng Ruby, giúp các lập trình viên có thể nhanh chóng xây dựng và chạy thử nghiệm.
Cài Đặt MCP-rb
Chỉ với một câu lệnh đơn giản để tích hợp:
bundle add mcp-rb
Bạn có thể bắt đầu tạo các công cụ và tài nguyên theo chuẩn MCP ngay lập tức.
Những Hạn Chế Và Định Hướng Phát Triển Của MCP-rb
Điểm Chưa Đầy Đủ Hiện Tại
Hệ thống kiểu dữ liệu chưa mạnh mẽ, không thể so sánh với các SDK chính thức của MCP viết bằng TypeScript.
Định nghĩa resource động (như resource URI có biến) chưa được hỗ trợ đầy đủ.
Một số tính năng nâng cao khác trong MCP hiện chưa được triển khai.
Tuy nhiên, mcp-rb đã được ứng dụng thành công trong dự án Cosense - một Wiki service của Nhật, hoạt động ổn định với LLM Claude và mang lại trải nghiệm sử dụng hiệu quả.
Kêu Gọi Tham Gia Cộng Đồng
Mcp-rb là dự án mã nguồn mở, được phát hành dưới giấy phép MIT, khuyến khích các lập trình viên Ruby đóng góp, cải tiến qua các Pull Request.
Mcp-rb mở ra một hướng đi mới cho các Rubyist trong lĩnh vực AI Agents, tận dụng sức mạnh của Model Context Protocol để phát triển các công cụ và tài nguyên AI một cách chuẩn hóa, thân thiện với lập trình viên.
Việc ứng dụng MCP giúp các AI Agents vận hành nhất quán, dễ dàng tích hợp nhiều LLM khác nhau mà không bị rối loạn bởi sự khác biệt kỹ thuật.
Nếu bạn là lập trình viên Ruby quan tâm đến AI, hãy thử trải nghiệm MCP-rb, tận dụng vốn kỹ thuật và kiến thức Ruby của bạn để góp phần phát triển thế hệ AI Agent mới.