Homus
‹ All talks

HTML is All You Need (for Agents to Make Graphics)

AI Engineer World's Fair 2026: Online Track · Video gốc

Vì sao agent vẽ dở trên canvas và SVG nhưng làm slide, docs, cả video rất tốt khi viết bằng HTML: đổi medium, đừng đổi model.

Coding AgentsAgentsWorkflow

1. Coding agent làm được gần như mọi thứ

Amol Kapoor mở đầu bằng lời giới thiệu ngắn: anh là CEO của Nori Agentic. Công ty của anh deploy một "AI employee", một nhân viên AI hiểu công ty của bạn: code, docs, Slack và nhiều loại data khác. Vì làm sản phẩm như vậy, đội của anh dành rất nhiều thời gian để nghĩ xem coding agent thật sự hoạt động thế nào.

Theo Amol, phần lớn mọi người nghĩ coding agent chỉ để viết code. Nhưng nếu hỏi anh, đó chỉ là marketing tệ. Hãy quên cái tên "coding" đi một giây: coding agent làm được gần như mọi thứ. Chỉ có một mẹo duy nhất: bạn phải biết nghĩ như một agent thì mới khiến nó làm đúng điều bạn muốn.

Chủ đề hôm nay là cách đội Nori dùng coding agent cho một việc mà hầu hết mọi người cho rằng agent làm rất dở: tạo ra visual artifact, tức là slide, docs, và vâng, cả video nữa.

Slide mở đầu: This whole video was made by Claude Code
Câu đầu tiên hiện trên màn hình, trước cả lời chào: "This whole video was made by Claude Code." Dòng bên dưới là "In a single shot", trong đó chữ "single shot" bị gạch ngang.
Slide coding agents dẫn tới visual artifacts: slides, docs, videos
"Today: coding agents → visual artifacts". Ba ô minh hoạ ba loại sản phẩm mà talk sẽ đi qua: slides, docs và videos.

2. Cái giá thật của một slide deck

Amol đưa ra một con số: mỗi ngày, cả thế giới đổ vào việc làm slide deck khoảng ba mươi bốn nghìn năm công của con người (34.000 human years). Và phần lớn thời gian đó không phải để suy nghĩ, mà là để "fiddling": chỉnh tới chỉnh lui, căn từng ô, kéo từng hình.

Theo anh, một deck tốn mười giờ đồng hồ thật ra chỉ nên tốn khoảng hai mươi lăm phút, một khi bạn bỏ đi toàn bộ phần định dạng, phần branding, và phần di chuyển các thứ qua lại trên trang.

Biểu đồ The real cost: 10 hrs so với 25 min cho cùng một deck
"The real cost · the same deck": cùng một deck, thanh màu cam là 10 giờ, ô màu xanh nhỏ xíu là 25 phút. Slide ghi kèm "24× faster".

Con số 34.000 năm có cách tính khá đơn giản. Trong bài newsletter "Agentics: I hate making powerpoints, coding agents make it better", Amol viết rằng Microsoft ước tính khoảng 30 triệu bài thuyết trình PowerPoint được tạo ra mỗi ngày trên toàn thế giới; nếu giả định mỗi deck mất khoảng 10 giờ, ta ra được khoảng 34.000 năm công mỗi ngày.

3. Công cụ canvas sinh ra cho tay và mắt người

Giả sử bạn cần làm một slide. Bạn sẽ làm gì? Bạn mở một công cụ: PowerPoint, Google Slides, Figma, Canva. Rồi bạn bắt đầu thao tác trên một canvas.

Một canvas trắng trống trơn và con trỏ chuột
Một canvas trắng và một con trỏ chuột: điểm xuất phát quen thuộc của mọi công cụ làm slide.

Mọi công cụ kể trên đều được xây cho bàn tay và đôi mắt của con người. Click, drag, drop, resize, snap to grid: tất cả đều là những động tác và pattern hợp lý với cách con người nhìn thế giới theo không gian (geospatial). Bên dưới có một data structure thật, nhưng nó nằm ở một format mà chỉ chính ứng dụng đó đọc được.

Một ô TITLE đang được kéo bằng chuột
Một ô "TITLE" đang bị con trỏ kéo đi: kiểu thao tác click và drag mà công cụ canvas đòi hỏi.

Vậy điều gì xảy ra khi bạn đưa những công cụ này cho một agent? Kết quả ra sai hết. Các thành phần chồng lên nhau theo những cách kỳ quặc. Bạn không đọc được chữ. Không có căn lề gì cả. Nói thẳng ra, đó là rác.

4. Bài test con bồ nông đạp xe đạp

