Vì sao hệ thống tệp đang được chú ý
(madalitso.me)- Gần đây, trong hệ sinh thái AI agent, hệ thống tệp lại được chú ý khi nổi lên như một phương tiện quản lý ngữ cảnh bền vững khác với cơ sở dữ liệu
- Context window của LLM gần giống một bảng trắng liên tục bị xóa hơn là bộ nhớ bền vững, và hệ thống tệp là phương tiện lưu trữ lâu dài đơn giản nhất để giải quyết điều này
- Claude Code, Cursor và các công cụ tương tự hiện thực hóa trí nhớ dài hạn thông qua lưu trữ ngữ cảnh dựa trên tệp, với các tệp như
CLAUDE.md,aboutme.mdđóng vai trò chứa danh tính của agent và thông tin môi trường - Quản lý ngữ cảnh dựa trên hệ thống tệp đang nổi lên như chủ đề trọng tâm, khi các công ty lớn như LlamaIndex, LangChain, Oracle, Archil lần lượt công bố bài viết và sản phẩm liên quan
- Trong bối cảnh các tệp ngữ cảnh cho agent như
CLAUDE.md,AGENTS.md,.cursorrulesmọc lên ngày càng nhiều, định dạng Agent Skills (SKILL.md) của Anthropic đã được Microsoft, OpenAI, GitHub, Cursor... chấp nhận, qua đó đạt được tính tương tác - Theo nghiên cứu của ETH Zürich, các tệp ngữ cảnh có thể lại làm giảm tỷ lệ thành công của tác vụ và tăng chi phí suy luận hơn 20%, nên chỉ nên mô tả những yêu cầu tối thiểu cần thiết
- Tệp không bị ràng buộc vào một ứng dụng cụ thể, và trong thời đại AI agent, chúng đang trở thành giao diện mở cho phép chuyển đổi giữa các công cụ, kết hợp workflow và duy trì tính liên tục
Everyone is talking about files : Mọi nơi đều đang nói về tệp
- LlamaIndex đã công bố "Files Are All You Need", còn LangChain đề cập đến cách agent có thể dùng hệ thống tệp cho context engineering
- Oracle (đúng là Oracle đó!) đã đăng bài so sánh hệ thống tệp và cơ sở dữ liệu trong quản lý bộ nhớ cho agent, còn Dan Abramov đề xuất một social filesystem dựa trên AT Protocol
- Archil đang xây dựng cloud volume vì agent muốn hệ thống tệp POSIX
- Jerry Liu của LlamaIndex cho rằng thay vì "một agent có hàng trăm công cụ", chỉ cần hệ thống tệp và 5~10 công cụ cũng có thể tổng dụng hơn một agent có hơn 100 công cụ MCP
- Karpathy chỉ ra rằng lý do Claude Code hoạt động hiệu quả là vì nó chạy trực tiếp trên máy tính, môi trường, dữ liệu và ngữ cảnh của người dùng; ông đánh giá việc OpenAI tập trung vào triển khai container trên đám mây là đi sai hướng
- Hiện nay, coding agent chiếm phần lớn các trường hợp ứng dụng AI thực tế, và Anthropic đang tiến gần tới điểm hòa vốn khi công cụ CLI Claude Code kéo một phần đáng kể doanh thu
Context window không phải là ký ức
- Ký ức của con người bao gồm lưu trữ dài hạn, hồi tưởng có chọn lọc và quên đi thông tin không cần thiết, nhưng context window của LLM gần giống một bảng trắng liên tục bị xóa
- Khi dùng Claude Code, lúc thông báo "context left until auto-compact" tiến gần, ngữ cảnh mà agent đã tích lũy như codebase, sở thích hay các quyết định sẽ bị nén lại hoặc mất đi
- Hệ thống tệp giải quyết điều này theo cách đơn giản nhất: ghi lại vào tệp và đọc lại khi cần
CLAUDE.mdcung cấp ngữ cảnh bền vững cho dự án- Cursor lưu lịch sử chat cũ thành các tệp có thể tìm kiếm
- Tệp
aboutme.mdđóng vai trò như một mô tả danh tính có thể di chuyển, chứa sở thích, kỹ năng và phong cách làm việc, có thể đi qua giữa các ứng dụng mà không cần điều phối API
Nghiên cứu của ETH Zürich: nghịch lý của tệp ngữ cảnh
- Một bài báo gần đây của ETH Zürich đánh giá liệu các tệp ngữ cảnh ở cấp độ repository có thực sự giúp coding agent hoàn thành tác vụ hay không
- Kết quả trái trực giác: trên nhiều agent và mô hình, các tệp ngữ cảnh lại làm giảm tỷ lệ thành công của tác vụ, trong khi chi phí suy luận tăng hơn 20%
- Các agent nhận được tệp ngữ cảnh tìm kiếm rộng hơn, chạy nhiều bài test hơn và đi qua nhiều tệp hơn, nhưng lại chậm tiếp cận đoạn mã thực sự cần sửa
- Tệp hoạt động như một checklist mà agent bám theo quá mức nghiêm túc
- Kết luận của bài báo không phải là "đừng dùng tệp ngữ cảnh", mà là những yêu cầu không cần thiết sẽ khiến tác vụ khó hơn, và tệp ngữ cảnh chỉ nên mô tả các yêu cầu tối thiểu
- Vấn đề không nằm ở lớp bền vững của hệ thống tệp, mà ở thói quen viết
CLAUDE.mdnhư một tài liệu onboarding dài 2.000 từ
Định dạng tệp chính là API — nhưng là tệp nào?
- Hiện tại
CLAUDE.md,AGENTS.md,copilot-instructions.md,.cursorrulescùng tồn tại; mọi người đã đồng thuận rằng agent cần ngữ cảnh bền vững dựa trên hệ thống tệp, nhưng tên tệp và định dạng nội dung vẫn chưa thống nhất - Trong bài viết về social filesystem của Dan Abramov, thiết kế cốt lõi là: AT Protocol coi dữ liệu người dùng như các tệp trong repository cá nhân, còn các ứng dụng không cần phải thống nhất "bài post" là gì vì có thể tránh xung đột bằng namespace dựa trên tên miền
- Cơ sở dữ liệu của mọi ứng dụng trở thành dữ liệu phát sinh, tức các materialized view được cache từ toàn bộ thư mục của người dùng
- Anthropic công bố Agent Skills như một tiêu chuẩn mở: định dạng
SKILL.mdđã được Microsoft, OpenAI, Atlassian, GitHub, Cursor chấp nhận- Kỹ năng viết cho Claude Code cũng chạy được trên Codex và Copilot — định dạng tệp chính là API
- NanoClaw là framework AI assistant cá nhân gọn nhẹ, áp dụng mô hình "skill thay vì function"
- Nếu cần hỗ trợ Telegram, sẽ không phải là một module Telegram mà là skill
/add-telegram(một tệp Markdown) dạy Claude Code cách tích hợp - Vì skill là tệp nên chúng có thể di chuyển, kiểm toán và kết hợp được — không cần MCP server hay chợ plugin
- Nếu cần hỗ trợ Telegram, sẽ không phải là một module Telegram mà là skill
- Đây chính là khả năng tương tác không cần điều phối: nếu hai ứng dụng đều đọc được Markdown thì có thể chia sẻ ngữ cảnh; nếu hiểu định dạng
SKILL.mdthì có thể chia sẻ tính năng; không cần hợp đồng đối tác hay cuộc họp của tổ chức tiêu chuẩn hóa, vì chính định dạng tệp đảm nhiệm vai trò điều phối
Sự dịch chuyển của nút thắt cổ chai
- Kiến trúc dữ liệu truyền thống được thiết kế dựa trên giả định lưu trữ là nút thắt cổ chai, nhưng khi năng lực xử lý vượt I/O lưu trữ, mô hình đã chuyển sang tách biệt storage và compute (S3 + cụm compute tạm thời)
- Hiện tượng tương tự cũng xảy ra với AI agent: nút thắt cổ chai không còn là hiệu năng mô hình hay compute mà là ngữ cảnh
- Mô hình đã đủ thông minh nhưng lại mau quên
- Hệ thống tệp là cách hiệu quả nhất để quản lý ngữ cảnh bền vững ngay tại nơi agent đang chạy (máy của lập trình viên, nơi môi trường và dữ liệu đã sẵn có)
Hệ thống tệp vốn đã là đồ thị
- Có ý kiến trên Twitter rằng những người nói "dùng hệ thống tệp nên agent không cần đồ thị" thực ra đang phủ nhận việc mình đang dùng đồ thị
- Hệ thống tệp là một cấu trúc cây gồm thư mục, thư mục con và tệp, tức một directed acyclic graph (DAG)
- Khi agent dùng
ls,grep, đọc tệp và lần theo tham chiếu, thực chất nó đang duyệt đồ thị
- Richmond trong bài viết của Oracle đưa ra sự phân biệt sắc nét nhất: hệ thống tệp thắng ở vai trò giao diện, còn cơ sở dữ liệu thắng ở vai trò lớp nền
- Khi cần truy cập đồng thời, semantic search ở quy mô lớn, khử trùng lặp, trọng số độ mới..., cuối cùng bạn sẽ tự xây index, và đó thực chất là cơ sở dữ liệu
- Giao diện tệp mạnh vì nó phổ quát và LLM đã hiểu sẵn; lớp nền dựa trên cơ sở dữ liệu mạnh vì nó cung cấp các bảo đảm cần thiết cho vận hành thực tế
- Tương lai không phải là tệp hay cơ sở dữ liệu, mà là tệp là giao diện để con người và agent tương tác, còn bên dưới là lớp nền phù hợp với từng use case
Đây là sự tái định nghĩa của điện toán cá nhân
- Hệ thống tệp có thể tái định nghĩa ý nghĩa của điện toán cá nhân trong thời đại AI
- Dữ liệu, ngữ cảnh, sở thích, skill và ký ức tồn tại dưới định dạng do người dùng sở hữu, mọi agent đều có thể đọc và không bị khóa vào một ứng dụng cụ thể
aboutme.mdhoạt động được cả với OpenClaw/NanoClaw hôm nay lẫn công cụ mới của ngày mai- Các tệp skill có thể mang đi nơi khác, còn ngữ cảnh dự án vẫn được duy trì xuyên suốt giữa các công cụ
- Đây là hình ảnh mà điện toán cá nhân từng hướng tới trước khi mọi thứ chuyển sang các ứng dụng SaaS đóng và cơ sở dữ liệu độc quyền
- Tệp là giao thức mở nguyên bản, và khi AI agent trở thành giao diện chính của điện toán, chúng trở thành lớp tương tác cho phép chuyển công cụ, kết hợp workflow và duy trì tính liên tục giữa các ứng dụng mà không cần xin phép ai
- Tuy vậy vẫn có khía cạnh lý tưởng hóa: lịch sử của các định dạng mở có rất nhiều tiêu chuẩn thắng trên giấy tờ nhưng thất bại trong thực tế
- Các công ty có động cơ tạo ra tệp ngữ cảnh của riêng mình với khác biệt tinh vi để duy trì chi phí chuyển đổi
- Việc
CLAUDE.md,AGENTS.mdvà.cursorrulesđang cùng tồn tại thay vì hội tụ về một định dạng phổ quát cho thấy mặc định là phân mảnh - Bài báo của ETH Zürich cũng nhắc rằng ngay cả khi có định dạng, việc viết tệp ngữ cảnh tốt vẫn khó, và tệp ngữ cảnh tệ còn tệ hơn cả không có
- Thông điệp cốt lõi của Dan Abramov:
Ký ức, suy nghĩ và thiết kế của chúng ta phải sống lâu hơn phần mềm đã tạo ra chúng
- Đây không phải là một lập luận kỹ thuật mà là vấn đề giá trị; hệ thống tệp phù hợp với vai trò này không phải vì nó là công nghệ tốt nhất, mà vì nó đã là công nghệ duy nhất thuộc về người dùng
1 bình luận
Ý kiến trên Hacker News
Tệp là một dạng tự do căn bản cho phép người dùng trực tiếp sở hữu dữ liệu của mình
Điều này cho phép chủ quyền về tính bảo mật, tính toàn vẹn và tính sẵn sàng
Với vai trò là một trục cốt lõi của tự do số, nó nên được nhìn nhận ngang hàng với giấy phép FOSS
Chính ngôn ngữ tự nhiên tồn tại bên trong tệp, và tính dễ đọc trở thành đặc tả
Bất kỳ ai đọc hiểu tốt đều có thể ghi vào tệp và thực thi ngay như REPL
Họ khiến dữ liệu bị trói vào ứng dụng và không thể tồn tại độc lập, đồng thời cũng làm việc nhập/xuất trở nên khó khăn
Để giải quyết vấn đề này, tôi đang làm một công cụ trích xuất dữ liệu từ bản sao lưu thành các tệp ở mức chi tiết rồi chuyển chúng sang thư viện số cá nhân
Dữ liệu bất biến thì chỉ cần lưu trữ là đủ, nhưng thách thức lớn nhất là làm sao để dữ liệu có thể chỉnh sửa lại trở thành dạng “sống”, có thể được ứng dụng chỉnh sửa
Việc thay đổi tạm thời và chia sẻ đều dễ hơn, đồng thời ý nghĩa của cấu hình cũng được định nghĩa rõ ràng
Tôi không thích việc Windows đối xử với tệp như công dân hạng ba
Tôi cũng nghĩ như vậy từ góc nhìn SaaS
Càng nhiều mã là thứ tạm thời và đặc thù miền, thì dữ liệu (tệp) càng phải chuẩn hóa và ổn định đến mức nhàm chán
Định dạng chỉ một ứng dụng cụ thể đọc được là nợ kỹ thuật, và cuối cùng sẽ phá hỏng dự án
Lý do một tệp JPEG từ năm 1995 vẫn mở được đến nay là vì nó không phụ thuộc vào phần mềm
Đây là cách tiếp cận đúng đắn đã được kiểm chứng nhiều lần
Các lớp trừu tượng như Google Photos hay Immich chỉ để tiện dụng, cốt lõi vẫn là tệp
Trong công việc, tôi cũng quản lý nghiên cứu và tài liệu bằng các tệp markdown và csv
liên kết dự án elodie
Khi chuyển nền tảng, toàn bộ lịch sử chỉnh sửa sẽ biến mất
Tính năng hoàn tác thì tiện, nhưng tôi mong những thay đổi như vậy sẽ được tiêu chuẩn hóa để có thể di chuyển
Tôi muốn nhắc đến Plan 9 của Bell Labs
Plan 9 from Bell Labs
Khi hỏi Claude về nghiên cứu tiền nhiệm, nó đã đưa ra Plan 9, và đó chính là khái niệm chúng ta đang cần lúc này
Triết lý tối thiểu hóa quyền hạn của agent cũng giống hệt mô hình bảo mật doanh nghiệp
Chỉ là Plan 9 xuất hiện quá sớm mà thôi
Điều này lại khiến tôi nhận ra Plan 9 và UNIX đã đúng
Giao diện mạnh nhất là tệp văn bản trên hệ thống tệp
Giờ là lúc phải làm lại 9p2026
Tuy vậy, một vài khái niệm cơ bản trong bài là sai — hệ thống tệp không phải cây mà là đồ thị có thể có chu trình
Đây cũng là điều tôi đồng cảm sâu sắc
Trong một năm qua, tôi đã chuyển dữ liệu cá nhân từ hơn 10 dịch vụ SaaS vào một cấu trúc thư mục duy nhất
Hệ thống tệp được tổ chức tốt là đủ cho một người dùng đơn lẻ và loại bỏ sự phân mảnh dữ liệu
Về sau, có lẽ sẽ xuất hiện những cơ sở dữ liệu mới hỗ trợ ghi an toàn cho nhiều người dùng mà không làm hệ thống tệp trở nên mờ đục
Cảm giác khá giống vai trò mà QMD đảm nhiệm cho tìm kiếm
Hiện giờ việc ứng dụng AI vẫn đang ở giai đoạn chưa trưởng thành
Các hệ thống production sẽ chạy trên những cấu trúc dữ liệu nhất quán và có khả năng mở rộng, nhưng các agent xây dựng ra chúng sẽ dùng công nghệ dựa trên hệ thống tệp
UI có lẽ sẽ vượt ra khỏi desktop và tiến hóa thành giao diện giọng nói và thị giác
Ví dụ như trong cuộc gọi video, hệ thống có thể đọc biểu cảm và ngữ điệu để lấy thêm ngữ cảnh
Dù chưa phải multimodal hoàn chỉnh, nó vẫn rất thú vị
Viết giúp con người sắp xếp suy nghĩ và không mang tính bộc phát như lời nói
Dù nhận dạng giọng nói (STT) có tốt đến đâu, trí tuệ con người vẫn vận hành xoay quanh việc viết
Tệp chỉ hữu ích khi có thể tìm thấy chúng
Nói cách khác, tìm kiếm và lập chỉ mục là bắt buộc, nhưng khi quy mô tăng lên thì chúng bắt đầu vỡ ra
Vì thế, câu hỏi cốt lõi là “kích thước của knowledge base mà agent có thể xử lý là bao nhiêu”
Tôi đã phân tích chủ đề này từ các nguyên lý đầu tiên trong bài viết “a good agentic KB”
Trong nhiều tệp được tổ chức tốt như codebase, agent lập trình tìm thông tin rất tốt
Nhưng với dữ liệu lộn xộn, việc cấu trúc bằng hệ thống tệp khó hơn nhiều
Nó còn phức tạp hơn cả tìm kiếm ngữ nghĩa trong vector DB
Codebase tự nhiên duy trì cấu trúc đồ thị nhờ nguyên tắc DRY, còn dữ liệu phi mã thì không như vậy
Vì thế tôi đồng ý rằng về lâu dài hệ thống tệp là một cấu trúc ngữ cảnh tốt, nhưng hiện tại nó vẫn chưa thể thay thế hoàn toàn tìm kiếm
Tôi nghĩ hệ thống tệp là một lớp trừu tượng tệ
Việc phải treo tệp lên một cấu trúc có chủ ý là cây thư mục là kém hiệu quả
Tôi cho rằng mô hình quan hệ hoặc cấu trúc dựa trên định danh duy nhất sẽ tốt hơn
Thay đổi ở một nhánh không ảnh hưởng đến nhánh khác
Ngược lại, cơ sở dữ liệu có thể khiến UPDATE hay DELETE tác động đến toàn bộ hệ thống, nên khá nguy hiểm
Vì vậy, một kiểu dung hòa là cấu trúc cây với chỉ mục DB phủ lên trên, như trong các OS hiện đại, sẽ là lý tưởng
Nó lập chỉ mục tên tệp bằng b+tree, và cả dữ liệu tệp cũng được lưu trong MFT
Thư mục thực chất chỉ là một hàng có thuộc tính
directory=trueCách tiếp cận quan hệ hoàn toàn như WinFS đã thất bại vì vấn đề hiệu năng, và Skydrive đã thế chỗ nó
Có vẻ nhiều người thường quên điểm này
Cuối cùng, có lẽ chúng ta sẽ đi theo hướng đặt một chỉ mục tốt lên trên kho blob kiểu S3, còn thư mục thì được tạo theo yêu cầu như tag
Chỉ còn lại chức năng nhóm kiểu như “tài liệu liên quan đến Q3 nằm trong thư mục này”