Daemons: Giải pháp mới để dọn dẹp "nợ vận hành" do AI Agents tạo ra
Sau gần hai năm phát triển coding agent, đội ngũ Charlie đã chuyển hướng sang một khái niệm mới gọi là "Daemons". Đây là các quy trình nền tự động được định nghĩa bằng file Markdown, giúp duy trì mã nguồn, tài liệu và xử lý các vấn đề kỹ thuật mà các AI agent tạo ra, giải quyết bài toán "nợ vận hành" trong phát triển phần mềm.

Daemons: Giải pháp mới để dọn dẹp "nợ vận hành" do AI Agents tạo ra
Trong gần hai năm qua, đội ngũ phát triển Charlie đã tập trung xây dựng một coding agent tự động, hoạt động trên nền tảng đám mây và chuyên về TypeScript. Tuy nhiên, sự bùng nổ của các mô hình ngôn ngữ lớn (LLM) và AI agent đã vượt xa cả những dự báo lạc quan nhất của họ. Mặc dù việc sử dụng agent để viết mã nguồn đã trở nên phổ biến, thực tế cho thấy nó không hoàn toàn thuận buồm xuôi gió, đặc biệt là với các đội ngũ phát triển phần mềm (dev team) làm việc với tốc độ cao.
Vấn đề cốt lõi nằm ở chỗ: càng sử dụng nhiều agent, khối lượng công việc tạo ra càng lớn. Hàng chục pull requests (PR) khiến mã nguồn cũ nhanh chóng lỗi thời, tài liệu bị lạc hậu và các dependency trở nên cũ kỹ. Các lập trình viên quá tập trung vào việc đẩy code mới nên những công việc bảo trì quan trọng này thường bị bỏ quên. Chính vì thế, Charlie đã chuyển hướng từ việc xây dựng agent sang tạo ra một bước tiến cần thiết tiếp theo cho phát triển phần mềm hỗ trợ AI: Daemons.
Daemons là gì?
Được đặt tên theo các quy trình nền quen thuộc trong Linux, Daemons là một danh mục sản phẩm mới được xây dựng dành cho các đội ngũ đang phải vật lộn với sự trì trệ vận hành do đầu ra của các agent tạo ra. Khác với agent được con người khởi tạo, Daemons là tự khởi tạo (self-initiated). Chúng quan sát môi trường, phát hiện sự thay đổi và hành động mà không cần con người đưa ra lệnh.
Bạn có thể thêm Daemons vào codebase của mình chỉ bằng cách thêm một file .md vào kho lưu trữ (repo). Chúng hoạt động theo cơ chế "cài đặt và quên nó đi" (set-it-and-forget-it), giúp cuộc sống của đội ngũ dễ dàng hơn và tăng tốc độ dự án.
Cách hoạt động: Định nghĩa vai trò bằng Markdown
Daemons được định nghĩa trong các file Markdown nằm ngay trong repo của bạn. Bạn chỉ cần định nghĩa vai trò một lần — bao gồm những gì nó cần theo dõi (watch), những việc nó làm (routines), và những việc nó không được phép làm (deny) — và daemon sẽ lo phần còn lại.
Cấu trúc của một file Daemon bao gồm hai phần chính:
- Frontmatter: Các trường khai báo nằm giữa các dấu
---định nghĩa bản chất của daemon: tên, mục đích, điều kiện kích hoạt, các quy trình thường xuyên, các quy tắc cấm và lịch trình. - Nội dung: Phần Markdown bên dưới frontmatter định nghĩa cách daemon vận hành: chính sách, định dạng đầu ra, quy trình thăng cấp, giới hạn và hơn thế nữa.
Đây là một định dạng mở (open format), nghĩa là cùng một file có thể hoạt động trên bất kỳ nhà cung cấp nào hỗ trợ thông số kỹ thuật này.
Agent tạo ra công việc, Daemon duy trì nó
Sự khác biệt cơ bản giữa Agent và Daemon nằm ở tính chủ động:
- Agents (Khởi tạo bởi con người): Xây dựng tính năng, sửa lỗi, đẩy code.
- Daemons (Tự khởi tạo): Quan sát, phát hiện, sửa chữa và lặp lại. Không cần prompt.
Khi các agent giúp đội ngũ ship code nhanh hơn, chúng cũng tạo ra "nợ vận hành" (operational debt) nhanh hơn. Daemons đóng vai trò thanh toán khoản nợ này bằng cách tự động hóa các công việc dọn dẹp.
Thư viện Daemon và các trường hợp sử dụng
Daemons được thiết kế để xử lý các công việc lặp đi lặp lại nhưng quan trọng. Dưới đây là một số ví dụ điển hình:
- Quản lý dự án (Project Manager): Giữ cho các vấn đề (issues) luôn được cập nhật. Ví dụ, Issue Labeler tự động gắn nhãn cho các Linear issue khi chúng được tạo ra.
- Phân loại lỗi (Bug Triage): Theo dõi bug tracker để ngăn chặn sự tái diễn. Ví dụ, Bug Triage sẽ đặt mức độ ưu tiên dựa trên dữ liệu tác động từ Sentry, gán vấn đề cho chủ sở hữu theo CODEOWNERS và đăng nhận xét phân tích nguyên nhân gốc rễ.
- Người duy trì codebase (Codebase Maintainer): Giữ cho dependencies được cập nhật và các bản vá (patches) hoạt động. Daemon này có thể cập nhật các dependency lỗi thời, vá các lỗ hổng bảo mật đã biết và dọn dẹp mã chết.
- Thủ thư (Librarian): Giữ tài liệu của kho lưu trữ chính xác và đầy đủ. Nó phát hiện tài liệu lỗi thời dựa trên các thay đổi code gần đây và cập nhật chúng, đồng thời sửa các liên kết bị hỏng.
Tự chủ và Kiểm soát
Daemons tỏa sáng trong các công việc đang diễn liên tục. Hãy sử dụng agent để xây dựng, và sử dụng daemon để duy trì những gì bạn đã xây dựng.
Mỗi hành động của daemon là một việc mà con người không cần phải chú ý, quyết định và khởi tạo. Daemon thực hiện các vai trò cụ thể, ngày càng tốt hơn theo thời gian và luôn tuân theo các quy ước của đội ngũ bạn. Hành vi dự đoán được tạo ra niềm tin, từ đó cho phép tự chủ cao hơn.
Bạn định nghĩa một vai trò, không phải một nhiệm vụ. Một nhiệm vụ có bắt đầu, kết thúc và tiêu chí hoàn thành. Một vai trò là trách nhiệm liên tục với sự phán xét. File daemon chính là mô tả vai trò đó.
"Các Charlie Daemons đang hoạt động rất, rất hiệu quả, cả trong việc bình luận và dọn dẹp things trong Linear cũng như các hành động dựa trên sự kiện trên GitHub. Chúng tôi đang di chuyển nhanh chóng với các agent đến mức việc có Daemons canh lưng để đảm bảo chúng ta duy trì được tốc độ tăng trưởng này thực sự tuyệt vời." — Jasper Croome, aarden.ai
Với cơ sở hạ tầng luôn hoạt động và cấu hình nằm ngay trong repo của bạn, Daemons hứa hẹn sẽ là mảnh ghép còn thiếu trong hệ sinh thái phát triển phần mềm được hỗ trợ bởi AI, giúp các đội ngũ công nghệ tập trung vào sáng tạo thay vì lo lắng về việc dọn dẹp.
Bài viết liên quan

Phần mềm
Cal.diy: Phiên bản mã nguồn mở hoàn toàn của Cal.com dành cho cộng đồng
21 tháng 4, 2026

Công nghệ
X tăng giá API đăng link lên tới 1.900%, gây khó khăn cho các nhà xuất bản
21 tháng 4, 2026

Phần mềm
pnpm 11 RC ra mắt: Yêu cầu Node.js 22, bảo mật chuỗi cung ứng mặc định và định dạng lưu trữ mới
21 tháng 4, 2026