Những người hoài nghi AI cho rằng vấn đề không nằm ở công cụ: agent về bản chất không thể suy luận về không gian. Có hẳn những benchmark được xây đúng quanh tiền đề đó, ví dụ ARC-AGI.

Có một bài test nhỏ nổi tiếng về chuyện này, của developer Simon Willison. Mỗi khi có model mới, anh ấy hỏi đúng một câu: "Can you draw a pelican riding a bicycle?", tức là vẽ một con bồ nông đang đạp xe đạp. Nhưng có một mẹo: agent chỉ được dùng SVG. Đây là một phép thử nhanh bằng cảm giác (gut check) xem model có suy luận được về không gian hay không. Simon ghi lại kết quả của từng model trên blog, dưới tag pelican-riding-a-bicycle.

Slide A famous little test về bài test SVG con bồ nông của Simon Willison
"A famous little test": thẻ Simon Willison (slide ghi "developer · creator of django") và prompt "Generate an SVG of a pelican riding a bicycle." Ba lý do bài test này có giá trị: con bồ nông đạp xe hầu như không bao giờ có trong training data, nên nó kiểm tra spatial reasoning thật; và nó được chạy lại với mỗi model mới để xem cái gì đã tiến bộ. Bên dưới là câu trích của Simon: "I started it as a joke, it's actually become useful."
Generate an SVG of a pelican riding a bicycle.

Rồi Amol cho xem vài ví dụ về những gì các model thật sự trả về trong bài test này. Và vâng, chúng khá tệ. Tệ một cách thật lòng, sâu sắc, tệ thật sự.

Ba hình SVG con bồ nông của gpt-4o-mini, gemini-1.5-flash và claude-3-opus, đều bị gạch đỏ
Prompt "Draw a pelican riding a bicycle." và ba kết quả SVG, mỗi hình gắn dấu X đỏ: gpt-4o-mini, gemini-1.5-flash và claude-3-opus. Không hình nào ra được một con bồ nông đạp xe cho đúng.

Vậy có phải là hết hy vọng? Agent cứ thế mà dở đồ hoạ mãi? Amol trả lời: không, anh không nghĩ vậy.

Chữ NO. thật lớn, bên dưới là agents aren't the problem
Một chữ "NO." màu cam rất to, với dòng phụ "agents aren't the problem": vấn đề không nằm ở agent.

5. Không phải lỗi của model, mà là lỗi của medium

Nếu hỏi Amol, vấn đề không phải ở model, mà ở medium, tức là phương tiện mà ta bắt model làm việc trên đó.

Anh đảo ngược tình huống: nếu anh nhờ bạn, một người mà anh đoán là con người, viết tay một file SVG vẽ con bồ nông, thì bạn cũng sẽ không làm được. SVG chỉ là một bức tường toàn con số. Bạn không thể đi từ một bức tường số tới một con bồ nông. Mắt bạn không nhìn theo cách đó, và đó cũng không phải cách con người suy nghĩ.

Hình người đứng trước một khối tọa độ SVG với dấu hỏi
"But why, though?": một hình người đứng trước một khối dày đặc các lệnh path và toạ độ SVG, phía trên là một dấu hỏi lớn màu vàng. Với con người, SVG chỉ là "a wall of numbers".

Con người nghĩ bằng hình ảnh, nên chúng ta xây những công cụ cho phép mình vẽ trên canvas.

Hình người với bong bóng suy nghĩ là một bức tranh phong cảnh
Cùng hình người đó, nhưng giờ trong bong bóng suy nghĩ là một bức tranh: mặt trời, ngọn đồi xanh. Con người nghĩ bằng hình, nên công cụ của ta là canvas.

Rồi khi muốn agent làm đồ hoạ, chúng ta lại xây công cụ theo đúng lối đó: Figma MCP, PowerPoint CLI, các vòng lặp chụp màn hình rồi thay thế (screenshot and replace). Tất cả những công cụ cho agent này có điểm gì chung? Chúng đều tiếp cận vấn đề như một con người. Nhưng AI không phải là con người.

Sơ đồ The workarounds: Figma MCP, vision re-prompt, PowerPoint CLI, screenshot replace, pixel-diff eval quanh AGENT
"The workarounds": năm cách vá quanh một ô AGENT ở giữa. Figma MCP, vision re-prompt, PowerPoint CLI, screenshot → replace và pixel-diff eval. Cách nào cũng bắt agent làm việc theo kiểu của mắt và tay người.

Bắt AI dùng canvas cũng giống như bắt con người viết SVG bằng tay: nó không có nhiều ý nghĩa. Bạn cần đưa cho AI công cụ dựa trên cách nó suy nghĩ, không phải bằng pixel, mà bằng ngôn ngữ. Words, token, structure: đó mới là medium tự nhiên (native medium) của nó.

