Zilmac 部落格
← 返回技術實踐

為什麼越來越多 AI Agent 開始使用虛擬檔案系統?

Agent 基礎設施 ·約 12 分鐘閱讀

開發者在 Mac 上配置 AI Agent 虛擬檔案系統與沙箱化程式碼工作區

2026 年上半年,如果你觀察 Coding Agent 的架構演進,會發現一個共同趨勢:它們不再讓模型「直接讀寫宿主機檔案」,而是在中間加了一層虛擬檔案系統(Virtual Filesystem,VFS)。從 Cursor 的 sandbox 工具、Claude Code 的 workspace 抽象,到 OpenHands、E2B、Modal 的遠端沙箱——Agent 與磁盤之間多了一道可編排的介面。

這不是「換個掛載點」那麼簡單。VFS 同時承擔了安全隔離、Token 節流、狀態快照、可審計變更四項職責。本文從工程視角拆解:為什麼 VFS 在 2026 年成爲 Agent 標配、它與 Memory 記憶層如何分工、主流實作怎麼選,以及 iOS / 跨平台開發者如何把 VFS 沙箱與雲端 Mac 建置環境接起來。

4
VFS 核心職責:隔離 · 按需讀 · 快照 · 審計
~90%
大倉庫場景下 grep 比整檔案 read 更省 Token*
3 層
典型棧:VFS 工作區 + Memory 長期態 + 真實建置機

* 基於常見 monorepo 實驗與 Agent 廠商公開最佳實踐,實際比例因倉庫結構而異。

什麼是 Agent 虛擬檔案系統

傳統 IDE 插件讓 LLM 直接 read_file("/Users/..."),路徑即權限。Agent VFS 則在模型與存儲之間插入受控 API 層,常見操作包括:

  • ls / tree:列出目錄,返回摘要而非全文
  • grep / glob:按模式檢索,只把命中行注入上下文
  • read:按行範圍讀取,支持分頁與 Token 預算
  • write / patch:結構化 diff,而非整檔案覆蓋
  • snapshot / rollback:任務級檢查點

對模型來說,它「看見」的仍像檔案樹;對平台來說,每一次 I/O 都可計費、限流、審計、拒絕越權路徑。這就是 VFS 與「把倉庫 clone 到容器裏直接 bash」的本質區別。

AI Agent 虛擬檔案系統架構:模型通過受控 API 訪問沙箱工作區,而非直接讀寫宿主機磁盤
典型三層:LLM 工具調用 → VFS 網關(權限/Token/快照)→ 沙箱存儲(容器、VM 或 git worktree)

為什麼 2026 年突然流行

三個壓力在同一時間點疊加,把 VFS 從「可選優化」推成「預設架構」。

安全:Agent 不能碰整臺機器

當 Agent 能執行 shell、改配置、裝依賴時,一次 prompt 注入就可能等價於 RCE。2025–2026 年多起「Agent 刪庫」「誤改 ~/.ssh」事件後,主流產品預設啓用沙箱:

  • 路徑白名單:只允許專案根與 /tmp 子目錄
  • 網路 egress 控制:npm/pip 走代理,禁止隨意 curl 內網
  • 憑證隔離:API Key 不進 VFS,由網關注入

VFS 是實施這些策略的統一攔截點——比在每次工具實作裏散落 if path.startswith 可維護得多。

Token:上下文不是免費硬盤

我們在 AI 編程月成本裏算過:把 10 萬行 monorepo 整倉塞進 prompt,單次調用就可能燒掉數美元。VFS 的核心價值是把「擁有程式碼」變成「按需檢索程式碼」:

  1. Agent 先 grep "class FooBar" 定位檔案
  2. 再 read path:42-80 只讀相關函數
  3. 改完後 patch 只回傳 diff,不把整檔案再塞一遍

這與 DeepSeek / Claude Code / Cursor 選型裏「誰更擅長長上下文」並不矛盾——能塞進去 ≠ 應該塞進去。VFS 是產品層的 Token 經濟學。

快照:可回滾、可復現

Agent 連續改十個檔案後編譯失敗,用戶期望「一鍵回到五分鐘前」。VFS 在每次 write 前打快照(或基於 overlay FS / git stash),讓任務狀態可版本化。這對:

  • 多人共享的 Cloud Agent 會話
  • CI 裏跑無人值守修復 PR 的 bot
  • 需要向合規部門出示「模型改了哪些檔案」的企業

都至關重要。Memory 層記住「用戶偏好」;VFS 快照記住「這次任務改了什麼」——兩者時間尺度不同。

誰在用什麼方案

產品 / 框架 VFS 形態 特點
Cursor 本地 sandbox + 工具級 read/grep 與 IDE 深度集成;.cursorignore 即路徑策略
Claude Code Workspace + 權限確認 強調人機協同;危險操作需用戶批准
OpenHands Docker 沙箱 + 倉庫掛載 開源可自託管;適合自定義 Agent 流水線
E2B / Modal 遠端 VM 級 VFS 強隔離;冷啓動與成本需權衡
LangGraph / 自研 Store 抽象(可接 S3、git) 靈活;要自己實作 grep 性能與快照

共同點是:模型永遠不直接持有 open() syscall,而是通過 schema 化的 tool call 間接訪問。這也是 Claude Code Skills 能安全分發「可執行能力包」的前提——Skill 聲明允許的路徑與工具,VFS 負責 enforcement。

