A Song of Types and Agents
AI Engineer World's Fair 2026: Online Track · Video gốc
Vì sao TypeScript vượt Python trên GitHub và đang chiếm application layer của AI agent: coding agents, npm, một codebase, Zod end-to-end.
1. Một bản ca về ngai vàng của AI

Roberto mở đầu bằng lời cảm ơn người nghe, rồi giới thiệu rằng hôm nay anh sẽ kể "bản ca về types và agents" này. Về cơ bản, đây là một bản ca nói về các ngôn ngữ lập trình đánh nhau để giành lấy ngai vàng trong vương quốc AI, và về lý do anh nghĩ rằng TypeScript có thể thực sự đang thắng cuộc chiến đó.
Nhưng hãy bắt đầu từ đầu. Vài năm trước, bất cứ ai build thứ gì trong AI thì gần như chắc chắn đang dùng Python. Chuyện đó không có gì phải bàn cãi. Mọi ngôn ngữ khác đều cúi đầu trước Python, vì Python thống trị (dominion) cả thế giới AI.

2. Book I, The Iron King: Python lên đỉnh
Rồi tới năm 2022, ChatGPT ra mắt. Mọi người bắt đầu tự hỏi, và dần hiểu ra, rằng AI đang trở thành một thứ lớn hơn. Nó đang bước ra khỏi cái bong bóng mà nó đã sống trong suốt nhiều năm, để trở thành một thứ tham vọng hơn. Và cùng với nó, Python, ngôn ngữ tiêu chuẩn của AI, cũng trở nên tham vọng hơn.

Đó là cách mà vào năm 2024, Python leo lên bậc thang và trở thành ngôn ngữ phổ biến nhất trên GitHub. Ai cũng vui: Python cuối cùng đã chạm tới đỉnh.

Nhưng họ đâu có biết rằng đang có một kẻ tranh ngôi khác. Một kẻ tranh ngôi đang trỗi dậy để thách thức quyền của Python đối với ngai vàng. Và kẻ đó, như bạn có lẽ đã đoán ra, chính là TypeScript.

3. Roberto Stagi là ai
Trước khi nói tiếp về TypeScript, Roberto tự giới thiệu. Anh là CTO và co-founder của Ratel, một context layer cho AI agents. Anh cũng là EU ambassador của AI Socratic, một cộng đồng toàn cầu của những người build AI, gặp nhau mỗi tháng một lần để bàn về những tin mới nhất trong AI.
Anh còn là một developer JavaScript lâu năm, về sau chuyển sang TypeScript. Và về cơ bản, đó là lý do hôm nay anh đứng đây nói về TypeScript.

4. Book II, The Shift in the Stack: AI đi lên application layer
Vậy là bắt đầu. Như đã nói, AI bắt đầu đi lên trên stack. Nó dịch chuyển từ tầng infrastructure của các model, của machine learning và cả hệ sinh thái quanh đó, lên tới application layer.
Điều đó có nghĩa là AI không còn là thứ bạn train nữa. Nó trở thành thứ bạn ship bên trong ứng dụng của mình. Các ứng dụng bắt đầu có tính năng AI, có những feature chạy bằng AI. Nói cách khác, chúng ta bắt đầu có những ứng dụng biết suy nghĩ.

Và application layer thì không phải của Python. Application layer đã thuộc về TypeScript từ khá lâu rồi.

Roberto nói rõ: đừng hiểu sai ý anh. Anh vẫn nghĩ Python có chỗ đứng riêng của nó. Anh vẫn nghĩ "bộ não" của agent, và của cả thế giới AI, thực ra vẫn do Python nắm giữ. Toàn bộ phần training, research, GPU serving đều là của Python. Nó đã là của Python từ đầu, và sẽ còn là của Python trong một thời gian dài nữa.

Thứ đang thay đổi là application layer. Vài năm trước, nếu bạn muốn build một thứ có AI tích hợp sẵn trong ứng dụng, bạn buộc phải dùng Python. Còn ngày nay thì không còn như vậy nữa, và toàn bộ sự dịch chuyển (shift) nằm ở chỗ đó. TypeScript không chỉ sở hữu UI hay back end. Nó đã bắt đầu sở hữu cả agentic layer của ứng dụng.
5. Book III, The Overtake: tháng 8/2025 TypeScript vượt Python
Đó là lý do vào tháng 8 năm 2025, TypeScript đã vượt Python để trở thành ngôn ngữ được dùng nhiều nhất trên GitHub.

Điều buồn cười là lý do mà báo cáo của GitHub đưa ra vẫn y như cũ. Năm 2024, báo cáo nói "AI leads Python to top language", còn năm 2025 thì nói "AI leads TypeScript to #1". Và trong cả hai lần, như bạn thấy, số developer toàn cầu đều đang tăng vọt. Năm 2025, thậm chí cứ mỗi giây lại có một developer mới gia nhập GitHub.

