mirage:一个统一的虚拟文件系统,让 AI 代理使用 bash 命令与多种数据源交互
mirage:一个统一的虚拟文件系统,让 AI 代理使用 bash 命令与多种数据源交互
它解决了什么问题
Mirage 为 AI 代理提供了一种统一的方式来访问多样的数据源和服务。它不再要求代理为每个不同的服务(如 S3、Google Drive 或 Slack)学习多个 SDK 或 API,而是将这些服务挂载为单一的虚拟文件系统(VFS)。这使得已经熟练掌握 bash 命令的 LLM 能够使用标准的类 POSIX 操作读取、搜索和移动跨后端的数据,而无需学习新的词汇。
工作原理
Mirage 创建一个 “Workspace”,将远程服务和数据源映射到目录路径。它使用调度器和缓存系统将类似 bash 的命令(例如 grep、cp、find)翻译为相应后端的 API 调用。
关键技术组件包括:
- 统一接口: 超过 50 种内置后端(包括 Redis、S3、Gmail、GitHub 和 MongoDB)都以文件系统的形式呈现。
- 缓存机制: 两层缓存(元数据的索引缓存和对象字节的文件缓存)降低网络延迟和 API 调用次数。
- 可扩展性: 用户可以根据资源类型或文件格式注册新命令或覆盖已有命令(例如让
cat将 Parquet 文件渲染为 JSON)。 - 可嵌入 SDK: 提供 Python 和 TypeScript 库,可在应用内部进程中运行。
适用人群
构建需要访问大量外部数据源的 AI 代理的开发者,以及希望提供类似编码代理环境的用户——即让代理能够使用标准 shell 命令在各服务之间操作数据。
亮点
- 统一 VFS: 将 S3、Slack、Gmail 等挂载为单一文件系统。
- Bash 原生: 代理可以直接使用
grep、pipe、wc等命令跨后端操作。 - 广泛集成: 支持 50 多种内置后端,并可与 LangChain、Vercel AI SDK、OpenAI Agents SDK 等主流代理框架集成。
- 可移植工作区: 工作区可克隆、快照和版本化。
- 细粒度缓存: 内置索引和文件缓存,并可选使用 Redis 实现共享状态。
Sources
- undefinedstrukto-ai/mirage