2026 年上半年,如果你觀察 Coding Agent 的架構演進,會發現一個共同趨勢:它們不再讓模型「直接讀寫宿主機檔案」,而是在中間加了一層虛擬檔案系統(Virtual Filesystem,VFS)。從 Cursor 的 sandbox 工具、Claude Code 的 workspace 抽象,到 OpenHands、E2B、Modal 的遠端沙箱——Agent 與磁盤之間多了一道可編排的介面。
這不是「換個掛載點」那麼簡單。VFS 同時承擔了安全隔離、Token 節流、狀態快照、可審計變更四項職責。本文從工程視角拆解:為什麼 VFS 在 2026 年成爲 Agent 標配、它與 Memory 記憶層如何分工、主流實作怎麼選,以及 iOS / 跨平台開發者如何把 VFS 沙箱與雲端 Mac 建置環境接起來。
* 基於常見 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」的本質區別。
為什麼 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 的核心價值是把「擁有程式碼」變成「按需檢索程式碼」:
- Agent 先
grep "class FooBar"定位檔案 - 再
read path:42-80只讀相關函數 - 改完後
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 就等於能上架。實際上:
- VFS 沙箱:Agent 改 Dart/Swift 源碼、跑單元測試、生成 PR 描述
- Memory:記住「這臺測試機的 UDID」「只用 TestFlight」「上次簽名失敗因爲 Profile 過期」
- 雲端 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 無限制
readnode_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 方案