Vậy rốt cuộc trong năm đó điều gì đã thay đổi? Đúng là chúng ta bị ngập trong developer mới. Năm 2024, những người mới đến này, hoặc có khi cả những developer sẵn có, với tay tới Python. Còn năm 2025 thì họ với tay tới TypeScript.

6. Điều gì đã đổi: coding agents grew up
Thứ thay đổi giữa 2024 và 2025, theo Roberto, chính là coding agents. Các coding agent đã trưởng thành. Chúng ta thấy những người chơi lớn tự khẳng định vị trí của mình, như Lovable, Claude Code, Cursor, Codex. Chúng trở thành cách mặc định để build ứng dụng. Và ngôn ngữ mặc định mà các coding agent này dùng để build ứng dụng chính là TypeScript.

Thêm nữa, ngày nay gần như mọi ứng dụng mới đều là một agent, vì chúng ship kèm những khả năng AI và agentic. Chúng "đói", chúng muốn nhúng AI vào bên trong mình. Nhu cầu tích hợp AI ngày càng nhiều đó không rơi vào Python. Nó rơi vào TypeScript.

Và gần như mọi công cụ chúng ta đang dùng để build AI ngày nay đều đã chạy trên TypeScript. Chúng ta thậm chí đã thấy một AI lab mua lại một JavaScript runtime: tháng 12 vừa rồi, Anthropic mua lại Bun.
7. Câu hỏi thật lòng: build agent bằng TypeScript có hợp lý không?
Dù vậy, được rồi, ai cũng đang dùng TypeScript vì coding agents, và nhu cầu nhúng AI vào ứng dụng TypeScript ngày càng nhiều. Nhưng điều đó có nghĩa là chúng ta nên làm vậy không? Roberto gọi đây là một câu hỏi công bằng. Một câu hỏi thật lòng, và đáng được trả lời. Slide Book IV, "The Bannermen", đặt nó thẳng ra: "But does building AI agents in TypeScript actually make sense?"
Theo ý kiến của anh, câu trả lời có thể là có, vì nhiều lý do.
Lý do thứ nhất: vì TypeScript là ngôn ngữ mặc định của coding agents hiện nay, ta có thể kỳ vọng chúng sẽ ngày càng giỏi TypeScript hơn. Lý do là chúng ta đang có ngày càng nhiều ứng dụng viết bằng TypeScript, và chính những ứng dụng đó sẽ nuôi (feed) quá trình training của các coding agent thế hệ sau. Rồi chúng ta còn có những tích hợp sâu hơn, native hơn từ các coding agent này tới TypeScript. Nên có thể kỳ vọng chất lượng output bằng TypeScript từ các coding agent sẽ ngày càng tốt. Và vì chúng ta đang build ứng dụng, mà ai cũng muốn ứng dụng có chất lượng cao nhất, thì việc build agent, thứ ứng dụng kiểu mới, bằng TypeScript là có lý.

Lý do thứ hai: dùng TypeScript là bạn đang khai thác (tap into) thứ có lẽ là package manager giàu có nhất hiện nay. npm có mọi thứ, gần như mọi thứ: authentication, payments, UI, infra. Theo Roberto, đó là cái "đuôi" app layer sâu nhất đang tồn tại. Và một lần nữa, vì AI đang tiến về application layer, chúng ta cần tích hợp với tất cả những thứ đó ngay bây giờ, nên đi qua npm là một cách rất tiện.

8. Một codebase, một type chạy từ model tới browser
Lý do thứ ba: build bằng TypeScript, bạn có thể dùng một ngôn ngữ duy nhất xuyên suốt codebase. Bạn có thể có một codebase cho cả ứng dụng, vì bạn dùng TypeScript cho agent loop, cho tools, cho backend service, cho UI.
Còn nếu dùng Python, có lẽ bạn sẽ phải tách ra ít nhất thành hai service. Một service dùng FastAPI, Pydantic AI hay gì đó tương tự. Rồi một ứng dụng React riêng, và bạn phải đồng bộ giữa hai bên bằng một contract mà bạn phải tự duy trì và đồng bộ.

Lý do thứ tư, nói tới contract: với TypeScript, bạn có một hệ typing duy nhất, nhất quán trên toàn ứng dụng. Còn nếu dùng Python, tới một lúc nào đó bạn sẽ dừng lại ở một ranh giới (boundary). Bạn sẽ có agent, có thể cả backend, v.v. với một bộ typing nhất quán, rồi ứng dụng React hay Vue hay gì đó lại có một bộ typing khác, và bạn phải đồng bộ giữa hai bộ.

Vì vậy nếu dùng TypeScript, bạn có thể dùng Zod làm một schema duy nhất cho toàn bộ ứng dụng, rất tiện. Bạn định nghĩa type một lần. Bạn dùng type này ở backend và ở phía model, và dùng đúng type đó trong UI. Một type, được check từ đầu tới cuối (end-to-end).

