
2026 年,AI Agent 已经遍地开花。
从 OpenAI 的 Agents SDK 到 Vercel AI SDK,从 LangChain 到 CAMEL,各种 Agent 框架层出不穷,每个都在试图让 AI 变得更「能干」。
但有一个尴尬的现实一直没变:AI Agent 每接入一个新服务,就得学一套新 API。
想让 Agent 读 S3 上的日志?你得给它配 AWS SDK。想让 Agent 搜 Slack 聊天记录?又得接 Slack API。想让 Agent 查 GitHub Issue?再来一套 GitHub API。
每加一个数据源,都是一次新的对接工作。Agent 的「工具箱」越来越臃肿,提示词越来越长,出错的概率也越来越高。
更讽刺的是,这些 LLM 最擅长的是什么?是 Bash。
GPT、Claude、Gemini 这些大模型,在 Shell 脚本、Unix 命令上的训练数据量是任何单一 API SDK 的成千上万倍。
cat、grep、head、wc、管道操作——这些命令对 AI 来说就像母语一样自然。但现实是,AI 面对 Slack 消息时不能用 grep,面对 S3 文件时不能用 cat,面对 MongoDB 数据时不能用管道串联。
这个割裂的局面,被一个叫 Mirage 的项目彻底打破了。

Mirage 的全称是 「A Unified Virtual File System for AI Agents」——面向 AI Agent 的统一虚拟文件系统。
由 strukto-ai 团队开发,2026 年 5 月 6 日刚刚发布首个公开版本 v0.0.1-alpha.1,采用 Apache 2.0 开源协议。
用一句话概括 Mirage 的核心思路:把所有数据源都映射成同一个文件系统,让 AI Agent 用 Bash 命令统一操作。
这就像给 AI 装了一个「万能硬盘」。
S3 存储桶、Google Drive、Gmail 邮箱、Slack 频道、GitHub 仓库、Linear 任务、Notion 文档、MongoDB 数据库、Redis 缓存、甚至远程 SSH 服务器——所有这些五花八门的数据源,全部被挂载到同一个虚拟文件树下。
AI 看到的,就是一个统一的目录结构。
/
├── s3/ ← S3 存储桶
├── slack/ ← Slack 工作区
├── github/ ← GitHub 仓库
├── gmail/ ← Gmail 邮箱
├── gdrive/ ← Google Drive
├── notion/ ← Notion 工作区
├── mongo/ ← MongoDB 数据库
├── redis/ ← Redis 缓存
├── ssh/ ← 远程 SSH 服务器
└── data/ ← 本地内存/RAM对 AI Agent 来说,操作 Slack 消息和操作本地文件没有区别。
AI 不需要学任何新东西。它只需要做它最擅长的事——写 Bash。

