project
Mirage - strukto-ai:オープンソースのAIエージェントと統合仮想ファイルシステム。
Mirageは、strukto-aiチームが開発したAIエージェント向けの統合仮想ファイルシステムです。このツールは、S3、Slack、Gmail、GitHub、MongoDBなどの異種データソースを単一の仮想ファイルツリーにマウントします。
ミラージュとは何ですか?
Mirageは、strukto-aiチームが開発したAIエージェント向けの統合仮想ファイルシステムです。このツールは、S3、Slack、Gmail、GitHub、MongoDBなどの多様なデータソースを単一の仮想ファイルツリーにマウントし、AIエージェントが新しいAPIを学習することなく、Bashコマンド(cat、grep、wc、pipesなど)を使用してサービス間でデータの読み書き、クエリ、コピーを実行できるようにします。これにより、すべてのバックエンドを処理する単一のファイルシステムが実現します。
ミラージュの主な機能
-
統合仮想マウントS3/R2/GCS、Googleスイート(Gmail/Drive/Docs)、Slack/Discord/Telegram、GitHub/Linear/Notion、MongoDB/Redis/PostgreSQL、SSHリモートサーバーなどをすべてマッピングします。
/s3、/slack、/github標準カタログ等 -
サービス間Bash操作AIは利用可能です。
cat、grep、head、find、cp、mvパイプやリダイレクトなどのUnixコマンドは任意のマウントポイントで動作し、サービス間パイプなどを可能にします。grep alert /s3/log.jsonl | wc -l即日発効する。 -
持ち運び可能な作業スペーススナップショット、クローン作成、ロールバックに対応しています。エージェントの実行環境全体をtarファイルにパッケージ化し、再構成することなく別のマシンに移行して直接復旧できます。
-
2層スマートキャッシング組み込みのインデックスキャッシュ(ディレクトリとメタデータ)とファイルキャッシュ(オブジェクトバイト)を備え、繰り返し読み取り時のネットワーク呼び出しはゼロです。メモリ(デフォルトは512MB)またはRedisバックエンドをサポートします。
-
主流のフレームワークとのシームレスな統合OpenAI Agents SDK、Vercel AI SDK、LangChain、Pydantic AI、CAMEL、OpenHandsなどに対応したアダプターを提供します。
ミラージュの技術原理
- 設計の基本理念:ファイルシステムは普遍的な抽象概念である。 Mirageの技術基盤は、重要な洞察に基づいています。それは、最新の大規模言語モデルは、単一のAPI SDKよりもはるかに多くのBash、Unixコマンド、ファイル操作に関するトレーニングデータを持っているということです。そのため、AIにNセットの異種インターフェースを学習させるのではなく、S3、Slack、Gmail、MongoDBなどのすべてのバックエンドを、AIが既に習得しているPOSIXスタイルのファイルセマンティクスに統一的に変換する方が効果的です。これにより、エージェントは新しい語彙を学習することなく、ネイティブのシェルコマンドのみを使用して、あらゆるデータソースを操作できるようになります。
- 4層構造。 Mirageはトップダウンの4層アーキテクチャを採用しています。最上位層はAIエージェントおよびアプリケーション層で、標準のBashまたはシステムコールを介してシステムとやり取りします。第2層はMirage BashおよびVFS層で、コマンドレジストリとVFS操作レジストリを含み、上位層からの入力を解析および標準化する役割を担います。第3層はディスパッチャおよびキャッシュ層で、マウントポイントに基づいてリクエストを対応するバックエンドにルーティングし、2層のキャッシュによって重複読み取りをインターセプトします。最下位層は、RAM、ディスク、Redisなどのローカルインフラストラクチャと、S3、GitHub、Slackなどのリモートサービスを単一のファイルツリーにマウントし、FUSEアダプタによって外部アプリケーションがローカルディスクとして直接アクセスできるようにします。
- VFS(仮想ファイルシステム抽象化レイヤー) 仮想ファイルシステム(VFS)は、Mirageの中核となる変換エンジンです。各バックエンドサービスは、標準化されたVFSインターフェース(readdir、open、read、statなど)を実装することで、「ファイルシステムのような」動作にマッピングされます。Slackチャンネルは仮想ディレクトリに、メッセージはJSONファイルに、MongoDBコレクションはディレクトリに、ドキュメントはJSONファイルになります。VFSは、基盤となるシステムがオブジェクトストレージかチャットチャンネルかを気にしません。バックエンドが統一されたファイル操作セマンティクスを提供することだけを要求するため、上位レイヤーのエージェントは、完全に一貫した考え方でどのバックエンドでも操作できます。
Mirageの使い方
- 環境準備:システムにPython 3.12以上、またはNode.js 20以上がインストールされていること、およびオペレーティングシステムがmacOSまたはLinuxであることを確認してください。
- インストールと展開:Python を介して
uv add mirage-aiインストール; TypeScript経由@struktoai/mirage-nodeまたは@struktoai/mirage-browserインストール; CLIは、ワンクリックスクリプト、npm、uvx、またはnpxを使用してインストールできます。 - ワークスペースの作成と設定: コード内で Workspace オブジェクトをインスタンス化し、仮想パスを指定します (例: ...)
/s3、/slack)および対応するリソース駆動型(例:S3Resource、SlackResourceマウントマッピングを実行します。 - Bashコマンドを実行する:合格
ws.execute()標準的なUnixコマンド(例:...)を渡してください。cat、grep、cpMirageは、これら(パイプラインなど)を自動的に、基盤となるサービスへの実際のAPI呼び出しに変換します。 - スナップショットと移行:電話
ws.snapshot("demo.tar")環境全体をパッケージ化します。mirage workspace load demo.tar再設定なしで、新しいマシンに直接復元できます。 - エージェントフレームワークとの統合:合格
MirageSandboxClientOpenAI Agents SDK を埋め込むか、mirageTools(ws)Vercel AI SDKとの連携のために、LangChain、Pydantic AI、CAMEL、およびOpenHands用の公式アダプターが提供されています。
ミラージュの主な利点
-
学習コストはゼロAIは新たなAPIやMCPを学習する必要がなく、最も豊富な学習データを持つBashやファイルシステムのセマンティクスを直接再利用できる。
-
サービス間パイプラインのネイティブサポート異なるバックエンド間のデータフローはローカルディスク操作に似ており、エージェントは1回の処理でより多くの実際の作業を完了できます。
-
環境的に移植可能スナップショット機能とクローン機能により、エージェント実行環境のバージョン管理と移行が可能になり、複数マシン展開やサーバーレス環境における状態の一貫性の問題を解決します。
-
高性能キャッシュ2層キャッシュ機構により、リモートAPI呼び出しの頻度が大幅に削減され、Redisバックエンドはマルチプロセスおよびサーバーレスアーキテクチャへの適応性が向上します。
-
フレーム非依存エージェントフレームワークの変更を強制しないでください。サンドボックスまたはツールレイヤーの形で、既存のテクノロジースタックに組み込んでください。
ミラージュのプロジェクトアドレス
- プロジェクト公式サイト:https://www.strukto.ai/mirage
- GitHubリポジトリ:https://github.com/strukto-ai/mirage
Mirageと類似製品との比較
| 寸法 | Mirage | MCP (Model Context Protocol) | Composio |
|---|---|---|---|
| 製品ポジショニング | AIエージェント向け統合仮想ファイルシステム | AIが外部システムと通信するためのオープン標準プロトコル | AIエージェントツール統合およびオーケストレーションプラットフォーム |
| 中心となる考え方 | すべてのバックエンドをPOSIXファイルシステムにマッピングし、AIにおける統一的な操作にはBashを使用する。 | 標準化されたサーバー・クライアントアーキテクチャツールによる検出と呼び出し | 100種類以上の主要SaaSツールに対応した、事前構築済みの統合コネクタ |
| AIとのインタラクション方法 | 標準的なBashコマンド、パイプ、リダイレクトなど、新しい用語は一切不要です。 | AIはプロトコル記述を通して機能を発見し、構造化されたJSON呼び出しを生成する。 | 関数呼び出しによる事前パッケージ化されたアクションの呼び出し |
| 学習コスト | LLMが本来得意とするシェル機能を再利用することで、極めて低コストを実現しています。 | この文脈においては、スキーマ、機能記述、およびプロトコル仕様を理解することが不可欠である。 | その過程で、各アクションのパラメータと使用パターンを習得する必要があります。 |
| 複数の軍種を横断する構成 | ネイティブパイプ | マウントポイント間でのシームレスな転送とリダイレクト |
単一ポイント呼び出しの場合、サービス間オーケストレーションにはアプリケーション層での手動による接続作業が必要となる。 | ワークフローオーケストレーションはサポートされていますが、ツール間でデータを転送する際には、変数を明示的に渡す必要があります。 |
| 環境への適合性 | スナップショット、クローン、ロールバック:tarパッケージの完全移行 | ネイティブ環境パッケージは存在せず、各サーバーの設定は分散的に管理されます。 | 管理された環境が提供されますが、ローカルとクラウドの状態同期には追加の設定が必要です。 |
| キャッシュメカニズム | 2層キャッシュ(インデックス+ファイル)で、Redis共有をサポート | 各MCPサーバーはこれを個別に実装する必要があります。 | プラットフォーム層はいくつかの最適化機能を提供し、各ツールは独立して管理されます。 |
| オープンソースライセンス | Apache 2.0 | Apache 2.0 | 部分的にオープンソース |
Mirageの応用シナリオ
- 複数ソースのログ分析エージェントは、S3ログディレクトリ、Slackアラートチャンネル、GitHub Issueリポジトリを同時にマウントします。
grepそしてwc故障発生頻度と根本原因特定に関する、サービス横断的な統計データ。 - 自動レポート生成このツールは、Googleスプレッドシートからデータを抽出し、Gmailから添付ファイルを取得し、Notionからプロジェクトドキュメントを読み込み、それらをローカルの仮想ディレクトリに集約して、包括的なレポートを自動的に生成します。
- リモートサーバーのメンテナンスエージェントは、SSH経由で複数のリモートホストをマウントすることで、標準のBashを使用して診断コマンドの実行、設定ファイルのコピー、システム状態の変更を一括で行います。
- データ移行と同期S3、R2、GCSなどの異なるクラウドストレージシステム間、またはMongoDBからローカルディスクへ、
cpパイプラインコマンドを使用して、異種混在のバックエンドからデータを移行します。 - サーバーレスエージェントサービスRedis共有キャッシュと組み合わせることで、サーバーレスのマルチレプリカAIアプリケーション向けにステートフルで復旧可能な仮想ファイルレイヤーを提供し、インスタンスの再起動後も環境が失われないことを保証します。