Bỏ qua tới nội dung chính
Quay lại tin tức

React cho các tác nhân: Người tạo Astro mang Hooks vào Meta-Harness của mình, Flue

Latent Space· Richard MacManus· 15/8/2026models

Các khuôn khổ tác nhân (agent frameworks) dành cho nhà phát triển vẫn đang ở giai đoạn đầu, với các sản phẩm như eve của Vercel và Flue của Fred Schott – cả hai đều ra mắt trong năm nay – đang định hình những mẫu hình ban đầu. Ông Schott là người tạo ra khuôn khổ web Astro, dẫn đến việc công ty của ông được Cloudflare mua lại vào tháng 1. Ông vừa phát hành phiên bản 2 của Flue, đây là bản phát hành ổn định đầu tiên, có nền tảng là "Agent Hooks" theo phong cách React. Trong Flue, một tác nhân được biểu thị bằng một hàm JavaScript. Hàm này "kết xuất lại sau mỗi lượt", nghĩa là trước mỗi lần gọi mô hình.

Các khuôn khổ tác nhân (agent frameworks) dành cho nhà phát triển vẫn đang ở giai đoạn đầu, với các sản phẩm như eve của Vercel và Flue của Fred Schott – cả hai đều ra mắt trong năm nay – đang định hình mẫu ban đầu. Schott là người tạo ra khuôn khổ web Astro, dẫn đến việc công ty của ông được Cloudflare mua lại vào tháng 1. Ông vừa phát hành phiên bản 2 của Flue, bản phát hành ổn định đầu tiên, có nền tảng là "Agent Hooks" theo phong cách React. Trong Flue, một tác nhân được biểu thị bằng một hàm JavaScript. Hàm này "kết xuất lại sau mỗi lượt" (re-renders on every turn), nghĩa là trước mỗi lần gọi mô hình. Việc bổ sung các hook (móc) được thực hiện sau khi 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 tác nhân. Ông chia sẻ: "Ban đầu tôi đã tweet rằng chúng tôi đang xây dựng Astro cho các tác nhân hoặc Next.js cho các tác nhân. Nhưng sau đó tôi nhận ra: có lẽ chưa ai xây dựng React cho các tác nhân." Ghi chú của Biên tập viên: Chúng tôi đã thảo luận về React cho các tác nhân với Bret Taylor, Giám đốc điều hành của Sierra và Chủ tịch OpenAI: "Chúng tôi vẫn đang cố gắng tìm ra các tác nhân phản ứng là gì và vẫn chưa có kết luận cuối cùng... Chúng tôi đang ở kỷ nguyên jQuery của các tác nhân, chứ không phải kỷ nguyên React." Các hook được viết bằng TypeScript. Theo bài đăng ra mắt Flue 2, chúng "cho phép bạn xây dựng các tác nhân động có thể quản lý trạng thái của riêng mình, lắng nghe các sự kiện vòng đời của tác nhân và thậm chí gắn các tài nguyên và khả năng khác nhau một cách linh hoạt để tăng cường bản thân trong thời gian chạy." Có 16 hook tích hợp sẵn trong Flue 2, bao gồm useSkill(), useTool(), useSubagent(). Người dùng cũng có thể thêm các hook tùy chỉnh. Flue đã phát triển như thế nào thông qua các hook kiểu React; sơ đồ của Richard MacManus Điều mà các hook mang lại cho nhà phát triển là chúng giúp tác nhân trở nên năng động hơn nhiều, bằng cách cho phép cấu hình của nó thay đổi khi một cuộc trò chuyện hoặc quy trình làm việc tiến triển. Ông Schott cho biết điều 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ự", bởi vì chúng không thể được cấu hình hoàn chỉnh từ trước. Tác nhân không thể chỉ tĩnh – nó phải thích ứng theo thời gian thực với những gì người dùng muốn hoặc tình huống yêu cầu. Các hook tác nhân (agent hook) mang những khả năng này đến Flue. Ví dụ, một tác nhân hỗ trợ có thể tích hợp công cụ quản lý tài khoản sau khi xác minh người dùng. **"File based magic" là một mô hình phản mẫu** Suy nghĩ của ông Schott về cách xây dựng một khung tác nhân (agent framework) đã phát triển nhanh chóng kể từ khi ông công khai ra mắt Flue 1 vào đầu tháng 5. Ban đầu, ông muốn lấy các khái niệm khung web hiện có và áp dụng chúng vào khung tác nhân mới của mình. Ông lấy định tuyến dựa trên tệp (file-based routing) làm ví dụ. "Vì vậy, chúng tôi đã khá ngây thơ khi chuyển nó sang Flue, nghĩ rằng – tuyệt vời, tôi sẽ đặt năm tác nhân của bạn vào năm tệp này, và đó sẽ là năm tuyến đường mà chúng hiển thị. Nhưng đối với nhiều người xây dựng với Flue, đặc biệt là các khách hàng lớn hơn, toàn bộ công ty của họ là một tác nhân. Họ không quan tâm đến định tuyến. Chỉ có một tác nhân." Vì vậy, sau khi những người dùng Flue đầu tiên thể hiện các mẫu ban đầu này, khả năng kết hợp (composability) đã trở thành ưu tiên hàng đầu đối với ông Schott. Điều đó đã đưa ông trở lại với React. "Như bạn có thể thấy từ API của Flue 2, chúng tôi lấy cảm hứng từ React nhiều hơn [...] so với Astro hay Next.js – nơi mà nó ít về định tuyến và các khái niệm trang web này, mà tập trung hơn vào, ở cấp độ cơ bản nhất, làm thế nào để bạn kết hợp một tác nhân trên nhiều thứ khác nhau?" **Đề xuất cốt lõi của Flue: các tác nhân cần một "harness"** Một khái niệm quan trọng trong Flue là một tác nhân phải có một "harness" (khung điều khiển) – nghĩa là nó nằm trong một môi trường mà nó 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. Ông Schott giải thích: "Thay vì bạn và mã của bạn điều khiển LLM và ra lệnh cho nó làm gì bằng các tập lệnh, bạn đang đặt tác nhân vào khung điều khiển này, và nó có thể tự điều khiển và giải quyết vấn đề." Flue được xây dựng dựa trên Pi, một khung điều khiển tối giản mã nguồn mở. Về cơ bản, Flue là một phiên bản có quan điểm riêng dựa trên Pi – bổ sung các tính năng mà ông Schott cho rằng hữu ích cho các nhà phát triển xây dựng tác nhân. Ví dụ: các tác nhân được lưu trữ trong Flue 2 hiện được xây dựng bằng Vite, một công cụ xây dựng mã nguồn mở. Thực tế, ông Schott ví vai trò của Pi giống như vai trò nền tảng mà Vite hiện đang đóng bên dưới Astro. "Tôi nghĩ Pi có thể đóng vai trò đó, nơi nó là một lớp trừu tượng phù hợp – nó không làm quá nhiều, nhưng nó cung cấp các API phù hợp để sau đó chúng ta có thể nói, hãy có một quan điểm riêng về điều này để làm được nhiều hơn." Việc xây dựng Pi đồng nghĩa với việc cam kết có một bộ khung tác nhân (agent harness) tích hợp sẵn. Ông Schott cho biết: “Dự đoán ban đầu của chúng tôi là bộ khung này thực sự không phải là một tính năng, mà nó là yếu tố cơ bản để định nghĩa một tác nhân. Không có tác nhân nào tồn tại mà không có bộ khung.” **Xây dựng tác nhân Flue bằng tác nhân mã hóa** Dự án Flue bắt đầu vào đầu năm nay trong kho lưu trữ Astro, với vai trò là một hệ thống phân loại vấn đề (issue-triage system). Ban đầu, đó là một tập lệnh hoặc quy trình làm việc do LLM điều khiển để xem xét các vấn đề. Nhưng sau đó, ông Schott giải thích, nó đã có khả năng thực hiện các hành động trong kho lưu trữ. “Nó bắt đầu chuyển đổi từ việc chỉ tự động hóa trong một kho lưu trữ sang mong muốn đưa trải nghiệm Claude Code, biến nó thành không giao diện (headless), có thể lưu trữ và chạy trên đám mây.” Đó là lúc ý tưởng về một bộ khung làm nền tảng xuất hiện. Thực tế, trong bài đăng ra mắt phiên bản 1 vào đầu tháng 5, ông Schott đã mô tả Flue là “giống như Claude Code, nhưng hoàn toàn không giao diện và có thể lập trình được.” Người viết đã tự mình thử nghiệm Flue bằng cách sử dụng Claude Code, công cụ này đã hướng dẫn thiết lập tác nhân Flue đầu tiên. Ông Schott cũng xác nhận đây là cách nhiều nhà phát triển sử dụng Flue. Ông nói, liên quan đến các tác nhân mã hóa AI: “Chúng tôi thực sự đang xây dựng cho họ. Toàn bộ quy trình giới thiệu của chúng tôi là bạn chỉ cần chuyển lời nhắc này cho tác nhân của mình, nó sẽ hướng dẫn bạn thực hiện. Tất cả tài liệu của chúng tôi đều hỗ trợ định dạng Markdown.” **Vị trí của Flue trong ngăn xếp phát triển tác nhân** So sánh gần nhất với Flue là eve của Vercel, vốn cũng coi bộ khung là nền tảng. Vercel và Cloudflare đã

Nguồn tin: Latent Space — Tác giả: Richard MacManus. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.