cat、grep、head、wc、find、ls、cp、mv、管道、重定向——这些命令在每一个挂载点上都能用。Mirage 首批支持的挂载资源已经相当全面:
类别 | 支持的服务 |
|---|---|
云存储 | S3 / R2 / OCI / Supabase / GCS |
Google 套件 | Gmail / GDrive / GDocs / GSheets / GSlides |
协作工具 | Slack / Discord / Telegram / Email |
项目管理 | GitHub / Linear / Notion / Trello |
数据库 | MongoDB / Redis / PostgreSQL |
远程访问 | SSH |
本地 | RAM / Disk |
而且这个列表还在快速增长中。
环境要求
mirage-ai 包和 mirage CLI)Python 安装
uv add mirage-ai这会同时安装 mirage 库和 mirage CLI 命令行工具。
TypeScript 安装
根据运行环境选择对应包:
# Node.js 服务端 / CLI
npm install @struktoai/mirage-node
# 浏览器 / Edge Runtime
npm install @struktoai/mirage-browser
# 运行时无关的核心原语(被上面两个自动依赖)
npm install @struktoai/mirage-coreCLI 安装
四种方式任选:
# 方式一:一键安装脚本
curl -fsSL https://strukto.ai/mirage/install.sh | sh
# 方式二:npm 全局安装
npm install -g @struktoai/mirage-cli
# 方式三:uvx 直接运行
uvx mirage-ai
# 方式四:npx 直接运行
npx @struktoai/mirage-cliPython 最小示例
from mirage import Workspace
from mirage.resource.gdocs import GDocsConfig, GDocsResource
from mirage.resource.ram import RAMResource
from mirage.resource.s3 import S3Config, S3Resource
from mirage.resource.slack import SlackConfig, SlackResource
ws = Workspace({
"/data": RAMResource(),
"/s3": S3Resource(S3Config(bucket="my-bucket")),
"/slack": SlackResource(SlackConfig()),
"/docs": GDocsResource(GDocsConfig()),
})
# 跨服务复制文件
await ws.execute("cp /s3/report.csv /data/report.csv")
# 跨服务管道查询
await ws.execute("grep alert /s3/data/log.jsonl | wc -l")
# 创建快照
ws.snapshot("demo.tar")TypeScript 最小示例
import {
Workspace,
RAMResource,
S3Resource,
SlackResource,
GDocsResource,
} from '@struktoai/mirage-browser'
const ws = new Workspace({
'/data': new RAMResource(),
'/s3': new S3Resource({ bucket: 'my-bucket' }),
'/slack': new SlackResource({}),
'/docs': new GDocsResource({}),
})
await ws.execute('cp /s3/report.csv /data/report.csv')
await ws.execute('grep alert /s3/data/log.jsonl | wc -l')CLI 使用示例
# 创建工作空间
mirage workspace create ws.yaml --id demo
# 执行命令
mirage execute --workspace_id demo --command "cp /s3/report.csv /data/report.csv"
# 预加载大文件
mirage provision --workspace_id demo --command "cat /s3/data/large.jsonl"
# 快照与恢复
mirage workspace snapshot demo demo.tar
mirage workspace load demo.tar --id demo-restored接入 OpenAI Agents SDK
from agents import Runner
from agents.run import RunConfig
from agents.sandbox import SandboxAgent, SandboxRunConfig
from mirage.agents.openai_agents import MirageSandboxClient
client = MirageSandboxClient(ws)
agent = SandboxAgent(
name="Mirage Sandbox Agent",
model="gpt-5.4-nano",
instructions=ws.file_prompt,
)
result = await Runner.run(
agent,
"Summarize /s3/data/report.parquet into /report.txt.",
run_config=RunConfig(sandbox=SandboxRunConfig(client=client)),
)Mirage 的两层缓存都可以独立配置后端:
# Redis 共享缓存(适合多进程 / Serverless)
from mirage import Workspace
from mirage.cache import RedisFileCacheStore, RedisIndexCacheStore
ws = Workspace(
{ '/s3': S3Resource({ bucket: 'my-bucket' }) },
{
'cache': RedisFileCacheStore({ 'url': 'redis://localhost:6379/0', 'limit': '8GB' }),
'index': RedisIndexCacheStore({ 'url': 'redis://localhost:6379/0', 'ttl': 600 }),
},
)默认使用内存缓存(512MB 文件缓存 + 10 分钟索引 TTL),适合单进程应用和 Notebook 场景。
Mirage 这个项目的巧妙之处在于,它没有试图让 AI 变得更「聪明」,而是让世界变得更「简单」。
它把 S3、Slack、GitHub、MongoDB 这些千差万别的服务,统一成了 AI 最熟悉的形态——文件系统。
这背后的洞察很深刻:与其教 AI 一百种 API,不如把所有东西都变成 AI 已经会的东西。
对于正在折腾 AI Agent 的开发者来说,Mirage 绝对值得放进工具箱。一个 uv add mirage-ai 就能让你的 Agent 用 Bash 打天下,这种体验,试过就回不去了。
GitHub:https://github.com/strukto-ai/mirage
如果本文对您有帮助,也请帮忙点个 赞👍 + 在看 哈!❤️
在看你就赞赞我!