# Fred Schott từ Astro mang "React cho agent" đến Flue V2 với hooks

Đăng ngày: 2026-08-23

Tôi vừa đọc một thông tin khá thú vị về Flue, một framework phát triển agent do Fred Schott, cha đẻ của Astro, tạo ra. Sau khi công ty của anh được Cloudflare mua lại vào tháng 1, Schott đã tiếp tục phát triển Flue và giờ đây, Flue 2 đã chính thức ra mắt như một phiên bản ổn định đầu tiên. Điểm nhấn lớn nhất của bản cập nhật này chính là việc tích hợp "Agent Hooks" theo phong cách React, một cách tiếp cận mà Schott tin rằng sẽ định hình lại cách chúng ta xây dựng các hệ thống agent. Trong Flue, một agent được biểu diễn bằng một hàm JavaScript và được "render lại trong mỗi lượt" – nghĩa là trước mỗi lần gọi mô hình. Schott nhận ra rằng khả năng kết hợp (composability) của React sẽ rất phù hợp cho việc phát triển agent. Anh từng chia sẻ mình đã nghĩ tới việc xây dựng "Astro cho agent" hoặc "Next.js cho agent", nhưng rồi nhận ra rằng "có lẽ chưa ai xây dựng React cho agent cả." Điều này gợi nhớ đến lời nhận định của Bret Taylor (CEO Sierra, Chủ tịch OpenAI) rằng chúng ta vẫn đang ở "kỷ nguyên jQuery của agent, chứ chưa phải kỷ nguyên React." Các hooks này được viết bằng TypeScript và theo bài đăng ra mắt Flue 2, chúng cho phép xây dựng các agent động có khả năng quản lý trạng thái, lắng nghe các sự kiện vòng đời, và thậm chí gắn thêm các tài nguyên, năng lực khác một cách linh hoạt tại thời điểm chạy. Flue 2 đi kèm với 16 hook tích hợp sẵn, bao gồm useSkill(), useTool(), useSubagent(), và cũng cho phép tạo custom hook. Việc ứng dụng hooks mở ra khả năng lớn cho các nhà phát triển, giúp agent trở nên linh hoạt hơn nhiều bằng cách cho phép cấu hình của chúng thay đổi khi một cuộc trò chuyện hoặc quy trình làm việc tiến triển. Schott nhấn mạnh rằng khả năng này là cần thiết để xây dựng "các bot hỗ trợ thực sự, các bot phân loại thực sự", vì chúng không thể được cấu hình hoàn chỉnh từ trước. Một agent cần có khả năng thích ứng theo thời gian thực với mong muốn của người dùng hoặc yêu cầu của tình huống. Ví dụ, một agent hỗ trợ có thể kích hoạt công cụ quản lý tài khoản sau khi xác minh người dùng. Sự tiến hóa trong tư duy của Schott từ việc cố gắng áp dụng các khái niệm framework web truyền thống như định tuyến dựa trên tệp (file-based routing) đã dẫn anh quay trở lại với React, tập trung vào cách "kết hợp một agent từ nhiều thứ khác nhau" thay vì các khái niệm website. Một khái niệm cốt lõi trong Flue là agent phải có một "harness" – nghĩa là nó tồn tại trong một môi trường có quyền truy cập vào ngữ cảnh và các khả năng cần thiết để hoàn thành các nhiệm vụ khác nhau. Schott giải thích: "Thay vì bạn và code của bạn điều khiển LLM và ra lệnh cho nó bằng các script, bạn đặt agent vào 'harness' này, và nó có thể tự điều khiển, tự giải quyết vấn đề." Flue được xây dựng trên Pi, một harness mã nguồn mở tối giản. Về cơ bản, Flue là một cách tiếp cận có chủ đích hơn trên nền Pi, bổ sung các tính năng hữu ích cho nhà phát triển. Schott so sánh vai trò của Pi với Vite trong Astro: một nền tảng cơ bản với các API phù hợp để Flue xây dựng thêm các tính năng mở rộng. Dự án Flue ban đầu cũng xuất phát từ một hệ thống phân loại vấn đề trong kho mã nguồn Astro, dần dần phát triển từ một script tự động hóa thành một trải nghiệm Claude Code "headless và có thể lập trình được." Trong bức tranh phát triển agent, Flue và Vercel’s eve là những đối thủ cạnh tranh trực tiếp nhất, đều xem harness là nền tảng. Tuy nhiên, Schott cũng dành lời khen ngợi cho eve. Điều đáng chú ý là Flue rất chú trọng đến trải nghiệm dành cho các AI coding agent – bản thân tôi cũng đã dùng Claude Code để thiết lập agent đầu tiên của mình trên Flue. Điều này cho thấy định hướng rõ ràng của Flue trong việc phục vụ một phân khúc nhà phát triển cụ thể. Với Flue 2 và Agent Hooks, Schott đang đặt nền móng cho một kỷ nguyên phát triển agent linh hoạt, mạnh mẽ và gần gũi hơn với cách chúng ta đã quen thuộc trong thế giới phát triển web hiện đại.

Canonical: https://www.tungpham.vn/blog/fred-schott-tu-astro-mang-react-cho-agent-den-flue-v2-voi-hooks
