Agent tự dựng lại Slack thành video bằng code
Cursor cloud agent có máy tính riêng dựng lại Slack thành video bằng code; pattern inner loop, outer loop và cách biến workflow thành skill.
✓ Đã duyệt độc lập · cập nhật 21/10/2026 · 11 min
1. Vì sao Matt mê Cursor dạo này
Matt Palmer mở đầu bằng một lời thú nhận: dạo này anh bị ám ảnh với Cursor, và lý do thì không như người ta hay nghĩ. Trong video này, anh hứa hai việc. Thứ nhất, anh sẽ đi qua cách mình đang dùng Cursor và đưa ra một ví dụ thực chiến (tactical example), để người xem có thể lấy đúng pattern đó mang về quy trình phát triển của chính mình.
Điều thú vị là ví dụ này thực ra không phải chuyện build phần mềm, dù những gì anh làm thì rất giống build phần mềm. Thứ hai, anh sẽ giải thích vì sao trao cho một agent một cái máy tính là một trong những việc mạnh nhất mà ta có thể làm trong thời đại AI agent.

cursor/bootstrap-motion-skill-6974), bên phải là tab Desktop, tức máy Linux của agent, cạnh tab PR #30.2. Cloud agent có máy tính riêng và computer use
Trước mặt Matt là một chat trong Cursor, và lúc đó anh đang làm motion video. Thứ người xem thấy ở bên phải màn hình là một Linux VM. Theo Matt, mỗi Cursor cloud agent đều đi kèm một remote workspace kiểu này (theo video đăng ngày 16/10/2026). Điểm hay của remote workspace là Cursor có computer use trên toàn bộ môi trường đó: agent có thể tự làm những việc như mở Chrome, và người dùng cũng có thể giành quyền điều khiển (take control).
Matt làm đúng như vậy: anh bấm take control, mở Chrome trong máy ảo để cho người xem thấy Cursor đã làm gì ở đó. Hoá ra anh đã để Cursor chạy Slack ngay trong trình duyệt của máy ảo. Anh nói đây là gợi ý cho thứ anh sắp khoe hôm nay.

#launch-copy. Matt nhờ bot Marketer viết bài ra mắt Team Bots trong Slack dưới 40 từ, và thread bên phải có bản nháp đầu tiên của bot. Nút "Take Control" nằm giữa màn hình.Tóm lại, nhờ computer use, Cursor làm được đủ thứ rất hay và tự quản lý cái desktop này giúp anh. Từ đó Matt bắt đầu nghĩ: vậy làm sao để tạo ra một thứ như video?
3. Video as code: video cũng là phần mềm
Matt làm rất nhiều video, có thể người xem đã thấy vài cái. Và nhóm của anh thường tạo video asset bằng code. Ý tưởng video as code, hay rộng hơn là mọi thứ đều là code, nghĩa là mọi thứ dần trở thành phần mềm.
Nếu coi một video output là code, thì điều kiện để nó "đúng" (anh nói kèm chữ "quote unquote") gồm ba câu hỏi: nó có render được không, nó có compile được không, và nó có trông đúng như mình muốn không. Hai câu đầu máy kiểm được. Câu thứ ba thì sao? Nếu render một video, ta kiểm xem nó có trông như ý không bằng cách nhìn tận mắt (visual inspection).

index.html mở trong editor có một composition chứa video và tiêu đề, cùng một dòng animation; dấu "= software". Bên dưới là "correct if it..." với renders và compiles đã tick xanh, còn looks right là biểu tượng con mắt, cạnh một kính lúp soi vào một khung Slack.Đoạn code trên slide, nguyên văn:
<div data-composition-id="intro">
<video src="talk.mp4"></video>
<h1>video as code</h1>
</div>
<script>
tl.from("h1", {y: 40, opacity: 0})
</script>Theo Matt, trong quá khứ đây là việc mà agent và các AI model làm rất tệ. Còn tính đến lúc quay video (đăng ngày 16/10/2026), chúng đã giỏi hơn nhiều. Điều đó có nghĩa là ta có thể đưa các feedback loop này vào chính những video ta tạo ra bằng code: agent render, tự nhìn, tự so, rồi sửa.
Và thứ Matt muốn cho xem hôm nay chính là những video anh đã cùng các agent của mình tạo ra để tái dựng lại workspace Slack. Anh chuyển sang xem một vài bản render.
4. Những bản render Slack do agent làm
Matt đi qua các bản render Slack mà anh làm cùng agent, và tự nhận xét rằng chúng thực sự rất xuất sắc. Điều quan trọng nhất anh muốn nhấn mạnh: anh không hề tạo ra những asset này bằng cách decompile Slack. Tất cả những gì anh làm là:
- Nói với agent thứ mình muốn.
- Đưa cho agent một video tham chiếu (video reference).
- Mở workspace Slack ngay trên máy tính của agent.
- Bảo agent dùng những hình ảnh đó làm cảm hứng cho thứ cần làm.
Agent về cơ bản đã tự trích xuất được toàn bộ phần hình ảnh, chép lại rất nhiều yếu tố chuyển động (motion elements), rồi implement lại đúng những thuộc tính easing, những motion pattern và các chi tiết tương tự.

