![]()
一個剛開源的實驗性項目,讓PostgreSQL(一種開源關系型數(shù)據(jù)庫)變成了能直接掛載的文件夾。你不用寫任何API調(diào)用,用ls、cat、grep這些最基礎的命令就能操作數(shù)據(jù)庫里的數(shù)據(jù)。對于正在折騰AI Agent的開發(fā)者來說,這意味著什么?
他們終于不用在"文件系統(tǒng)"和"數(shù)據(jù)庫"之間反復橫跳了。
這個項目叫TigerFS,MIT協(xié)議開源,核心邏輯簡單粗暴:把數(shù)據(jù)庫表映射成目錄,把行記錄映射成文件。你的Markdown文檔、JSON配置、日志流,全部以文件形態(tài)躺在PostgreSQL里,卻又能被任何Unix工具直接讀寫。
聽起來像是個技術極客的玩具?往下看。
文件系統(tǒng) vs 數(shù)據(jù)庫:一場打了30年的架
開發(fā)者對這兩種存儲形態(tài)的愛恨情仇,幾乎貫穿了整個軟件史。文件系統(tǒng)簡單、直觀、工具鏈成熟,但缺乏事務保證和并發(fā)控制。數(shù)據(jù)庫強大、可靠、能ACID(原子性、一致性、隔離性、持久性),但每操作一次都要寫SQL、調(diào)API、處理連接池。
于是過去三十年里,我們發(fā)明了無數(shù)膠水代碼來縫合這個裂縫。ORM框架、對象存儲網(wǎng)關、文檔數(shù)據(jù)庫的GridFS接口……每一層抽象都在試圖回答同一個問題:能不能既要文件的簡單,又要數(shù)據(jù)庫的靠譜?
TigerFS的解法很直接:不選了,全都要。
它通過FUSE(用戶空間文件系統(tǒng)框架)把PostgreSQL掛載到本地目錄。你cd進去,看到的是普通文件夾;你cat一個文件,TigerFS在背后把它翻譯成SELECT查詢;你mv一個文件到另一個目錄,它變成UPDATE語句修改外鍵關聯(lián)。
這種"欺騙"對上層工具完全透明。Vim、VS Code、ripgrep、find,甚至你自己寫的Shell腳本,全部零改造直接上崗。
兩種工作流:從"存文件"到"管狀態(tài)"
TigerFS設計了兩種使用模式,對應兩類截然不同的場景。
文件優(yōu)先(File-first)適合內(nèi)容創(chuàng)作者和傳統(tǒng)開發(fā)者。你把Markdown筆記、代碼片段、設計稿丟進去,獲得的是原子寫入和自動版本控制。多人協(xié)作時,移動文件到todo/、doing/、done/目錄就能表達任務狀態(tài)轉(zhuǎn)移——這比在Jira里點按鈕快十倍,而且能被Git一樣的工具鏈追蹤。
數(shù)據(jù)優(yōu)先(Data-first)則是給AI Agent準備的殺器。
現(xiàn)在的Agent架構有個結構性痛點:每個Agent都是無狀態(tài)的,或者把狀態(tài)塞在向量數(shù)據(jù)庫、消息隊列、各種BLOB存儲里。它們之間要共享上下文,得走API調(diào)用、序列化反序列化、處理競態(tài)條件,代碼量輕松膨脹到數(shù)萬行。
TigerFS把Agent的狀態(tài)變成文件。Agent A寫完一個中間結果,Agent B用cat就能讀到,全程有PostgreSQL的事務隔離級別保底。更妙的是,調(diào)試Agent行為變得像翻日志一樣簡單——ls -lt按時間排序,grep過濾關鍵詞,全是肌肉記憶。
項目作者沒有透露具體性能數(shù)字,但強調(diào)"標準POSIX操作延遲在毫秒級"。對于狀態(tài)同步、配置分發(fā)、工作流編排這類場景,這個速度完全夠用。
為什么是現(xiàn)在?AI Agent逼出了新需求
文件系統(tǒng)作為數(shù)據(jù)庫接口的想法并不新鮮。2000年代的XML數(shù)據(jù)庫、2010年代的MongoDB GridFS、各種對象存儲的FUSE掛載工具,都走過類似的路。但它們要么性能拉胯,要么語義不兼容,要么干脆 abandoned。
TigerFS的差異化在于:它放棄了一些東西,換來了另一些東西。
它不做通用文件存儲——大視頻、二進制blob請走對象存儲。它專注的是"結構化小文件":配置、日志、文檔、Agent狀態(tài)。這類數(shù)據(jù)天生適合關系模型,卻又頻繁被Unix工具處理。TigerFS卡在了一個微妙的 sweet spot 上。
更關鍵的是時機。2024-2025年,AI Agent從demo走向生產(chǎn),"可靠的狀態(tài)共享"突然從nice-to-have變成了blocking issue。LangChain、AutoGPT、各種Multi-Agent框架的開發(fā)者,正在被狀態(tài)管理折磨得死去活來。
一個能直接用find和awk操作的Agent狀態(tài)存儲?這簡直是給疲憊的Agent開發(fā)者遞了一杯冰美式。
實驗性項目的風險與想象空間
必須潑點冷水:TigerFS目前明確標注為"experimental"。FUSE本身的性能天花板、PostgreSQL連接數(shù)的硬限制、復雜查詢的優(yōu)化空間,都是待解的問題。
但技術選型的有趣之處就在于,有時候"足夠好"比"完美"更有生命力。
Unix哲學講究"一切皆文件"。TigerFS把這個哲學推進了一步:數(shù)據(jù)庫也可以是文件。對于已經(jīng)熟悉管道、重定向、文本處理的開發(fā)者來說,學習成本趨近于零。而對于AI Agent這個新興領域,它提供了一種"用舊工具解決新問題"的務實路徑。
項目倉庫的README里有個細節(jié)挺有意思:作者建議用TigerFS來管理"Agent的記憶和任務隊列",并且給出了一個具體的目錄結構示例——/agents/{agent_id}/memory/、/agents/{agent_id}/tasks/{status}/。這不是技術文檔常見的泛泛而談,而是直接映射到了某個真實的使用場景。
這種從具體痛點出發(fā)的設計,往往比架構圖上的宏大敘事更能走得遠。
如果TigerFS能在某個Agent框架的生態(tài)里扎下根,它可能會成為那種"看起來不起眼,但離開它就渾身難受"的基礎設施。就像當年Redis之于緩存、Kafka之于日志——最初都是"能用就行"的輕量方案,最后長成了行業(yè)的默認選項。
當然,現(xiàn)在說這些還為時過早。它需要先證明自己能扛住真實負載,需要在某個開源社區(qū)里積累第一批死忠用戶,需要回答"為什么不用S3+Athena"或者"為什么不用SQLite+FUSE"這類經(jīng)典質(zhì)疑。
但至少,它提出了一個值得被認真對待的問題:在AI重塑軟件架構的當下,我們有沒有重新審視那些"理所當然"的技術分層?
當Agent開始像人類一樣"讀寫文件",數(shù)據(jù)庫和文件系統(tǒng)的邊界,或許真的該松一松了。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.