Mirage 统一虚拟文件系统
让 AI 代理用 Bash 跨服务读取、搜索和处理数据。
- Star 数
- ★ 3.8k
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- TypeScript
- FA 评分
- 70/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code · OpenAI API
- 费用
- 免费,无需付费服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 构建运维分析代理的团队,可把日志 S3 桶和 Slack 频道挂到同一工作区,用 grep 与 wc 统计告警。
- 不适合
- 需要完全离线、无外部服务凭据的团队
- 仅支持 Windows 或无法使用 FUSE 挂载的环境
- 不愿为远程后端配置网络与凭据的用户
- 源码审查
- 70/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Mirage 是面向 AI 代理的统一虚拟文件系统,将 S3、Google Drive、Slack、Gmail、Redis 等服务挂载到同一工作区路径树中。它提供 Python 与 TypeScript SDK、mirage CLI,以及可选的 FUSE 挂载方式;SDK 可在 FastAPI、Express、浏览器应用或异步运行时进程内运行。代理或应用通过 Workspace.execute 运行 Bash 风格命令,在不同后端之间读取、筛选、复制和管道处理文件。Workspace 还支持快照、加载与缓存,以便移动或复用工作区状态。仓库同时列出 OpenAI Agents SDK、LangChain、Vercel AI SDK、Claude Code、Codex 等集成路径。
开发者以 Workspace 创建挂载表,例如将 RAMResource 挂到 /data、将 S3Resource 挂到 /s3,随后调用 await ws.execute("cp /s3/report.csv /data/report.csv") 或 grep、find、wc 等命令。命令可跨挂载目录组合,并可用 ws.command 注册命令,或按 resource 与 filetype 覆盖如 cat 的行为。mirage CLI 可创建工作区、执行命令、provision 资源、生成快照并从 demo.tar 载入工作区。每个 Workspace 提供索引缓存和文件缓存;可配置 RedisFileCacheStore 与 Redis 索引来在工作进程、进程或机器间共享缓存。
- 构建运维分析代理的团队,可把日志 S3 桶和 Slack 频道挂到同一工作区,用 grep 与 wc 统计告警。
- 需要在远程对象存储与临时工作区之间处理报表的 Python 服务,可通过 Workspace.execute 将 /s3/report.csv 复制到 /data。
- 为 OpenAI Agents SDK、LangChain 或 Pydantic AI 添加统一数据访问层的开发者,可采用仓库列出的 Python 集成路径。
- 在 Node.js 服务中整合 Google Drive、Gmail、GitHub、Notion 或 Slack 数据的团队,可使用 TypeScript SDK 将相应后端挂载为目录。
- 需要迁移或保存代理运行状态的工程团队,可使用 workspace snapshot 和 load 命令导出、恢复工作区。
如何安装或部署这个 Agent?
Python 环境需 3.11 或更高版本:uv add mirage-ai。Node.js 环境需 20 或更高版本:npm install @struktoai/mirage-node;浏览器或边缘运行时可安装 @struktoai/mirage-browser,代理适配器可安装 @struktoai/mirage-agents。CLI 可用 npm install -g @struktoai/mirage-cli、uvx mirage-ai、npx @struktoai/mirage-cli,或 README 所示安装脚本。使用远程资源时须提供相应资源配置;示例中的 SlackResource 读取 SLACK_BOT_TOKEN,S3Resource 配置 bucket。
如何使用这个 Agent?
Python 最小示例:from mirage import Workspace、from mirage.resource.ram import RAMResource,然后创建 ws = Workspace({"/data": RAMResource()}) 并执行 await ws.execute("ls /data")。要访问 S3,可加入 "/s3": S3Resource(S3Config(bucket="my-bucket")),再运行 await ws.execute("cp /s3/report.csv /data/report.csv")。CLI 流程可从 mirage workspace create ws.yaml --id demo 开始,再执行 mirage execute --workspace_id demo --command "cp /s3/report.csv /data/report.csv"。
这个 Agent 有哪些优点和局限?
- 以路径、Bash 命令和管道统一访问多个数据后端,避免为每个服务编写不同的调用方式。
- Python 和 TypeScript SDK 可进程内嵌入,并提供 CLI、MCP、FUSE 和多种代理框架集成路径。
- 索引缓存与文件缓存默认在进程内启用,并可用 Redis 在多个 worker、进程和机器间共享。
- 工作区可 clone、snapshot 和 version,CLI 也支持将快照载入为新的工作区。
- 远程数据源依赖各自的网络连接、资源配置和凭据;示例中的 Slack 需要
SLACK_BOT_TOKEN。 - Python、Node.js 与 FUSE 的运行条件不同;FUSE 挂载还受 macOS 或 Linux 的平台支持限制。
- 仓库宣称约 50 个后端,但给出的内容未逐一说明每个后端的权限模型、操作覆盖范围或故障处理行为。
- 缓存具有默认 10 分钟索引 TTL 和 512 MB 文件缓存上限,实时性或大文件工作负载可能需要调整配置。
这个 Agent 与同类方案有什么区别?
Mirage 的定位是用一个文件系统接口替代分别学习多个服务 SDK 与多个 MCP 接口;它保留 Bash 风格的 read、grep、pipe 等工作方式,而不是为每个后端引入独立命令语义。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Mirage 统一虚拟文件系统 当前 | 70 · 存在缺口 | 代码库 / SDK免费 | ★ 3.8k | 今天 | TypeScript | Codex · Claude Code · OpenAI API |
| AnyAgent | 58 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 1.3k | 1 个月前 | Python | — |
| Agentic AI 工程课程 | 40 · 缺口较多 | 开发框架免费 + 模型费 | ★ 6.6k | 7 天前 | Jupyter Notebook | OpenAI API |
| OpenGAP | 54 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 3k | 4 个月前 | TypeScript | Codex · Claude Code · OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
配置示例展示了只读/可写挂载、按 profile 隐藏路径和拒绝命令;安全文档说明了主机上限、工作区和 profile 权限及资源限制,因此最小权限有实质支持,但缺少确认流程的具体行为,且 profile 可提高工作区限制。敏感数据方面,示例使用应用提供的凭据,说明提及策略可阻断环境变量泄漏;依赖许可证检查有 CI 门禁,但这些材料没有证明依赖漏洞管理。文档透明描述了外部挂载和 API/消息等影响,却未说明一般写操作确认或恢复机制。安全报告渠道和 Apache 许可提供了署名线索;发布者身份仍未知。
AGENTS/CLAUDE 内容描述双语言同语义、奇偶校验门禁和共享集成用例;安全文档给出多类默认资源上限,CLI 对配置和连接错误提供清晰退出码及消息。开发指南也说接口仍在变化,且有些集成作业按路径筛选;这些材料没有支持完全一致或所有依赖都可用的结论。本评估为静态审阅,未执行代码或测试。
材料覆盖应用嵌入、Python、TypeScript、CLI、服务端、浏览器/边缘环境,以及文件、数据库、SaaS 和自定义 VFS 场景;安装文档列出运行时和平台前提。权限 profile、挂载模式与运行时路由界定了部分能力边界,技能触发条件具体。不过大量后端能力以清单和概述呈现,样例只覆盖少数路径;不同环境仍需依赖和原生配置。
仓库指南、安装说明、API quickstart、安全文档和作者技能形成清晰的信息结构;语言与运行时的安装步骤、前置条件和可选依赖写得较细。命名与双语言对应规则有说明,但接口明确仍在演进;示例实用但 FAQ/故障排除覆盖有限,已知限制主要分散在文档中。根目录有 Apache-2.0 许可证和安全报告策略;指南称暂不要求 changeset、发布说明待接口稳定,因此版本变更记录证据薄。维护联系人和报告流程有说明,但发布者身份未验证。
shell、虚拟文件系统、虚拟 CLI 和运行时路由的组合被具体示例展示,输出可直接用于工作流;多服务统一搜索与策略控制体现出明确增量价值。轻量内存和成本收益是 README 中的产品主张,材料没有在本次静态审阅中验证这些数字;多语言、多运行时及可选后端也带来集成和运维成本,故成本收益未给满分。
README 的架构与用法主张可在安装、安全及开发指南中找到部分对应;代码样本含明确错误处理,工作流文件列出可复现的构建/检查命令,提供一定交叉佐证。但若干性能与能力主张仅由文档陈述,样本代码和集成测试文件不等于已执行验证。说明中能区分配置事实与尚未稳定的接口,但推断和量化主张仍缺少本材料内的测量证据。
- 这是低置信度静态评估;文档和工作流中的测试/门禁描述不表示本次已执行验证。
- 在接入真实服务前,应按实际任务配置挂载权限、profile 和主机资源上限,并确认写入及外部操作的恢复方式。
- 项目说明接口仍在演进;性能、覆盖范围和成本主张不应视为本评估已验证的事实。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.0.8 Mirage 0.0.8
发布说明摘录
We are excited to announce the release of Mirage 0.0.8 🎉🎉🎉 Mirage 0.0.8 is a hosting release. 0.0.7 sent every way in through one dispatcher; 0.0.8 makes that dispatcher safe to run many workspaces side by side. A workspace now has a memory budget, a network it may reach, mounts with capacity, and processes and jobs that live in the shared store, and the server runs its workspaces on several workers with rate limits, readiness, a graceful drain and OpenTelemetry. Underneath, the shell runs on Mirage's own bash parser in Rust, and jq, awk, tar, zip, patch, od, iconv and most text commands move …在 GitHub 查看 ↗ -
v0.0.7 Mirage 0.0.7
发布说明摘录
We are excited to announce the release of Mirage 0.0.7 🎉🎉🎉 Mirage 0.0.7 is a one-dispatcher release. 0.0.6 decided what an agent may do; 0.0.7 sends every way in through the same place, so that decision, the cache and the search hold alike for a command, a CLI, a runtime and every server endpoint. Commands read and write through the dispatcher, and every backend runs the same generic commands. Underneath, the command kernels move into one Rust crate that both hosts run, through PyO3 in Python and WebAssembly in TypeScript: sed, grep, rg, sort, jq, printf, bc, diff, cut and tr among them. A mo …在 GitHub 查看 ↗ -
v0.0.6 Mirage 0.0.6
发布说明摘录
We are excited to announce the release of Mirage 0.0.6 🎉🎉🎉 Mirage 0.0.6 is a permissions release. 0.0.5 gave an agent typed programs to act with; 0.0.6 decides what it may do with them. A permissions document replaces the old guard list: allow, ask and deny rules, one role per session, mounts that narrow rather than gate, hidden subtrees that stay hidden through a mutation, an approval door where an asked line reaches a person, and a decision ledger you can query and explain. A policy can now be a program, written in Python or JavaScript and judged at the command, op and session doors. Creden …在 GitHub 查看 ↗
常见问题
它是否只适用于某一种模型或代理框架?
远程服务的数据会每次都重新请求吗?
能否把工作区迁移到另一台机器?
mirage workspace snapshot 与 mirage workspace load。是否必须使用 FUSE?
谢谢反馈,我们会据此改进页面。