
Files over tools: Xây dựng AI Agent với hệ thống tập tin ảo và Bash
Khám phá cách Knock xây dựng AI Agent đột phá bằng cách sử dụng hệ thống tập tin ảo (virtual filesystem) và Bash thay vì các công cụ API truyền thống, giúp tối ưu hóa khả năng truy xuất ngữ cảnh và thực thi tác vụ.
Bài viết được dịch và tổng hợp từ tin tức gốc. Bạn có thể đọc bài viết gốc bằng tiếng Anh tại đây.
Điểm tin nhanh:
- Thay vì phụ thuộc vào các tool API phức tạp, Knock xây dựng AI Agent dựa trên hệ thống tập tin ảo và Bash để quản lý tài nguyên.
- Sử dụng filesystem giúp agent dễ dàng đọc, chỉnh sửa và duy trì ngữ cảnh thông qua các tệp tin thay vì context window hạn hẹp.
- Hệ thống tích hợp khả năng tự học thông qua các kỹ năng (skills) được định nghĩa dưới dạng tệp tin, giúp agent mở rộng năng lực linh hoạt.
Việc xây dựng các AI Agent có khả năng thực thi tác vụ thực tế trong môi trường sản xuất luôn là bài toán đau đầu cho các kỹ sư. Thay vì sa đà vào việc tạo ra hàng chục công cụ API rời rạc, đội ngũ tại Knock đã chọn một hướng đi khác biệt: biến hệ thống tập tin thành trung tâm điều khiển. Cách tiếp cận này không chỉ giúp agent hiểu rõ cấu trúc dữ liệu mà còn tạo ra một cơ chế làm việc nhất quán, tương tự như cách các kỹ sư thao tác trên terminal hằng ngày.
Kiến trúc Filesystem-based Agent
Thay vì gọi các API endpoint phức tạp, agent của Knock được cung cấp một môi trường sandbox với hệ thống tập tin ảo. Các thao tác chính được thực hiện thông qua các lệnh đơn giản:
- read_file: Đọc nội dung tệp tin, ưu tiên sử dụng thay vì cat.
- edit_file: Thực hiện chỉnh sửa có mục tiêu (thay thế chuỗi x bằng y).
- write_file: Ghi đè hoặc tạo mới tệp tin.
- upsert_resource: Đồng bộ hóa các thay đổi từ filesystem ngược lại hệ thống quản lý của Knock.

Sơ đồ trên cho thấy cách agent tương tác với môi trường. Việc sử dụng filesystem giúp agent có thể xử lý các tác vụ phức tạp như xây dựng công cụ quét mạng Local-first một cách hiệu quả hơn nhờ vào cấu trúc dữ liệu phân cấp rõ ràng.
Bảng so sánh phương pháp tiếp cận
| Đặc điểm | Phương pháp Tool-based truyền thống | Phương pháp Filesystem-based (Knock) |
|---|---|---|
| Quản lý ngữ cảnh | Phụ thuộc vào prompt | Lưu trữ qua tệp tin (filesystem) |
| Khả năng mở rộng | Khó khăn khi thêm API mới | Dễ dàng thêm tệp tin kỹ năng mới |
| Debugging | Phức tạp, khó theo dõi log | Trực quan qua event log và file log |
| Độ phức tạp | Cao (nhiều tool, nhiều endpoint) | Thấp (tập trung vào thao tác file) |
Tích hợp kỹ năng (Skills) và CLI
Để agent có thể làm việc với nhiều domain khác nhau, Knock đã chuyển đổi thông tin sản phẩm thành các tệp tin kỹ năng (skills). Mỗi kỹ năng chứa đựng kiến thức về tài nguyên, các lưu ý và cạm bẫy thường gặp. Khi agent cần học một kỹ năng mới, nó sẽ gọi công cụ skill để nạp metadata vào context window.
Mẹo hay: Việc tách biệt logic nghiệp vụ vào các tệp tin Markdown giúp bạn dễ dàng quản lý và cập nhật kiến thức cho AI mà không cần can thiệp vào mã nguồn lõi, tương tự như cách tối ưu hóa README trên GitHub.
Bên cạnh đó, thay vì tạo tool cho mọi thứ, Knock tích hợp một CLI tùy chỉnh vào instance Bash của agent. Điều này cho phép agent thực hiện các truy vấn log phức tạp thông qua các lệnh như knock api_logs list. Đây là một bước tiến quan trọng trong việc tối ưu hóa quy trình debug hệ thống mà bất kỳ kỹ sư nào cũng nên tham khảo.

Observability và Evals
Để đảm bảo tính ổn định, Knock sử dụng OpenTelemetry để theo dõi hành vi của agent. Họ cũng áp dụng phương pháp LLM-as-judge để đánh giá kết quả thực thi, đảm bảo agent luôn tuân thủ các quy tắc nghiệp vụ. Việc này tương tự như cách các đội ngũ kỹ thuật quản trị AI cho đội ngũ kỹ thuật để duy trì sự bền vững.

Đánh giá & Lời khuyên Thực tiễn
Ưu điểm
- Tính nhất quán cao: Agent làm việc với tệp tin giúp giảm thiểu sai sót do sự không đồng nhất của các API response.
- Khả năng mở rộng: Dễ dàng thêm mới các kỹ năng mà không làm phình to system prompt.
- Dễ debug: Mọi thao tác đều để lại dấu vết trên filesystem và log.
Nhược điểm và rủi ro
- Bảo mật: Cần kiểm soát chặt chẽ quyền truy cập filesystem để tránh việc agent ghi đè các tệp tin hệ thống quan trọng.
- Hiệu năng: Việc đọc/ghi tệp tin liên tục có thể gây trễ nếu không được tối ưu hóa bộ nhớ đệm (caching).
Lời khuyên
- Khi triển khai, hãy áp dụng cơ chế sandbox nghiêm ngặt cho môi trường thực thi của agent.
- Luôn có hệ thống giám sát (observability) để phát hiện sớm các hành vi bất thường của agent trước khi nó gây ra lỗi hệ thống.
Câu hỏi thường gặp (FAQ)
Tại sao lại chọn filesystem thay vì API?
Filesystem cung cấp một cấu trúc dữ liệu tự nhiên, giúp agent dễ dàng hiểu được mối quan hệ giữa các tài nguyên thay vì phải xử lý các JSON response rời rạc.
Làm thế nào để đảm bảo agent không làm hỏng dữ liệu?
Việc sử dụng các lệnh giới hạn (read, edit, write) cùng với cơ chế kiểm tra (evals) giúp đảm bảo mọi thay đổi đều nằm trong tầm kiểm soát.
Giải pháp này có phù hợp cho mọi dự án không?
Nó đặc biệt hiệu quả với các hệ thống có cấu trúc tài nguyên phức tạp, nơi việc quản lý trạng thái qua tệp tin mang lại sự minh bạch cao hơn.
Kết luận
Việc xây dựng AI Agent với nền tảng filesystem không chỉ là một thử nghiệm kỹ thuật thú vị mà còn là giải pháp thực tế giúp giải quyết các bài toán phức tạp trong vận hành phần mềm. Bằng cách tập trung vào sự đơn giản và tính nhất quán, Knock đã tạo ra một hướng đi đầy hứa hẹn cho tương lai của các hệ thống tự hành. Hãy bắt đầu tối ưu hóa quy trình của bạn ngay hôm nay và đừng quên theo dõi hi_dev để cập nhật những xu hướng công nghệ mới nhất.
Do you like this post?
Upvote to push this post higher on the community feed