VFS 與 Memory 層怎麼分工

很多人把 VFS 和 Mem0 / Zep / TencentDB 等 Memory 方案混爲一談。一張表理清邊界:

維度 VFS(虛擬檔案系統) Memory(記憶層)
時間範圍 單次任務 / 單次會話的工作區 跨會話、跨天的用戶與專案事實
存什麼 程式碼樹、diff、建置日誌緩衝 偏好、約束、歷史決策、失敗原因摘要
典型 API read / grep / patch add_memory / search
失效模式 快照回滾丟改動 錯誤記憶需時序失效(Zep 擅長)

成熟架構往往是三層:VFS 管「現在正在改什麼」→ Memory 管「這個用戶一貫要什麼」→ 真實 macOS 環境管「能不能編過、能不能上架」。缺任何一層都會在規模化時暴露問題。

主流實作對照

選型速查

  • 個人本地開發 → IDE 內置 VFS(Cursor / Claude Code)通常夠用
  • 團隊共享 Agent → OpenHands + 自託管 Docker,或 E2B 按會話計費
  • 要強合規審計 → VFS 網關落日誌 + Memory 用 Zep 雙時序
  • 超長工具輸出(xcodebuild 日誌)→ VFS 側 ring buffer,摘要寫入 Memory

自研 VFS 時,優先保證 grep 在 10 萬檔案下 <2s 與 patch 原子性——Agent 體驗比「支持多少雲存儲後端」更敏感。很多團隊用 git worktree 做底層,VFS 只做權限與 Token 包裝,是務實的 MVP 路徑。

iOS / 跨平台開發者落地路徑

Flutter / React Native 團隊常見誤區:以爲 VFS 沙箱裏跑通 flutter build 就等於能上架。實際上:

  1. VFS 沙箱:Agent 改 Dart/Swift 源碼、跑單元測試、生成 PR 描述
  2. Memory:記住「這臺測試機的 UDID」「只用 TestFlight」「上次簽名失敗因爲 Profile 過期」
  3. 雲端 Mac:在真實 macOS 上跑 xcodebuild、Archive、上傳 App Store Connect

我們在 RN / Flutter iOS 真機調試與上架一文裏強調過:Apple 工具鏈綁定硬件與系統。VFS 解決「Agent 安全改程式碼」;Zilmac 雲端 Mac解決「改完的程式碼能在 Apple 環境裏編譯通過」。

推薦流水線:本地或雲端 VFS 沙箱完成 feature branch → Memory 記錄建置約束 → webhook 觸發雲端 Mac CI → 失敗日誌摘要回寫 Memory,供下次 Agent 會話讀取。

選型建議與反模式

推薦做法

  • 預設 deny-all 路徑策略,按目錄放行
  • 工具輸出超過 N KB 自動 spill 到 VFS 檔案,上下文只留摘要 + 路徑
  • 每次任務結束把「未合併的關鍵 diff」同步到 Memory 或 issue
  • 建置與簽名與 VFS 物理分離,避免 Agent 碰 Provisioning Profile

反模式

  • ❌ 把 VFS 當數據庫塞 JSON 業務數據——用 Memory 或正規 DB
  • ❌ 允許 Agent 無限制 read node_modules——Token 黑洞
  • ❌ 在宿主機路徑上做 VFS 薄封裝卻不做快照——回滾無能爲力
  • ❌ 指望 VFS 替代 Xcode——簽名與真機調試仍需 macOS

常見問題

虛擬檔案系統和普通 Docker 掛載有什麼區別?

Docker 掛載仍是真實路徑語義;Agent VFS 在路徑之上增加 Agent 專用 API,可做 Token 預算、變更快照與權限白名單。很多實作把 VFS 跑在容器裏,但 VFS 是 Agent 與存儲之間的抽象層,不是容器本身。

有了 Memory 層還需要 VFS 嗎?

需要,職責不同。Memory 管跨會話偏好與任務軌跡;VFS 管單次任務內的程式碼樹讀寫與工具輸出緩衝。詳見上文分工表。

iOS 開發者用 Agent VFS 能替代 Xcode 工程目錄嗎?

不能替代建置與簽名環境,但能大幅改善 Agent 改程式碼的安全性。務實組合:VFS 沙箱 + 雲端 Mac 建置。

自建 Agent 如何選型 VFS 實作?

原型用 git worktree;生產按隔離需求選 OpenHands、E2B 或自研網關。重點看 grep 性能、快照與多租戶隔離。

VFS 管住改程式碼,雲端 Mac 管住能編譯

虛擬檔案系統讓 Agent 安全地讀寫信箱裏的 Swift / Flutter 改動;TestFlight 簽名、真機調試與 xcodebuild 仍要在 macOS 上跑。Zilmac 可與任意 VFS + Memory 棧組合——Agent 在沙箱裏改,建置在穩定的 Apple Silicon 雲端 Mac 上執行。

無需實體 Mac,即可運行完整 Apple 工具鏈。 — 查看雲 Mac 方案

限時優惠

Zilmac

雲端 Mac、遠端開發與 Mac VPS,為 iOS 與跨平台團隊補齊 Apple 工具鏈。

返回首頁
限時優惠 點擊查看套餐