Hình người và ô AGENT đứng cạnh nhau
"But an AI isn't human": hình người bên trái, ô AGENT bên phải. Hai bên suy nghĩ bằng hai medium khác nhau.

6. HTML: ngôn ngữ để model nghĩ bằng structure

Amol mời khán giả hình dung: một ngôn ngữ cực giỏi trong việc mô tả layout, một ngôn ngữ mà model đã thấy và được train trên hàng tỷ ví dụ, mà model hiểu một cách trực giác, có thể render ra pixel và chạy được ở mọi nơi. "Oh, right." Ngôn ngữ đó có sẵn rồi: HTML.

Slide Imagine a language that với ba dấu tích
"Imagine a language that...": ba dấu tích. Describes visual layout, has mountains of training data, models understand it intuitively.

HTML cho phép model nghĩ bằng structure. Các tag HTML mang ý nghĩa ngay trong ngôn ngữ: đây là một heading, đây là một chart, đây là một grid. Còn trình duyệt lo việc biến tất cả thành pixel, nên model không bao giờ phải tự đặt một toạ độ nào. Và bạn có đủ loại hiệu ứng thị giác, chart và layout, font và chuyển động, tất cả đều miễn phí, vì trình duyệt đã làm sẵn.

Đoạn HTML model viết, qua trình duyệt thành slide Q3 Results với lưới ô
Bên trái là thứ model viết, mang ý nghĩa: một <h1>Q3 Results</h1>, một <div class="grid"> và một <canvas> cho chart. Mũi tên "browser" dẫn sang bên phải: slide "Q3 Results" đã render với một lưới bốn ô. Model mô tả cấu trúc, trình duyệt lo pixel.

Một ví dụ cụ thể cho ý "model không bao giờ đặt toạ độ": khi viết display: grid với vài cột, việc chia khung và căn từng ô là việc của layout engine trong trình duyệt (xem Basic concepts of grid layout trên MDN). Model chỉ cần nói "đây là một lưới bốn ô", chứ không phải tính ô thứ ba nằm ở x bằng bao nhiêu.

Nhớ con bồ nông lúc nãy chứ? Giờ hãy yêu cầu model làm đúng bài đó, nhưng bằng HTML. Vẫn là con chim ấy, nhưng giờ nó nằm trong một structure mà model suy luận được, và bạn có thể đọc, đổi theme và chỉnh sửa từng dòng một.

So sánh: con bồ nông SVG của gemini-1.5-flash bị gạch, con bồ nông HTML đạp xe đạp rõ ràng
"Same prompt · different medium": bên trái là con bồ nông SVG của gemini-1.5-flash, gắn dấu X đỏ. Mũi tên "in HTML" dẫn sang bên phải: một con bồ nông trắng mỏ cam đang đạp chiếc xe đạp xanh, gắn dấu tích xanh.

7. PowerPoint không phải là slide deck

Amol kể rằng cả đời anh làm slide deck bằng PowerPoint, nên anh luôn nghĩ hai thứ đó, slide deck và PowerPoint, là từ đồng nghĩa. Nhưng thật ra không phải vậy, đúng không?

Slide The reframe với biểu tượng PowerPoint
"The reframe": chỉ một biểu tượng PowerPoint màu cam. Thứ ta quen gọi là "làm slide" thật ra là "dùng PowerPoint".

PowerPoint là một công cụ bạn dùng để làm slide deck. Còn bản thân cái deck, đó chỉ là chế độ trình chiếu (presentation mode). Và hoá ra, chẳng ai trong khán giả của bạn quan tâm bạn đã đi tới presentation mode bằng cách nào.

Slide Q3 Results ở chế độ Presenting mode
"Presenting mode": một slide "Q3 Results" với biểu đồ cột. Khán giả chỉ thấy cái này, không thấy nó được tạo bằng công cụ gì.

Format dùng để chỉnh sửa là hoàn toàn tuỳ ý. Vì vậy bạn cứ chọn format chỉnh sửa mà agent vốn đã giỏi, tức HTML, và nếu cần thì sau đó render sang một format khác, ví dụ PDF.

Agent viếtHTML + CSS Trình duyệtrender Trình chiếu Xuất PDF
Editing format và presentation mode là hai chuyện khác nhau: chọn format mà agent giỏi (HTML) để chỉnh sửa, rồi trình chiếu thẳng trong trình duyệt hoặc xuất sang PDF khi cần.

Đội Nori dùng mẹo HTML này để làm toàn bộ slide deck của họ: board deck (deck cho hội đồng quản trị) và sales deck. Đây không phải đồ demo, mà là những thứ họ thật sự trình bày và gửi đi liên tục.

