首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >AI Agent 的「万能硬盘」来了!Mirage 让 AI 用 Bash 一招打天下!

AI Agent 的「万能硬盘」来了!Mirage 让 AI 用 Bash 一招打天下!

作者头像
开源星探
发布2026-05-13 12:27:10
发布2026-05-13 12:27:10
850
举报
文章被收录于专栏:翩翩白衣少年翩翩白衣少年

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 的成千上万倍。

catgrepheadwc、管道操作——这些命令对 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 看到的,就是一个统一的目录结构。

代码语言:javascript
复制
/
├── 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。

核心亮点
  • 一个文件系统,搞定所有后端:不管底层是 S3、Slack、GitHub 还是 MongoDB,对 AI 来说它们都是「文件」。
  • 熟悉的 Unix 命令,跨所有挂载点通用catgrepheadwcfindlscpmv、管道、重定向——这些命令在每一个挂载点上都能用。
  • 可移植的工作空间:支持快照、克隆、回滚。Agent 的整个执行环境可以打包成一个 tar 文件,迁移到另一台机器上直接恢复,不需要重新配置。
  • 两层缓存,重复读取零网络调用:每个 Workspace 都内置了两层缓存:索引缓存和文件缓存。
  • 主流 Agent 框架全支持:Mirage 不是要你换框架,而是无缝嵌入你已经在用的框架。
支持的数据源

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

而且这个列表还在快速增长中。

快速上手

环境要求

  • Python ≥ 3.12(用于 mirage-ai 包和 mirage CLI)
  • Node.js ≥ 20(用于 TypeScript SDK)
  • macOSLinux(FUSE 挂载需要平台支持)

Python 安装

代码语言:javascript
复制
uv add mirage-ai

这会同时安装 mirage 库和 mirage CLI 命令行工具。

TypeScript 安装

根据运行环境选择对应包:

代码语言:javascript
复制
# Node.js 服务端 / CLI
npm install @struktoai/mirage-node

# 浏览器 / Edge Runtime
npm install @struktoai/mirage-browser

# 运行时无关的核心原语(被上面两个自动依赖)
npm install @struktoai/mirage-core

CLI 安装

四种方式任选:

代码语言:javascript
复制
# 方式一:一键安装脚本
curl -fsSL https://strukto.ai/mirage/install.sh | sh

# 方式二:npm 全局安装
npm install -g @struktoai/mirage-cli

# 方式三:uvx 直接运行
uvx mirage-ai

# 方式四:npx 直接运行
npx @struktoai/mirage-cli

Python 最小示例

代码语言:javascript
复制
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 最小示例

代码语言:javascript
复制
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 使用示例

代码语言:javascript
复制
# 创建工作空间
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

代码语言:javascript
复制
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 的两层缓存都可以独立配置后端:

代码语言:javascript
复制
# 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

如果本文对您有帮助,也请帮忙点个 赞👍 + 在看 哈!❤️

在看你就赞赞我!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源星探 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目简介
  • 核心亮点
  • 支持的数据源
  • 快速上手
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档