Matt nhấn mạnh: tất cả những điều này hoàn toàn không làm được cách đây một năm (tính từ lúc video đăng, 16/10/2026). Nhưng cái chúng làm nổi bật thực ra là một điều sâu hơn: chúng làm lộ ra các pattern để build cùng AI. Đó là điều anh muốn nói tiếp theo, rồi sau đó sẽ quay lại thêm vài ví dụ.
5. Một hình dạng chung: một chat, một agent, một máy tính riêng
Điều Matt nhận ra là phần lớn các demo kiểu này đều có chung một hình dạng (a single shape). Đầu tiên, anh tương tác với một agent qua một chat. Agent đó có quyền truy cập vào máy tính riêng của nó, nơi nó toàn quyền điều khiển môi trường: nó chụp được screenshot, tương tác được với các phần tử trên màn hình.

Cái máy đó có thể chạy trên cloud, cũng có thể chạy local. Matt thấy chạy trên cloud thật tuyệt, vì anh để nó chạy rất lâu mà không phải lo laptop đi ngủ giữa chừng. Dù vậy, anh cũng đang thử nghiệm với chiếc Mac Mini của mình và cho agent chạy trên đó; anh nói có lẽ đó là chủ đề cho một video khác. Dù chạy ở đâu, chúng vẫn có cùng một hình dạng.
Và về bản chất, thứ ta đang dựng ở đây là một inner loop và một outer loop. Matt từng dùng hai thuật ngữ này khi nói về một số loại phần mềm, nhưng ở đây nghĩa của chúng hơi khác một chút.
6. Inner loop: agent tự kiểm tra việc của mình
Trong inner loop, agent đang kiểm tra việc của chính nó. Nó làm một việc gì đó, rồi đối chiếu với một thứ có thật (something real). Khi thất bại, Matt lưu ý rằng ở đây có một tiêu chí thất bại: có một tiêu chí đánh giá (evaluation criteria) hoặc một mục tiêu nào đó. Agent sửa đúng chỗ đó rồi chạy tiếp.

Đến một lúc, agent đạt tới điểm xong việc. Khi đó, nó bàn giao kết quả cho Matt để anh kiểm tra hoặc xác nhận (validate). Và đó chính là chỗ outer loop bắt đầu.
7. Outer loop: con người đưa input và chấm output
Ở outer loop, phần của con người là cung cấp input: references (tham chiếu), preferences (sở thích, ý muốn) và access (quyền truy cập). Lý tưởng nhất, ta muốn trao cho inner loop mọi thứ có thể để nó tự làm được càng nhiều càng tốt.
Lấy ví dụ Slack: Matt đã phải tạo một Slack sandbox. Anh phải đưa cho agent một số credentials. Anh phải đăng nhập vào cái máy tính đó. Anh đùa rằng việc này có thể vi phạm điều khoản dịch vụ, mà cũng có thể không, nên "đừng kể với ai ở Slack HQ nhé".

Như vậy, ta cung cấp input cho inner loop, nơi agent thực hiện mọi thứ, và rồi inner loop trả output lại cho ta. Thực sự có hai vòng: một outer loop và một inner loop. Và việc mà những người thực hành (practitioners) như chúng ta có thể cố gắng làm là tự động hoá phần lớn nhất có thể của chuỗi này.

/tmp và /opt/cursor/artifacts, không chạy git. Agent báo hai bản render 4K đang chạy dở và sẽ đối chiếu các bản highlight theo checksum để biết cái nào cần làm mới.8. The ladder: do, codify, generalize, automate
Bước đầu là làm việc đó một lần (do it once). Matt đã cho xem agent làm hết phần việc trên, nhưng điều anh chưa kể là lần đầu chính anh tự build nó, chỉ bằng vibe coding và chat qua lại với một agent. Rồi anh mới nghĩ: được rồi, làm sao biến cái này thành một skill?

Các bậc thang theo lời Matt:
- Do: làm việc đó một lần, ra một workflow.
- Codify: mã hoá workflow đó thành một skill. Từ đây ta có thể giao nó cho một agent để tự động hoá, hoặc thử tổng quát hoá nó.
- Generalize: sao lại chỉ làm cho Slack? Sao không làm cho X? Sao không làm cho những ứng dụng khác mà Matt muốn tạo visualization, muốn mô phỏng lại (mirror), hay muốn làm B-roll và asset cho video của mình? Câu hỏi lúc này là: làm sao dạy một agent làm việc này cho bất kỳ sản phẩm nào?
- Automate: cuối cùng, tự động hoá nó trong outer loop. Đó thực ra chính là thứ người xem đang thấy trên màn hình.
Đây là outer loop của tự động hoá, nơi Matt giờ đã có một feedback loop, một workflow được build y như một phần mềm. Và khi đã có phần mềm đó, anh chỉ việc đổ input vào inner loop và kỳ vọng nhận về output chất lượng cao để dùng được ngay.
Nên cốt lõi thực sự là các feedback loop, là tạo ra những vòng tuần hoàn tích cực (virtuous cycles), nơi ta chỉ việc xúc thông tin vào, hay nói đúng hơn là xúc context vào hệ thống, và nhận ra đúng những output mình thực sự muốn.
9. Khi nó hỏng: hỏi vì sao, như sửa một cái đèn
Cách làm này không hoàn hảo, và nó sẽ hỏng. Nhưng khi nó hỏng, ta phải hỏi vì sao. Ta phải lùi lại một bước và suy ngẫm, rồi về cơ bản phải làm đúng vai một kỹ sư.
Matt dùng lại một phép so sánh anh từng dùng: nếu cái đèn nhà bạn hỏng, bạn kiểm tra xem, một, nó đã cắm điện chưa, nó đã bật chưa, rồi bạn kiểm tra bóng đèn. Nếu đã kiểm hết những thứ đó, thì vấn đề nằm đâu đó giữa ổ cắm và bóng đèn. Và việc của bạn, với tư cách kỹ sư, là tìm ra vì sao nó hỏng.
Theo Matt (video đăng ngày 16/10/2026), công việc của kỹ sư chúng ta bây giờ là tìm ra vì sao agent thất bại. Khi agent thất bại, ta phải hỏi vì sao, phải tìm cho ra, phải debug. Rồi ta phải mã hoá cái "vì sao" đó thành một skill. Làm vậy thì mọi agent sau này đều thừa hưởng nó, và về cơ bản ta loại bỏ được cả một lớp lỗi (class of problem) đó trong tương lai.
Matt nói đây là quy trình anh đã dần học được khi build các agent này. Anh nghĩ nó sẽ là chìa khoá cho tương lai của phát triển phần mềm, nhưng không chỉ thế, mà cả làm media, và thực ra là mọi chức năng, vì về bản chất mọi chức năng đều đang dồn lại thành việc tương tác với agent và build phần mềm. Cái ta đang dựng là một meta loop, và kỹ năng cốt lõi của meta loop ấy là debugging.
10. Để agent tự viết skill trong lúc làm
Matt quay lại agent của mình. Agent vừa export một loạt asset, và anh mở ra xem. Điều anh đã dặn agent là: trong lúc nó build với Slack và cập nhật mấy thứ này, hãy build luôn một skill cho phép nó làm lại đúng việc đó. Tức là lấy những bài học rút ra từ việc tạo asset này và tổng quát hoá chúng, để từ nay về sau làm lại được.
Tin nhắn Matt gửi trong chat của agent, hiện trên màn hình ở đầu video:
Can you also make a skill for exactly what we just did? Bootstraping a motion skill from a UI? It might be in a vm or just another product you can open

main và diff giờ chỉ còn 10 file của bootstrap skill; bản re-export asset pack vẫn đang chạy nền, đọc các template slack-motion.Với Matt, chuyện này thật điên rồ, theo nghĩa tốt. Anh nói mình rất biết ơn công việc đang làm: anh được làm video cùng mọi người như thế này. Nhưng hơn thế, anh thấy cả cuộc đời mình đã dẫn tới đúng kiểu phát triển này, và anh giải thích vì sao.
11. Feedback loop ngoài phần mềm: chuyện cái cây
Với mọi việc mình làm, Matt luôn nghĩ: làm sao để làm nó tốt hơn một chút? Và cách để làm mọi thứ tốt hơn, thường là nhờ feedback loop. Ví dụ khi bạn thức dậy... rồi anh nói luôn rằng có thể trừu tượng hoá chuyện này cho bất kỳ thứ gì.
Matt có trồng cây. Nếu một cái cây chết, bạn hỏi: vì sao nó chết? Có thể mình tưới chưa đủ nước. Có thể tưới quá nhiều. Có thể nó không ở đúng môi trường. Nếu tìm ra được vì sao, bạn sửa đúng chỗ đó. Và lần sau có một cái cây khác, nó sẽ không chết theo đúng cách cũ nữa.

Dạng cải thiện liên tục đó, cái feedback loop đó, theo Matt gồm giải quyết vấn đề (problem solving), sự tận tâm (conscientiousness) và mã hoá lại bài học (encoding). Chính nó làm nên một người trồng cây giỏi. Feedback loop ấy là cách ta giỏi lên ở bất cứ việc gì: tập tạ (strength training), chơi guitar, bất kỳ kỹ năng nào ta muốn giỏi.
12. Làm việc với agent cũng như làm việc với người
Cách còn lại để giỏi lên, theo Matt, là ở gần những người giỏi việc đó. Và chính những kỹ năng này cũng chuyển được sang kỹ thuật phần mềm, nếu bạn hiểu các công cụ; thật ra chúng vẫn luôn chuyển được như vậy.
Điều khác bây giờ (theo video đăng ngày 16/10/2026) là chúng chuyển được sang cả agent, sang chuyện thế nào là một người quản lý giỏi, một người làm việc tốt với người khác, hay một người thực hành giỏi. Nó y hệt nhau, chỉ là được phóng đại lên khi bạn làm việc với agent. Và rốt cuộc nó xoay quanh sự tận tâm (conscientiousness), sự chú ý tới chi tiết, và nói ra thì hơi lạ, nhưng là thói quen (habits).
Matt thừa nhận anh chưa hoàn toàn chắc về những ý này. Anh vẫn đang mài giũa (workshopping) chúng một chút và thử cách trình bày. Nhưng điều anh cố làm là ghi lại những thứ này và đưa tới mọi người, để người xem hiểu anh đang build như thế nào.
13. Tóm lại: dựng asset như một software engineer
Matt hy vọng video này hữu ích, và nó cho thấy một workflow thực tế để tạo ra các motion asset giống những cái anh đã cho xem, giống những cái đang phát ngay bên trong Slack lúc anh nói.

Theo Matt, workflow đó bắt đầu bằng việc tái dựng sản phẩm, cụ thể là:
- Tạo một môi trường để agent tái dựng sản phẩm đó.
- Để agent tự kiểm tra chính mình.
- Để agent chia sẻ feedback lại cho bạn qua chu trình inner loop và outer loop.
Anh tự nhận là đã nói khá nhiều. Tóm lại, hôm nay anh nói về cách dựng visual asset như một software engineer, và cách nghĩ như một software engineer với Cursor cloud agent, remote desktop và Linux VM. Anh giới thiệu mình là Matt, làm ở SpaceX AI (theo video đăng ngày 16/10/2026), rồi chào tạm biệt: "Until next time, peace."
Nguồn và liên kết 6 nguồn
- Tên gốc: My agent rebuilt Slack
- Sự kiện: YouTube
- Video gốc: https://www.youtube.com/watch?v=fRPbHRl4W0E youtube.com
- Kênh YouTube Matt Palmer (Matt Palmer): youtube.com/channel/UCpe4azYvizhOPP22aSYnxwQ youtube.com
- Cursor Docs, Cloud Agents (máy ảo riêng trên cloud, computer use để điều khiển desktop và browser, artifacts và remote desktop control): cursor.com/docs/cloud-agent cursor.com
- Cursor Docs, Agent Skills: cursor.com/docs/skills cursor.com