Mirage
ai-tools
最適合誰
正在探索「如何給 AI Agent 一個統一工具介面」的開發者。Mirage 把 S3、Slack、GitHub、Gmail 等 30 多種服務掛載在同一棵虛擬目錄樹下,讓 LLM Agent 只需要 ls、grep、cp 這些 bash 指令就能跨平台操作資料。
不適合需要穩定 API 的人。這是 Alpha 軟體(v0.0.2a0),開發團隊明確表示不保證向後相容。
我實際怎麼用
目前沒有在任何工作流中使用 Mirage,純粹作為技術觀察對象。核心洞見值得追蹤:LLM 的訓練語料充滿 bash 指令,所以 bash 可能是 agent 最自然的工具介面。
我審查了 50 多個核心原始碼檔案,並測試了 RAMResource 的基本操作。架構紮實、程式碼品質高、Shell 解析器(基於 tree-sitter-bash)確實有技術深度。但 Alpha 狀態意味著現在做任何整合都是用完即棄的。
真正強的地方
真正的 bash 解析,不是字串切割。 Mirage 用 tree-sitter-bash 產生完整的 AST,支援 pipeline、redirect、heredoc 和控制流(if/for/while)。在 agent 工具領域中,這種等級的 shell 還原度非常罕見。
跨服務 Pipeline。 你可以寫 grep alert /slack/general/*.json | cp /dev/stdin /s3/report.txt,它真的能跨兩個完全不同的後端運作。目前我不知道有其他工具能做到這件事。
格式感知的指令覆寫。 執行 cat file.parquet 會自動渲染成 JSON rows。你可以針對 resource 類型和檔案類型覆寫任何指令的行為,agent 不需要知道底層格式差異。
雙層快取。 Index cache(目錄列表)加上 File cache(檔案位元組),支援 RAM 和 Redis 後端。連續的 ls + find + grep 操作只需要一次 API 呼叫。
30 多種 Resource 後端。 S3、Google Drive、Slack、GitHub、MongoDB、Postgres、Redis、SSH、Gmail、Notion、Linear、Telegram、Discord 等。以這個階段的專案來說,涵蓋範圍很驚人。
Workspace 快照與漂移偵測。 可以序列化整個 workspace 狀態,之後還原時自動驗證 fingerprint(ETag、MD5、commit SHA),確認資料沒有漂移。
失敗模式與不該用的情境
Alpha 就是 Alpha。 版本 0.0.2a0,專案本身的 CLAUDE.md 寫著 "No need to consider backward compatibility"。你今天寫的程式碼明天可能就壞掉,而且不會有任何預告。
Shell 沙盒邊界不明確。 雖然 tree-sitter 解析增加了結構化,但 LLM 產生的 bash 指令在安全沙盒化方面沒有清楚的邊界定義。在生產環境讓 AI Agent 執行任意 shell 指令需要謹慎的沙盒機制,而 Mirage 目前沒有提供。
套件衝突。 camel-ai extra 與 openai、openhands、pydantic-ai extras 衝突。依賴樹對一個單一工具來說過於龐大。
FUSE 僅限 macOS 與 Linux。 完全不支援 Windows 的檔案系統掛載。
30 多種整合的維護負擔。 每個 resource 後端都需要持續追蹤上游 API 變更。一個早期團隊能否持續維護這麼廣的整合範圍,是個未知數。
文件不完整。 Mintlify 文件網站有架構但深度有限。gRPC 遠端執行功能仍在開發中。
價格、上手門檻與風險
| 面向 | 說明 |
|---|---|
| 價格 | 免費,Apache-2.0 授權 |
| 安裝 | pip install mirage-ai(Python >= 3.12)或 npm install @struktoai/mirage-core(Node >= 20) |
| 上手門檻 | 高。需要理解非同步 Python、虛擬檔案系統和 AI Agent 框架。 |
| 風險 | 高。Alpha 軟體,不保證向後相容。僅適合實驗性使用。 |
結論:觀望(Watch)
核心概念有說服力,工程品質以 Alpha 專案來說出乎意料地高。建議每季度回來看看是否達到穩定 API。不要用它建構任何你不準備從頭重寫的東西。
來源
- GitHub: https://github.com/strukto-ai/mirage
- 組織: Strukto.AI (strukto.ai)
- 作者: Zecheng Zhang
- 授權: Apache-2.0
- 審查版本: 0.0.2a0 (commit 51902ef)