CelestoAI/celesto
Secure and persistent computer for AI agents
Celesto AI – AIエージェントのための安全で永続的なサンドボックス
概要 – Celesto(旧 SmolVM)は、大規模言語モデルエージェント(Claude、Codex、Piなど)に、コードの実行、Webブラウジング、または完全なデスクトップ環境の使用を可能にする、プライベートで高速起動する仮想コンピュータを提供するオープンソースプラットフォームです。各サンドボックスは軽量なマイクロVM(Linux上のFirecracker、KVMベースのWindowsゲスト)であり、約500msで起動し、ハードウェアレベルでエージェントをホストから分離し、複数のAPI呼び出しにわたって生存させることができます。
重要性 – AIが生成したコードを開発者のラップトップ上で直接実行するのは危険です。Celestoを使用すると、使い捨てのVM内でコードを実行でき、以下のことが可能です:
- ターン間でファイルと状態を保持し、マルチステップのワークフローを可能にする。
- 「コンピュータ使用」エージェントのために、実際のブラウザまたは完全なデスクトップを提供する。
- 厳格なネットワークポリシー(オフ、制限付きCIDR、または完全なインターネット)を強制する。
- ホストディレクトリを読み取り専用または書き込み可能でマウントし、ファイルをコピーせずに既存のコードベースでエージェントが作業できるようにする。
- VMのスナップショットを作成して再開したり、Pythonの
withブロック終了時に自動的に削除したりする。
主要コンポーネント
| コンポーネント | 機能 |
|---|---|
Python SDK (celesto パッケージ) |
作成、コマンド実行、ファイルアップロード、ディレクトリマウント、ターミナルオープン、ブラウザ管理を行うための高レベルな Computer / Celesto クラス。 |
CLI (celesto コマンド) |
サンドボックスの作成、一覧表示、停止、シェルへの接続、削除。ブラウザまたはデスクトップセッションの起動。Windows/macOSプレビューの管理。 |
TypeScript プレビュー (@celestoai/smolvm) |
JavaScript/TypeScriptで記述されたサーバーサイドエージェントに役立つ、同じサンドボックス機能のためのNode.js API。 |
| FirecrackerベースのLinuxマイクロVM | サブ秒起動、ハードウェア分離、構成可能なネットワーク、スナップショットサポート。 |
| Windows 11 ゲストサポート | KVMを備えたLinuxホスト上で実行。PowerShellアクセスと並列サンドボックス化を提供。 |
| macOS デスクトッププレビュー | AppleシリコンMac上で、UIテスト用の一時的なmacOSデスクトップを起動(約50GBのダウンロードが必要)。 |
典型的なユースケース
- AI生成コードの安全な実行 – ホストOSを危険にさらすことなく、信頼できないコードスニペットを実行する。
- エージェントのためのブラウザ自動化 – CDP、VNC、またはビューアURLを介して制御できるライブChromiumインスタンスをLLMに提供する。
- コードベース支援 – プロジェクトディレクトリをマウントし、エージェントがサンドボックス内で読み取り、編集、変更のコミットを行えるようにする。
- ステートフルなマルチターンワークフロー – 複数のAPI呼び出しにわたって同じVMを生存させ、コンテキストを維持する。
- インストーラーやGUIアプリのテスト – macOSまたはLinuxデスクトッププレビューを使用してUI操作を自動化する。
はじめに(クイックスタート)
# alphaパッケージのインストール(Python 3.11+が必要)
pip install 'celesto==0.0.15a0'
# ホスト依存関係の準備(Linuxではsudoが必要な場合があります)
celesto setup
celesto doctor # 健全性チェック
from celesto import Computer
# メッセージを出力する使い捨てサンドボックス
with Computer(local=True) as comp:
out = comp.run("echo 'Hello from the sandbox!'")
print(out.stdout)
with ブロックが終了するとサンドボックスは消滅します。永続的なVMが必要な場合は、lifetime="persistent" で作成し、後で Computer.get(id, local=True) を介して再接続してください。
クラウドでの実行 – CELESTO_API_KEY を設定し、local=True を省略します。同じPython APIが動作しますが、クラウド利用には料金が発生する場合があります。
CLIの例
# サンドボックスの作成、一覧表示、停止
celesto sandbox create --name demo
celesto sandbox list
celesto sandbox stop demo
# インタラクティブシェルの起動
celesto sandbox shell demo
# 単一コマンドの実行(スクリプトで便利)
celesto sandbox exec demo -- python --version
ブラウザサンドボックス – 表示可能なChromiumインスタンスを起動してライブで監視:
celesto browser start --live
# ビューアURLとVNC URLが表示されます。ブラウザでビューアを開いてセッションを確認してください。
Pythonの場合:
from celesto import Celesto
with Celesto.browser(headless=False) as b:
print(b.viewer_url) # 開いて監視
print(b.cdp_url) # Playwright / CDPツールに渡す
Windows サンドボックス – KVMを備えたLinuxホストが必要です。ISOからイメージをビルドするか、既存のQCOW2を使用します:
celesto windows build-image --iso Win11.iso --virtio-win-iso virtio-win.iso --output ~/.smolvm/images/win11.qcow2
その後、os="windows" を指定してPython APIを使用します。
セキュリティと分離
- 各サンドボックスは独自のVM内で実行されます(ハードウェアレベルの分離)。
- ネットワークは完全に無効にするか、特定のCIDRブロックに制限できます。
- ファイルシステムのマウントはデフォルトで読み取り専用です。書き込み可能なマウントは明示的に要求する必要があります。
- スナップショットは、メモリ、ディスク、プロセス状態全体をキャプチャし、後で再開できます。
ドキュメントとコミュニティ
- 完全なドキュメント:https://docs.celesto.ai
- クイックスタート、APIリファレンス、ネットワーク、macOS、Windows、ブラウザサンドボックスのガイド。
- Discordコミュニティでのサポート:https://discord.gg/KNb5UkrAmm
成熟度 – このプロジェクトは alpha リリース (0.0.15a0) です。LinuxマイクロVMのコア機能は安定していますが、WindowsおよびmacOSプレビューはまだ実験的です。CIバッジはテストとCodeQLスキャンが通過していることを示しています。
結論 – Celestoは、LLMベースのエージェントに独自の高速で分離されたコンピュータを提供するための基盤を提供します。ヘッドレスコマンドランナー、完全なブラウザ、デスクトップUIのいずれが必要であっても対応可能です。VMのプロビジョニング、ネットワーク、永続性を抽象化し、開発者がAI駆動のワークフローを安全に構築することに集中できるようにします。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト