# Durable agent đã thay đổi cách anh build agent

[Your Average Tech Bro](https://homus.dev/speakers/your-average-tech-bro) · [Your Average Tech Bro](https://homus.dev/orgs/your-average-tech-bro)

> Durable agent là gì, vì sao workflow AI nên chạy tiếp khi client mất kết nối, và ba cách implement: Vercel Workflows, Upstash Workflow, Trigger.dev.

Topics: Agents, Dev Tools, Workflow

Canonical: https://homus.dev/talks/this-fundamentally-changed-the-way-i-build-agents

## 1. Điều anh ước đã làm từ ngày đầu: durable agent

Người dẫn kênh Your Average Tech Bro kể rằng vài ngày trước khi quay video (đăng ngày 28/10/2026), anh đang làm một tính năng agentic hoàn toàn mới trong ứng dụng của mình. Trong lúc làm, anh tìm đọc một số chiến lược tốt để implement AI agent, và tình cờ gặp một khái niệm tên là **durable agent**.

Sau khi tìm hiểu kỹ khái niệm này, anh nhận ra đây là thứ anh ước mình đã đưa vào mọi AI workflow, mọi tính năng AI trong app ngay từ đầu, thay vì bây giờ, khi đã gần một năm xây app (tính đến lúc quay video đăng ngày 28/10/2026).

![Người dẫn kênh Your Average Tech Bro nói trước camera, bên cạnh micro](https://homus.dev/photos/FVgg5uefFYQ-0003.jpg)

Phần mở đầu: người dẫn kênh nói trước camera về lý do anh muốn đưa durable agent vào mọi tính năng AI trong app (video đăng ngày 28/10/2026).

Vì vậy trong video này anh muốn nói ba chuyện: durable agent chính xác là gì, vì sao nên dùng, và implement nó thế nào, vì có rất nhiều nhà cung cấp khác nhau có thể dùng để đưa nó vào app. Anh nói tất cả trong bối cảnh chính cái app anh đang xây. Theo anh, đây không phải chỉ là một hướng dẫn lý thuyết, mà là thứ anh đang thật sự implement vào một app thật, có người dùng thật và tạo ra doanh thu thật (theo lời anh trong video đăng ngày 28/10/2026). Trên màn hình lần lượt hiện ba chữ "real app", "real users", "real revenue".

## 2. Setup streaming quen thuộc: client, server và AI SDK

Trước hết anh đi vào câu hỏi: durable agent là gì. Anh mở một bảng vẽ trên tldraw và nói: nếu bạn từng build bất kỳ app AI streaming hay app chat nào trong một hai năm qua (tính tới video đăng ngày 28/10/2026), nhiều khả năng bạn đã dựng một setup giống thế này. Có một client và một server, và bạn sẽ dùng một công cụ streaming nào đó, nhiều khả năng là AI SDK của Vercel, vì theo anh đó là công cụ phổ biến nhất hiện có (theo anh, video đăng ngày 28/10/2026). Anh cũng biết TanStack có một AI SDK riêng, và còn rất nhiều nhà cung cấp khác nữa.

![Bảng vẽ tldraw với client, AI SDK và server nối bằng hai mũi tên](https://homus.dev/photos/FVgg5uefFYQ-0103.jpg)

Client gửi tin nhắn sang server, server stream câu trả lời ngược về client, ở giữa là AI SDK (video đăng ngày 28/10/2026).

Về cơ bản, cách nó chạy là: từ client, bạn gửi tin nhắn tới server, rồi server stream câu trả lời ngược về client.

## 3. Refresh trang giữa lúc stream, và durable agent

Vấn đề nằm ở đây. Giả sử đúng lúc server đang stream câu trả lời về client, bạn refresh trình duyệt phía client. Khi đó stream chết, câu trả lời của AI biến mất "vào hư không", và bạn không lấy lại được, trừ khi gõ kiểu "này, bạn làm tiếp việc đó giúp tôi được không?".

Durable agent làm điều ngược lại. Theo anh (video đăng ngày 28/10/2026), với durable agent, bất kỳ workflow nào bạn khởi động trên server, trên cái API endpoint làm phần AI streaming cho client, vẫn chạy tiếp ngay cả khi phía client mất kết nối, dù là Wi-Fi rớt hay bạn refresh trang. Server vẫn hoàn thành trọn vẹn AI workflow của nó. Rồi tới lúc nào đó client kết nối lại được, lấy lại stream và lấy luôn câu trả lời.

Anh chỉ ra một ví dụ ngoài đời thật trong một ứng dụng AI hiện đại: ChatGPT. Anh gõ yêu cầu viết một cover letter 500 chữ, chờ stream bắt đầu trả về, rồi refresh trang. Trong demo (video đăng ngày 28/10/2026), dù trang đã refresh, câu trả lời vẫn tiếp tục hiện ra. Theo anh, đó là một ví dụ rất đơn giản để thấy durable agent chính xác là gì.

![ChatGPT hiển thị một cover letter mẫu với các chỗ trống như [Company Name] và [Your Name]](https://homus.dev/photos/FVgg5uefFYQ-0203.jpg)

Sau khi refresh, ChatGPT vẫn hiện đầy đủ cover letter; dòng cuối ghi đây là một cover letter đa dụng khoảng 500 chữ, có các chỗ trống trong ngoặc vuông để thay (demo trong video đăng ngày 28/10/2026).

## 4. Server không ghi thẳng về client mà ghi vào một lớp trung gian như Redis

Về bản chất, theo anh giải thích (video đăng ngày 28/10/2026), server không còn ghi câu trả lời AI thẳng về client nữa. Thay vào đó, nó ghi vào một thứ trung gian nào đó. Anh lấy ví dụ Redis, vì có một cách implement phổ biến dùng loại database này. Anh nói anh tin là Redis có một real-time stream mà phía client có thể kết nối vào để đọc câu trả lời từ Redis stream đó.

Anh vẽ thêm sơ đồ thứ hai ngay dưới sơ đồ cũ (video đăng ngày 28/10/2026). Ở ví dụ không durable trước đó, server stream câu trả lời thẳng về client. Ở sơ đồ mới, server stream câu trả lời vào một database khác. Khi bạn mất kết nối, hoặc refresh trang rồi kết nối lại, client không đọc từ server nữa mà đọc dữ liệu đang được stream vào Redis, hoặc vào bất kỳ database bên thứ ba nào mà server đang ghi vào. Nhờ vậy AI workflow của bạn vẫn chạy được tới cuối.

![Hai sơ đồ trên tldraw: client, AI SDK, server ở trên; client, AI SDK, server và redis ở dưới](https://homus.dev/photos/FVgg5uefFYQ-0243.jpg)

Hai sơ đồ đặt cạnh nhau: ở trên là streaming thẳng từ server về client; ở dưới, server ghi vào redis và client đọc từ redis (video đăng ngày 28/10/2026).

## 5. Workflow nhiều bước, nhiều tool call càng cần durable

Anh nói rõ đây hiển nhiên chỉ là một ví dụ rất đơn giản, với một workflow chat streaming đơn giản. Theo anh (video đăng ngày 28/10/2026), chuyện còn phức tạp hơn nhiều khi bạn đưa thêm nhiều tool calling vào AI model.

Ví dụ vừa rồi chỉ có server stream một câu trả lời chat về client. Nhưng theo anh (video đăng ngày 28/10/2026), durable còn quan trọng hơn và mạnh hơn khi AI model của bạn ở phía sau đang làm rất nhiều xử lý bổ sung: gọi nhiều tool, chạy nhiều step và nhiều lượt, kiểu một workflow nhiều bước thật sự phức tạp, chừng 10 hay 20 step.

Với workflow như vậy, anh nói bạn chắc chắn muốn nó durable ở phía sau, vì bạn muốn từng step đang chạy phải chạy xong trước khi chuyển sang step tiếp theo. Và bạn muốn từng step ghi dữ liệu của nó vào database bên thứ ba nào đó, để client đọc được dữ liệu ấy và workflow phức tạp kia hoàn tất ở backend. Như vậy bạn không có một tiến trình ngẫu nhiên nào đó không bao giờ chạy xong, dữ liệu bị thiếu, và người dùng không hài lòng.

Ý anh nói về workflow nhiều bước (video đăng ngày 28/10/2026): mỗi step chạy tới khi xong rồi mới sang step kế, mỗi step ghi dữ liệu vào một database bên thứ ba, và client đọc dữ liệu từ đó.

## 6. Ví dụ thật: remix một post cho một tài khoản

Để minh hoạ, anh lấy một tính năng trong app anh đang xây, một công cụ AI cho marketing trên social media. Theo anh (video đăng ngày 28/10/2026), tính năng đó cho phép remix một post, lấy từ dữ liệu có sẵn trong app hoặc từ một URL Instagram hay TikTok, thành phiên bản dành cho tài khoản của chính bạn.

Theo anh (video đăng ngày 28/10/2026), chính phần remix nội dung đó là một quy trình nhiều lượt, rất phức tạp, phải đi qua rất nhiều step khác nhau mới xong. Vì vậy anh demo nhanh cách nó chạy.

## 7. Gửi yêu cầu, refresh giữa chừng, workflow vẫn chạy trong nền

Trong demo (video đăng ngày 28/10/2026), anh tìm được một trang Instagram kiểu "faceless" (không lộ mặt người làm), chọn một post muốn remix, rồi dán link post đó vào khung chat của một agent marketing mà anh tạo ra cho một tài khoản faceless anh đang thử vận hành. Anh gõ kèm yêu cầu remix post này bằng ảnh avatar gắn với agent. Câu lệnh trên màn hình (sau đường link) là:

```
remix this post using the avatar photo attached to this agent.
```

Để có bối cảnh, anh giải thích: việc nó đang làm là lấy cái avatar anh đã tạo, rồi remix post gốc nhưng dùng ảnh avatar này thay vào. Anh gửi đi, và nói rằng lúc này chính durable agent đang chạy ở phía sau. Anh chờ stream bắt đầu trả câu trả lời về, rồi refresh trang để cho thấy stream và câu trả lời vẫn tiếp tục dù client không còn kết nối. Trong demo (video đăng ngày 28/10/2026), anh refresh xong và stream vẫn chạy tới cuối.

Agent hỏi lại anh một câu: post đó là video hay là carousel ảnh. Anh trả lời "it's a video", rồi để nó chạy tới khi xong, hẹn quay lại xem khi mọi thứ hoàn tất (demo trong video đăng ngày 28/10/2026).

Theo anh (video đăng ngày 28/10/2026), ở phía sau, nó sẽ đi qua một workflow nhiều lượt, nhiều step khá phức tạp: đầu tiên tải post đó về, lấy hình ảnh, làm face swap, rồi remix chữ trên màn hình cho hợp với góc nhìn của tài khoản này, một tài khoản tech founder không lộ mặt. Anh nói đó là một quá trình rất dài, có thể mất từ ba tới năm phút (theo số đo của anh, video đăng ngày 28/10/2026), nhưng giờ anh và nhóm đảm bảo mọi thứ đều chạy trong nền với một durable agent. Anh hẹn sẽ quay lại cho xem kết quả cuối ở phần sau.

Các step anh kể cho workflow remix trong demo (video đăng ngày 28/10/2026): tải post, lấy hình, face swap, rồi remix chữ trên màn hình theo góc nhìn của tài khoản.

## 8. Cách 1: Vercel Workflows với "use workflow" và "use step"

Trong lúc workflow đó chạy nền, anh chuyển sang chuyện implement một durable agent trong app của chính bạn. Anh nói có rất nhiều cách, và anh chỉ đi qua vài cách phổ biến nhất (theo anh, video đăng ngày 28/10/2026).

Nếu bạn đã ở sâu trong hệ sinh thái Vercel, theo anh (video đăng ngày 28/10/2026), Vercel Workflows có lẽ là cách implement dễ nhất và, thành thật mà nói, gọn gàng nhất bạn có thể gặp. Lý do: tất cả những gì bạn cần làm là tạo một workflow bằng primitive "use workflow", cho mọi step riêng lẻ xảy ra bên dưới.

![Trang Vercel Workflows với dòng chữ lớn use workflow for infinite compute durability](https://homus.dev/photos/FVgg5uefFYQ-0620.jpg)

Trang Vercel Workflows anh mở: tiêu đề "use workflow" for infinite compute durability, kèm lệnh npm install workflow (trang trên màn hình trong video đăng ngày 28/10/2026).

Anh giải thích cách Vercel Workflows chạy, theo lời anh là rất đơn giản (video đăng ngày 28/10/2026). Bạn tạo một hàm nào đó, một workflow cha, rồi chỉ việc dùng primitive "use workflow". Anh nói cách này rất giống những gì họ làm với Next.js, kiểu "use server", "use client" và những thứ tương tự. Sau đó, bên trong từng step riêng lẻ của workflow, bạn chỉ cần gõ "use step".

Theo anh (video đăng ngày 28/10/2026), việc đó đảm bảo mỗi step chạy tách biệt, và có sẵn cơ chế retry phòng khi một step bị lỗi. Nó làm mọi thứ durable hơn nhiều: mỗi step là một tiến trình được thực thi riêng và chạy tới khi xong, có retry sẵn để một step lỗi không kéo cả workflow sập theo. Anh nói nó cũng tích hợp rất đơn giản và gọn với những thứ như AI SDK của Vercel, và là một công cụ rất dễ dùng.

![Trang Workflow SDK, mục Reliability-as-code với đoạn code export async function welcome có use workflow](https://homus.dev/photos/FVgg5uefFYQ-0643.jpg)

Mục "Reliability-as-code" trên trang Workflow SDK: một hàm welcome mở đầu bằng "use workflow", các bước getUser, generateEmail, sendEmail lần lượt được đánh dấu khi chạy xong (trang trên màn hình trong video đăng ngày 28/10/2026).

Tài liệu Vercel (đọc ngày 31/10/2026) cũng mô tả Vercel Workflows là cách viết durable function bằng hai directive 'use workflow' và 'use step', chạy logic nhiều bước có thể retry step lỗi và chạy tiếp qua các lần crash hay deploy.

## 9. "Vercel tax", và vì sao anh vẫn chọn Vercel Workflows

Theo anh (video đăng ngày 28/10/2026), nhược điểm của Vercel Workflows là nhiều khả năng, nếu dùng nó, bạn sẽ phải host app trên Vercel để có được trải nghiệm liền mạch như vậy. Anh so sánh: giống như với Apple bạn trả "Apple tax", với Vercel bạn trả "Vercel tax", vì họ làm cho việc dùng mọi tích hợp của họ quá dễ.

Anh kể rốt cuộc anh vẫn chọn dùng Workflow của Vercel, dù theo anh nó tốn khoảng gấp đôi so với các nhà cung cấp phổ biến khác (theo anh, video đăng ngày 28/10/2026). Lý do chính là anh đã ở quá sâu trong hệ sinh thái Vercel. Anh nói thật là anh ước mình không như vậy, nhưng anh đã ở đó rồi, và nó chạy liền mạch, dễ tới mức như thế.

Hai lựa chọn đầu theo lời anh (video đăng ngày 28/10/2026): Vercel Workflows gọn nhưng đắt hơn và gắn với Vercel; Upstash Workflow rẻ hơn nhưng cần thêm công engineering.

## 10. Cách 2: Upstash Workflow cùng Upstash Realtime

Một công cụ khác bạn có thể dùng để implement durable agent là Upstash. Anh nói Upstash là công cụ anh vốn đã dùng sẵn trong app của mình. Theo anh (video đăng ngày 28/10/2026), Upstash có chi phí khoảng một nửa Vercel Workflows. Nhưng phần implement thì không gọn bằng, và bạn phải bỏ thêm một chút công engineering, bảo trì, giữ cho hệ thống chạy, so với Vercel Workflows. Lý do anh đưa ra: Vercel Workflows và AI SDK do cùng một công ty làm ra, còn Upstash Workflow thì không.

![Trang Upstash Workflow với ba cột tính năng và một ví dụ code TypeScript AI Data Processing](https://homus.dev/photos/FVgg5uefFYQ-0843.jpg)

Trang Upstash Workflow anh mở: các cột tính năng (chạy tiến trình dài không giới hạn thời gian tuỳ tiện, tự retry step lỗi) và ví dụ "AI Data Processing" chia thành Step 1, Step 2 bằng context.run và context.call (trang trên màn hình trong video đăng ngày 28/10/2026).

Theo anh, cách bạn tái tạo kiểu durable agent workflow như trong demo là dùng sản phẩm Upstash Workflow. Anh nói sản phẩm này thật ra có trước: đây là sản phẩm workflow đầu tiên anh từng nghe tới, trước cả khi Vercel Workflows ra đời (theo anh, video đăng ngày 28/10/2026). Nó làm cùng một việc: bạn thực thi theo từng step riêng lẻ, mỗi step là một durable function có sẵn retry policy và chạy trong môi trường tách biệt của riêng nó, trên hạ tầng serverless của chính bạn. Nhờ vậy, theo anh, bạn chạy được những workflow rất dài, những tiến trình chạy rất lâu, chia thành từng step riêng, một cách rất liền mạch.

Rồi anh nói anh tin là bạn sẽ phải dùng thêm Upstash Realtime, một lớp wrapper. Anh mở trang tài liệu và chỉ vào đó: theo anh (video đăng ngày 28/10/2026), Upstash Realtime về cơ bản dồn câu trả lời vào một database Redis, rồi database Redis stream câu trả lời đó sang phía client. Theo anh, đó là cách tái tạo durable agent bằng Upstash Workflow.

![Trang tài liệu Upstash Realtime Quickstart, mục How It Works](https://homus.dev/photos/FVgg5uefFYQ-0851.jpg)

Trang "Realtime Quickstart" trong tài liệu Upstash Workflow: Upstash Realtime chạy trên Upstash Redis, frontend nhận event theo thời gian thực, mỗi event được emit sẽ tới ngay frontend đang nghe và có thể phát lại event cũ (trang trên màn hình trong video đăng ngày 28/10/2026).

## 11. Cách 3: Trigger.dev, và nên chọn cái nào

Một lựa chọn phổ biến khác là Trigger.dev. Anh nói đây cũng là một dev tool rất phổ biến (theo anh, video đăng ngày 28/10/2026). Anh chưa tự dùng nó, nhưng anh biết họ rất được ưa chuộng, và tương tự hai công cụ trên, nó giúp bạn chạy các AI workflow dài, giống Vercel Workflows và Upstash Workflow.

![Trang chủ Trigger.dev với tiêu đề Build and deploy durable AI agents and workflows](https://homus.dev/photos/FVgg5uefFYQ-0923.jpg)

Trang chủ Trigger.dev trên màn hình: "Build and deploy durable AI agents and workflows", tự giới thiệu là nền tảng mã nguồn mở để build AI agent bằng TypeScript, với task chạy lâu, retry, queue (trang trên màn hình trong video đăng ngày 28/10/2026).

Anh nói, chỉ kể ra theo trí nhớ, đó là ba trong những cách phổ biến nhất để implement durable agent (theo anh, video đăng ngày 28/10/2026), và thành thật mà nói cả ba đều làm được cùng một việc. Theo anh, vấn đề chỉ là cái nào tiện nhất cho bạn, cái nào có developer documentation tốt nhất để AI agent của bạn nắm bắt nhanh và implement vào app.

Lời khuyên của anh (video đăng ngày 28/10/2026): đừng quá căng thẳng chuyện chọn cái nào. Anh nói nếu bạn đã ở sâu trong hệ sinh thái Vercel, thì hiển nhiên Vercel Workflows là lựa chọn tốt nhất để dùng.

## 12. Nhược điểm duy nhất anh nghĩ ra: chi phí compute

Anh đã nói nhiều về ưu điểm của durable agent, giờ tới câu hỏi: nhược điểm là gì? Theo anh (video đăng ngày 28/10/2026), nhược điểm số một là nó là một khoản chi phí compute bạn cộng thêm vào ứng dụng. Thành thật mà nói, đó là nhược điểm duy nhất anh thật sự nghĩ ra. Nó không miễn phí, nó tốn thêm tiền.

Theo anh (video đăng ngày 28/10/2026), các công cụ như Vercel Workflows, Upstash Workflow hay Trigger.dev thường được tính tiền theo một trong hai cách. Cách thứ nhất là theo thời gian CPU hoạt động khi chạy một task cụ thể; anh nghĩ đó là cách Trigger.dev tính giá, và anh mở trang giá của Trigger.dev để chỉ phần tính theo chi phí compute mỗi giây. Cách thứ hai, với Upstash Workflow và Vercel Workflows, là họ tính tiền theo từng step riêng lẻ được thực thi trong workflow.

![Bảng Compute pricing của Trigger.dev với các loại máy, vCPU, GB RAM và giá mỗi giây](https://homus.dev/photos/FVgg5uefFYQ-1003.jpg)

Bảng "Compute pricing" của Trigger.dev trên màn hình: mỗi loại máy có số vCPU, GB RAM và giá theo giây, ví dụ Small 1x (mặc định) 0.5 vCPU, 0.5 GB RAM, $0.0000338 mỗi giây (trang trên màn hình trong video đăng ngày 28/10/2026; trang giá đọc ngày 31/10/2026 vẫn ghi các mức này).

## 13. Khi nào durable agent không phải lựa chọn đúng

Anh cũng nói có thể lập luận rằng, tuỳ thứ bạn đang build, durable agent không phải lựa chọn phù hợp nhất. Ví dụ, điều anh đang nhận ra là các ứng dụng chạy trên web đều chủ yếu là durable, như chatgpt.com và những app tương tự (theo anh, video đăng ngày 28/10/2026).

Nhưng nếu lấy ví dụ ứng dụng ChatGPT bản desktop, hay ứng dụng Codex bản desktop, thì theo anh (video đăng ngày 28/10/2026), nếu một task đang chạy thẳng trong Codex mà anh thoát app Codex, nó dừng chạy. Anh nói hiển nhiên họ có một sản phẩm durable agent, gọi là cloud agent, luôn chạy kể cả khi máy tính của bạn tắt. Theo anh, ngay cả các AI lab cũng có những trường hợp cần durable agent và những trường hợp không cần.

Ba trường hợp anh so sánh (video đăng ngày 28/10/2026): web app chủ yếu durable, task trong app Codex desktop dừng khi thoát app, còn cloud agent vẫn chạy khi máy tắt.

Anh nói thật lòng (video đăng ngày 28/10/2026), ít nhất với bản thân anh, từ giờ trở đi anh có lẽ sẽ luôn implement durable agent, trừ khi anh build một app coding chạy trên desktop như Codex hay của Anthropic. Anh nói đó chỉ là quan điểm của riêng anh.

## 14. Kết quả demo và kết luận: 10 trên 10

Trước khi kết thúc, anh quay lại xem durable agent đã remix post gốc ra sao. Nhìn kết quả, anh nhận xét là trông ổn, "kính râm đẹp đấy", trông khá ổn (demo trong video đăng ngày 28/10/2026). Anh chỉ ra đây là cả một durable workflow đã chạy trong nền trong khi trang web hoàn toàn bị đóng, và toàn bộ chạy bằng Vercel Workflows.

Anh kể thêm (demo trong video đăng ngày 28/10/2026): không chỉ lần tạo đầu tiên đi qua durable workflow này, mà anh còn sửa thêm vài lần vì không thích các bản nháp trước, và cuối cùng ra được bản sau cùng đang hiện trên màn hình.

![Khung chat của agent với mô tả bản remix và khung xem trước một video có avatar đeo kính râm](https://homus.dev/photos/FVgg5uefFYQ-1123.jpg)

Kết quả cuối của demo: agent mô tả bản remix (avatar, chữ trên màn hình viết lại cho một founder hay dev làm một mình, giữ phong cách tối giản của post gốc), bên phải là bản xem trước có avatar đeo kính râm, và tin nhắn sửa của anh yêu cầu biến nó thành video tĩnh (demo trong video đăng ngày 28/10/2026).

Kết luận của anh (video đăng ngày 28/10/2026): durable agent, 10 trên 10, anh rất khuyên dùng. Theo anh đó là một công cụ khá mạnh, không miễn phí nhưng cũng không đắt khủng khiếp. Theo ý anh, ưu điểm lớn hơn cái nhược điểm rất nhỏ về giá của durable agent. Nhưng anh cũng nói có thể còn điều gì đó anh đang bỏ sót, một nhược điểm lớn hơn của durable agent mà anh chưa nhận thức hết.

Anh khép lại video, mong người xem thấy nó thú vị, và cảm ơn mọi người đã xem.

## Nguồn và liên kết

- Tên gốc: This fundamentally changed the way I build agents
- Sự kiện: [YouTube](https://homus.dev/events/youtube)
- Video gốc: [https://www.youtube.com/watch?v=FVgg5uefFYQ](https://www.youtube.com/watch?v=FVgg5uefFYQ)

- Kênh YouTube Your Average Tech Bro (Your Average Tech Bro): [youtube.com/channel/UCfQk5qGOEO5cPPDFlQe2lFQ](https://www.youtube.com/channel/UCfQk5qGOEO5cPPDFlQe2lFQ)

- Tài liệu Vercel Workflows: durable function với 'use workflow' và 'use step', retry step lỗi (đọc ngày 31/10/2026): [vercel.com/docs/workflows](https://vercel.com/docs/workflows)

- Workflow SDK, trang có mục Reliability-as-code và Effortless setup xuất hiện trong video (đọc ngày 31/10/2026): [workflow-sdk.dev](https://workflow-sdk.dev/)

- AI SDK (đọc ngày 31/10/2026): [ai-sdk.dev](https://ai-sdk.dev/)

- Tài liệu Upstash Workflow, phần giới thiệu: durable serverless function, tự retry khi lỗi (đọc ngày 31/10/2026): [upstash.com/docs/workflow/getstarted](https://upstash.com/docs/workflow/getstarted)

- Tài liệu Upstash Workflow, Realtime Quickstart (đọc ngày 31/10/2026): [upstash.com/docs/workflow/howto/realtime/basic](https://upstash.com/docs/workflow/howto/realtime/basic)

- Trang giá [Trigger.dev](https://trigger.dev), bảng Compute pricing theo giây (đọc ngày 31/10/2026): [trigger.dev/pricing](https://trigger.dev/pricing)

Nguồn: https://homus.dev/talks/this-fundamentally-changed-the-way-i-build-agents · cập nhật 2026-10-31
