Giáo sư Michigan tạo ngôn ngữ Jac giống Python dành cho AI agent

Công nghệ23 tháng 10, 2026·5 phút đọc

Giáo sư Jason Mars tại Đại học Michigan đã phát triển ngôn ngữ lập trình Jac cùng runtime Jaseci, coi AI và AI agent là thực thể hạng nhất. Jac được thiết kế để \"nuốt trọn\" các hệ sinh thái đa ngôn ngữ, giúp tiết kiệm chi phí chuyển đổi mã nguồn tốn kém và tối ưu hóa cho tác vụ agentic.

Giáo sư Michigan tạo ngôn ngữ Jac giống Python dành cho AI agent

Giáo sư Michigan tạo ngôn ngữ Jac giống Python dành cho AI agent

Hầu hết các ngôn ngữ lập trình hiện nay đều được viết cho lập trình viên con người, nhưng điều đó sắp thay đổi. Giáo sư Jason Mars tại Đại học Michigan đã phát triển một ngôn ngữ lập trình mang tên Jac cùng runtime Jaseci, xem AI và các AI agent như những thực thể hạng nhất (first-class entities). Ông đã trình diễn công cụ này tại hội nghị All Things Open diễn ra ở Raleigh, bang North Carolina (Mỹ) tuần này.

Vấn đề: Công cụ cũ không dành cho agent

Theo ông Mars, mọi công cụ chúng ta dùng để tạo phần mềm — từ ngôn ngữ lập trình đến các chuỗi công cụ build — đều được sinh ra trước kỷ nguyên AI tạo sinh và không phù hợp để hiểu nhu cầu của agent.

"Chúng ta không còn trực tiếp dùng những công cụ này nữa. Chúng ta dùng agent, và agent dùng những công cụ đó. Tôi không muốn công cụ mới cho con người, tôi muốn công cụ dành cho agent của mình."

Ông chỉ ra rằng các agent hiện đang bị nhấn chìm trong sự phức tạp của hệ sinh thái đa ngôn ngữ (polyglot). Ông dẫn chứng trường hợp Jarred Sumner, người tạo ra framework Bun, đã chi tới 165.000 USD tiền token Anthropic để chuyển mã nguồn Zig của Bun sang Rust bằng một phiên bản thử nghiệm của Mythos.

Theo lập luận của Mars, chi phí khổng lồ đó không đến từ độ phức tạp của công việc, mà từ việc mọi thứ phải được dịch qua lại giữa hai ngôn ngữ lập trình vốn được thiết kế cho con người.

Jac: ngôn ngữ "nuốt trọn" các hệ sinh thái

Theo lý thuyết của Mars, Jac là một kiểu ngôn ngữ lập trình mới được thiết kế để "nuốt trọn" các ngôn ngữ khác. Cụ thể, đây là ngôn ngữ có cú pháp giống Python, tích hợp cả runtime và chuỗi công cụ của TypeScript lẫn Python.

  • Biên dịch ra Python bytecode, JavaScript và mã máy gốc (native machine code)
  • Tận dụng đầy đủ mọi thư viện trong hệ sinh thái PyPI và npm
  • Tích hợp trình biên dịch LLVM để thực thi cơ chế kiểm tra mượn (borrow checking) và quyền sở hữu (ownership) kiểu Rust, mang lại an toàn bộ nhớ và hiệu năng cao
  • Có thể import trực tiếp thư viện C và C++ nhờ chính tích hợp LLVM
  • Sở hữu hàm "eject" — dịch ngược mã Jac thành TypeScript, Python hoặc C để đáp ứng yêu cầu tuân thủ của doanh nghiệp

Hiện tại, ngôn ngữ duy nhất chưa được hỗ trợ là Java. Như ông Mars nói đùa: "Nếu bạn thực sự cần Java, thì Jac không dành cho Java."

Hợp nhất kiến trúc bằng đồ thị dữ liệu

Không chỉ nhắm tới việc chấm dứt sự phân mảnh hệ sinh thái, Jac còn cố gắng thống nhất sự phân mảnh về kiến trúc bằng cách định nghĩa cấu trúc dữ liệu dưới dạng đồ thị (graph).

Thay vì tạo bảng cơ sở dữ liệu và đổ dữ liệu vào, hay tạo đối tượng từ class, các thuộc tính dữ liệu được định nghĩa dưới từ khóa node, còn quan hệ giữa các node được định nghĩa bằng các kết nối edge. Logic chương trình cục bộ vẫn có thể dùng đối tượng, nhưng dữ liệu cốt lõi sẽ là một đồ thị có thể nằm trong bộ nhớ cục bộ, ổ đĩa lưu trữ hoặc máy chủ đám mây.

Việc xây dựng đồ thị từ toàn bộ dữ liệu tốn công hơn so với tạo bảng và khóa ngoại, nhưng theo ông Mars, nó giúp agent tiết kiệm rất nhiều công sức về sau. Agent không còn phải đốt token để trích xuất dữ liệu từ cơ sở dữ liệu, object blob, chuỗi JSON hay đối tượng Python. Thay vào đó, agent có thể phái một "walker" đi xuyên qua cấu trúc dữ liệu và xử lý ngay trên đường đi. Nhiều walker có thể đi theo các nhánh khác nhau của đồ thị, tạo ra sự song song tự nhiên giúp thực thi nhanh hơn.

Jac so với LangGraph: kết quả thử nghiệm

Tại hội nghị, ông Mars đã tổ chức một cuộc so tài giữa Jac và LangGraph — framework điều phối agent dựa trên thư viện Python. Ông yêu cầu một AI agent dùng mỗi nền tảng để xây dựng bản sao của Greptile, một công cụ đánh giá mã nguồn bằng AI.

Kết quả: với Jac, agent tự động xây dựng được một ứng dụng đa tầng tinh vi có khả năng gọi nhiều công cụ song song. Với LangGraph, agent chỉ tạo ra một máy trạng thái tuyến tính thô sơ, không thể chạy song song — nhiều khả năng vì bị quá tải bởi lượng công cụ phải sử dụng.

Bài học mà Mars rút ra: chất lượng công cụ cung cấp cho AI quyết định chất lượng đầu ra.

Triển vọng thực tế

Đến nay, ngôn ngữ và runtime này đã được dùng trong một số dịch vụ AI thương mại quy mô nhỏ như nền tảng đa agent GraphClaw, bộ lập lịch Skooch và nền tảng ghi nhớ cá nhân của Tobu.

Liệu cộng đồng lập trình viên và các agent có đón nhận lời hứa của Jac như một ngôn ngữ hợp nhất hay không vẫn còn là câu hỏi mở. Tuy nhiên, rõ ràng nó đang tạo áp lực cạnh tranh đáng kể cho các framework agent viết bằng Python hiện có.

Đối với cộng đồng lập trình viên Việt Nam — những người thường xuyên làm việc với cả Python lẫn JavaScript/TypeScript trong các dự án AI — một ngôn ngữ hợp nhất như Jac có thể là hướng đi đáng theo dõi, đặc biệt khi chi phí token cho các tác vụ tái cấu trúc mã nguồn vẫn là gánh nặng thực tế với nhiều đội phát triển.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