Đoạn code trên slide, chép lại để bạn dùng thử (cú pháp theo kiểu Vercel AI SDK):
// 1 · define the type once
const Recipe = z.object({
title: z.string(),
steps: z.array(z.string()),
})
// 2 · the model fills it, as a streamed tool
const recipe = tool({ inputSchema: Recipe })
streamText({ model, tools: { recipe } })
// 3 · the browser renders it, fully typed
function Card({ part }: {
part: UIToolInvocation<typeof recipe>
}) {
return <RecipeCard {...part.input} />
}9. Hệ sinh thái AI đang tăng tốc, và năm lý do gộp lại
Lý do thứ năm: build bằng TypeScript hôm nay cũng hợp lý vì chính hệ sinh thái AI trong TypeScript đang tăng vọt. Lấy ví dụ Vercel AI SDK. Chỉ trong một năm, nó đi từ 1.6 triệu lên 15.1 triệu lượt download mỗi tuần, tức là tăng khoảng 9 tới 10 lần chỉ trong một năm.
Cuối cùng, để gộp mọi thứ lại: theo ý kiến của Roberto, đúng là build AI agents bằng TypeScript là hợp lý, vì:
- bạn tận dụng được ngôn ngữ mặc định trên thực tế (de facto) của coding agents;
- bạn có một ngôn ngữ duy nhất cho cả ứng dụng và cả codebase;
- bạn tham gia vào một hệ sinh thái AI đang lớn nhanh;
- bạn có typing nhất quán trên toàn ứng dụng;
- và bạn khai thác được package manager giàu nhất hiện có, npm.

10. Book V, The Prophecy: Atwood's Law và những năm tới
Vậy bạn có thể hỏi: tất cả chuyện này có phải là không thể đoán trước? Câu trả lời thực ra là không. Đã có người tiên đoán chuyện này từ nhiều năm trước, gần 20 năm trước. Jeff Atwood từng nói: "Any application that can be written in JavaScript will eventually be written in JavaScript", mọi ứng dụng có thể viết bằng JavaScript rồi sẽ được viết bằng JavaScript.

Và như có lẽ bạn đã biết, vài năm gần đây chúng ta có thêm một hệ quả (corollary) của câu này: mọi ứng dụng có thể viết bằng JavaScript rồi sẽ được viết bằng TypeScript. Nên về cơ bản, có thể nói rằng mọi ứng dụng, kể cả những ứng dụng agentic, rồi sẽ được viết bằng TypeScript.
Roberto nhắc thêm: những gì anh trình bày hôm nay mới chỉ là sự khởi đầu, chúng ta chỉ vừa mới bắt đầu thôi. Bạn có thể phóng chiếu chuyện này ra vài năm tới, và sẽ thấy rằng ở application layer, khoảng cách giữa TypeScript và Python thực ra sẽ còn nới rộng ra từ đây.

Như anh đã nói, model vẫn có thể chạy trên pip, nhưng agents, tức application layer ngày nay, những agent gọi tới model, có lẽ sẽ được ship trên npm. Mọi thứ ở inference layer sẽ là Python, nhưng mọi thứ còn lại có lẽ sẽ là TypeScript hết.

11. Train in Python, Build in TypeScript
Roberto để lại một lời khuyên. Hãy tiếp tục train bằng Python; như anh đã nói, anh không thấy chuyện đó sớm biến mất. Nhưng hãy cân nhắc build agents và ứng dụng bằng TypeScript. Vì nếu bạn không làm điều đó ngay bây giờ, nếu bạn bỏ qua TypeScript, có lẽ bạn sẽ bị tụt lại phía sau.


Đó là tất cả phần của anh hôm nay. Roberto cảm ơn mọi người đã lắng nghe, mời quét QR code trên slide cuối để lấy bộ slide, và mời liên hệ với anh dù bạn đồng ý hay không đồng ý, hay có bất kỳ feedback nào, để cùng kết nối.
Nguồn và liên kết
- Trang talk chính thức trên ai.engineer · Video gốc
- Ratel: context layer cho AI agents, nơi Roberto là CTO & co-founder
- AI Socratic: cộng đồng AI builder họp hằng tháng
- Octoverse 2024: AI leads Python to top language as the number of global developers surges
- Octoverse 2025: A new developer joins GitHub every second as AI leads TypeScript to #1
- Anthropic acquires Bun as Claude Code reaches $1B milestone · Bun
- Vercel AI SDK · Zod
- Pydantic AI · FastAPI
- The Principle of Least Power: bài năm 2007 của Jeff Atwood, nơi ra đời Atwood's Law
- Roberto Stagi: GitHub · X · LinkedIn: linkedin.com/in/rstagi