Lưới sáu slide mẫu dưới tiêu đề Slide decks → HTML
"Slide decks → HTML": một lưới sáu slide mẫu (danh sách, biểu đồ cột, bảng ô, câu trích). Một slide ghi "built in a single prompt."

8. Docs và cả video cũng là HTML

Đội Nori cũng dùng cách này cho docs. Nó mang lại cho docs của họ màu sắc và sức sống, mà vẫn đi đúng brand của công ty.

Một trang Engineering Spec có khối NOTE và biểu đồ cột
"Docs → HTML": một trang "Engineering Spec" với khối "NOTE" được tô nổi và một biểu đồ cột, theo đúng tông màu xanh của brand.

Và tất nhiên, họ dùng nó để làm video, giống như chính video talk này. Những gì người xem đang thấy chỉ là HTML và CSS. Đúng nghĩa đen là toàn div, div chồng div tới tận đáy ("divs all the way down").

Cửa sổ trình duyệt với dòng chữ a talk, rendered in a browser
"Videos → HTML": một cửa sổ trình duyệt mở trang norisessions.com/talk/index.html, bên cạnh là panel Elements của DevTools. Dòng chữ giữa màn hình: "a talk, rendered in a browser".

Gần như mọi thứ đều tốt hơn khi có một chút structure và một chút màu sắc. Plain text là một lựa chọn, thường là lựa chọn vì tiện. Nhưng theo Amol, đó thường là lựa chọn sai nếu bạn thật sự muốn tạo ra thứ gì đó có ích.

So sánh khối văn bản thô PLAIN với Quarterly Report có cấu trúc
"Plain" và "Structured": bên trái là một khối text xám đều đều, bên phải là "Quarterly Report" có tiêu đề, đoạn tô nổi, biểu đồ cột và một nhãn "+38% YoY". Cùng nội dung, nhưng bản có structure dễ đọc hơn hẳn.

9. Deck đẹp thôi thì chưa đủ: nội dung đến từ data

Ở đây Amol dừng lại một nhịp để nói rõ: một cái deck đẹp, tự nó, nói chung chẳng có giá trị gì. Bạn vẫn phải đi thu thập toàn bộ nội dung, tất cả những thứ thật sự lấp đầy cái deck đó.

Một Board Deck có khung trống với dấu hỏi
"Board Deck ??": khung slide đã có sẵn, nhưng ô nội dung chính chỉ là một dấu hỏi. Layout đẹp không tự sinh ra nội dung.

Cách giải, một lần nữa, là nghĩ như model. Nếu bạn chỉ cần cho model quyền truy cập vào data của bạn, ví dụ transcript các cuộc gọi hay email, thì model có thể build cả deck từ đầu tới cuối. Hãy để agent làm hết phần việc tay chân (grunt work), còn bạn tập trung vào tầm nhìn và câu chuyện.

Đó chính là thứ Nori Sessions cho phép bạn làm. Amol kể anh đã build nguyên những board deck từ điện thoại, trên tàu điện ngầm trong lúc đi làm. Vì sao làm được? Vì Nori bot sống ngay trong "lớp vải" (fabric) của công ty họ.

Sơ đồ Nori Sessions: transcripts, emails, Workspace, Slack chạy vào session rồi ra Board Deck trên điện thoại
"Nori Sessions": bốn nguồn data, transcripts, emails, Workspace và Slack, cùng chạy vào một "session" ở giữa. Session lo format, layout và charts, rồi xuất ra một "Board Deck" hiện trên màn hình điện thoại.

Và tất nhiên, Nori đi kèm sẵn mọi thứ cần thiết để làm được tất cả những điều trên, nên bạn không cần phát minh lại cái bánh xe.

Slide Skills included với hai skill make-deck và make-doc
"Skills included": hai skill có sẵn, make-deck và make-doc.

Thông tin thêm về sản phẩm có trên trang chủ Nori.

10. Takeaway: hãy nghĩ như model

Amol khép lại "bài nói ngắn" của mình và cảm ơn người nghe. Nếu chỉ mang về một điều, thì đó là: đừng nghĩ như một người dùng nữa. Hãy nghĩ như model. Hãy đưa cho nó đúng ngôn ngữ. Và với đồ hoạ, tất cả những gì bạn cần là HTML.

Nghĩ như người dùng Canvas, pixel, toạ độ Figma MCP, PowerPoint CLI Chụp màn hình rồi sửa lại Nghĩ như model Words, token, structure HTML + CSS, trình duyệt render Đọc, đổi theme, sửa từng dòng
Thông điệp chính của talk trong một hình: thay vì bắt agent dùng công cụ dành cho mắt và tay người, hãy đưa cho nó medium mà nó vốn giỏi.

Nguồn và liên kết