Vercel Labs公式「フォーク可能なクラウド型コーディングエージェント」の登場
2025年12月、Vercel Labsが公開した vercel-labs/open-agents が静かに注目を集めている。2026年4月時点で 1,427スター、TypeScript/Bun/Next.js で書かれたMITライセンスのOSSだ。
単なるチャット風UIではない。「自分専用のChatGPT CodexやClaude Codeをクラウドに立てる」ための完全なリファレンス実装であり、Web UI・エージェント実行ランタイム・Sandbox VM オーケストレーション・GitHub統合の 4つの要素が揃った3層構成 になっている。READMEには「ブラックボックスではなくフォークして改変することが前提」と明言されている。
クラウドで動くバックグラウンドエージェントは2026年春の大きなトレンドだ。Cloudflare Sandboxes のGA化、Claude Codeのリモートエージェント機能、OpenAI Codexのクラウド実行、BrowserBase系のサンドボックス——いずれも「ローカルマシンを起動し続けなくていい」方向に向かっている。open-agentsは、そのムーブメントをあなた自身のドメインで実現するためのスターターキットだ。
(Next.js)"] Web -->|workflow開始| WF["Workflow SDK
(durable run)"] WF -->|ツール実行| Box["Vercel Sandbox
(隔離VM)"] Box -->|stdout/結果| WF WF -->|ストリーミング| Web Box -->|git push / PR| GH["GitHub"] style User fill:#f5a623,stroke:#e67e22,color:#000 style Web fill:#2980b9,stroke:#1a5276,color:#fff style WF fill:#2980b9,stroke:#1a5276,color:#fff style Box fill:#27ae60,stroke:#1e8449,color:#fff style GH fill:#27ae60,stroke:#1e8449,color:#fff
Vercel Labs公式のクラウド型コーディングエージェント・リファレンス実装
Web UI・Workflow SDK・Sandbox・GitHub統合の4要素が揃ったMITライセンスOSS
「ブラックボックスではなくフォーク前提」——商用プロダクトの土台にも使える
3層アーキテクチャ|Web / Agent Workflow / Sandbox の分離設計
open-agentsの全体構造はシンプルに見えるが、各層の責務が明確に分離されているのが特徴だ。
層1: Web App(apps/web)
Next.jsで実装されたフロントエンド+APIレイヤー。以下を担う:
- 認証(Vercel OAuth)とセッション管理
- チャットUI・ストリーミング応答表示
- 各種設定画面(GitHub接続・プロジェクト管理)
- リード専用リンクによるセッション共有
層2: Agent Workflow(packages/agent)
Vercel Workflow SDKをバックエンドとする 耐障害性のあるエージェントランタイム。
- 1回のチャットリクエストで1つのworkflow runを開始
- ツール呼び出し・LLM呼び出しをステップとして永続化
- Webリクエストのライフサイクルと切り離されて長時間実行可能
- 途中切断後も既存workflowに再接続してストリームを再開
層3: Sandbox VM(packages/sandbox)
Vercel Sandboxベースの隔離実行環境。
- ファイルシステム・シェル・git・開発サーバー・プレビューポートを提供
- スナップショットからの高速起動
- アイドル時にhibernate、次回アクセス時にresume
- ポート
3000・5173・4321・8000を公開
ソースコード配置:
apps/web Next.js アプリ本体(auth・workflow・chat UI)
packages/agent エージェント実装・tools・subagents・skills
packages/sandbox sandbox抽象とVercel Sandbox統合
packages/shared 共有ユーティリティ
この3層の独立性こそがopen-agentsの設計の核心だ。各層はそれぞれ別々に進化できる。たとえばSandbox実装をCloudflare SandboxやLocalStackに差し替えたり、LLMプロバイダーをAnthropic/OpenAI/Groq等の別ベンダーに切り替えたりしても、他の層を触らずに済む。
なぜAgentをSandbox外に出すのか|設計思想の核心
open-agentsの最も重要な設計判断は「エージェントはVMの中で動かさない」点だ。READMEでも明示されている:
The agent does not run inside the VM. It runs outside the sandbox and interacts with it through tools like file reads, edits, search, and shell commands.
従来型のエージェント実装(例:Cloud Workstations内でClaude Codeを動かす方式)との対比がわかりやすい:
従来型:Agent in Sandbox
(内部で動く)"] A1A -->|リクエストが
途切れると死ぬ| X["❌ 実行中断"] A1 --> A1F["ファイルシステム"] style A1 fill:#e74c3c,stroke:#c0392b,color:#fff style A1A fill:#e74c3c,stroke:#c0392b,color:#fff style X fill:#e74c3c,stroke:#c0392b,color:#fff
- エージェント実行がWebリクエストに縛られる
- VMを止めるとエージェントも止まる
- VMが制御プレーンを兼ねるため機能差し替えが困難
open-agents流:Agent outside Sandbox
(外部で動く)"] A -->|ツール経由| S["Sandbox VM
(純粋な実行環境)"] S -->|結果| A A -->|ストリーミング| U S -.->|hibernate/resume| S style A fill:#2980b9,stroke:#1a5276,color:#fff style S fill:#27ae60,stroke:#1e8449,color:#fff
この設計がもたらす具体的メリット:
- エージェント実行がリクエストライフサイクルから独立 — ユーザーがブラウザを閉じても継続
- Sandboxのhibernate/resumeと分離 — VMがスリープしてもエージェント文脈は生きている
- モデル/プロバイダ選択とSandbox実装を独立進化可能 — Claude→GPT乗換でVMを触らない
- VMは純粋な実行環境のまま — コントロールプレーンを兼務させない
この分離は Cloudflare Sandboxes のような新世代サンドボックス環境とも相性が良い。sandbox側に制御ロジックを書き込まず「ただのLinux環境」として使えるため、どのサンドボックス実装にも差し替えやすい。
実装されている機能7つ|チャットからPR作成まで
リポジトリで既に動く機能一覧:
| # | 機能 | 実装詳細 |
|---|---|---|
| 1 | チャット駆動コーディングエージェント | packages/agent の10ツール(bash/read/write/glob/grep/fetch/task/todo/skill/ask-user-question) |
| 2 | 耐障害性のある多段実行 | Workflow SDKで永続化、ストリーミング・キャンセル対応 |
| 3 | 隔離Vercel Sandbox | snapshot resumeで高速起動 |
| 4 | リポクローン・ブランチ作業 | Sandbox内でgit操作 |
| 5 | 自動commit・push・PR作成 | 成功run後に実行(opt-in) |
| 6 | セッション共有(読み取り専用) | リンクを発行してチーム共有 |
| 7 | 音声入力(ElevenLabs) | オプション機能 |
10個のエージェントツール構成
packages/agent/tools/ を覗くと、Claude Code互換のツールセットが並んでいる。
tools/
├── ask-user-question.ts ユーザーへの確認質問
├── bash.ts シェルコマンド実行
├── fetch.ts HTTP fetch
├── glob.ts ファイル検索
├── grep.ts コンテンツ検索
├── read.ts ファイル読み込み
├── skill.ts Skillシステム呼び出し
├── task.ts サブタスク起動
├── todo.ts ToDo管理
└── write.ts ファイル書き込み
この構成はClaude CodeのSDKと事実上同等。Claude Code用のスキルをそのまま移植できる可能性も高い。Claude Skills徹底解説で扱った .claude/skills/ の構造がそのまま流用できるため、Karpathy流CLAUDE.mdのような 4原則指針 もマージして使える。
Workflow SDKによるdurable run
従来のチャットAPIは1リクエスト=1応答で完結するが、open-agentsは違う。
// 概念図
async function handleChat(req) {
// 普通のAPIと違い、workflowを開始する
const run = await startWorkflow("agent-turn", { ... });
return streamFromRun(run); // 既存runへの接続も可能
}
各エージェントターンは 多数の永続化ステップ に分割され、進行状態がDBに記録される。ユーザーがブラウザをリロードしても、既存run IDで再接続すれば続きのストリームが見られる。
導入方法|Vercel 1-clickデプロイから環境変数まで
open-agentsの導入は段階的に進められる。最小構成→サインイン対応→GitHub統合、と順番にenv varsを足していく設計だ。
最小構成(アプリが起動する)
以下2つの環境変数があればデプロイ可能:
POSTGRES_URL=postgresql://...
JWE_SECRET=... # openssl rand -base64 32 | tr '+/' '-_' | tr -d '=\n'
サインイン対応(実用レベル)
Vercel OAuthでのログインを有効化するには追加で:
ENCRYPTION_KEY=... # openssl rand -hex 32
NEXT_PUBLIC_VERCEL_APP_CLIENT_ID=...
VERCEL_APP_CLIENT_SECRET=...
GitHub統合(フル機能)
リポジトリアクセス・PR作成など全機能を有効化するには:
NEXT_PUBLIC_GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...
GITHUB_APP_ID=...
GITHUB_APP_PRIVATE_KEY=...
NEXT_PUBLIC_GITHUB_APP_SLUG=...
GITHUB_WEBHOOK_SECRET=...
GitHub App側では以下のCallback URLを設定:
Homepage URL: https://YOUR_DOMAIN
Callback URL: https://YOUR_DOMAIN/api/github/app/callback
Setup URL: https://YOUR_DOMAIN/api/github/app/callback
デプロイフロー全体図
(Neon推奨)"] B --> C["シークレット生成
openssl rand"] C --> D["Vercel import"] D --> E["env vars設定
(最小3つ)"] E --> F["初回デプロイ
→ 安定URL取得"] F --> G["Vercel OAuth app作成"] G --> H["GitHub App作成"] H --> I["env追加→再デプロイ"] I --> J["✅ フル機能稼働"] style A fill:#f5a623,stroke:#e67e22,color:#000 style F fill:#2980b9,stroke:#1a5276,color:#fff style J fill:#27ae60,stroke:#1e8449,color:#fff
ローカル開発も可能:
bun install
cp apps/web/.env.example apps/web/.env
# .envに値を入れる
bun run web
その他の便利コマンド:
bun run check # lint + format check
bun run typecheck # 型チェック
bun run ci # format + lint + typecheck + test
bun run sandbox:snapshot-base # sandbox base snapshotを再生成
類似OSS・商用プロダクトとの比較|どこに位置づくか
open-agentsは「クラウド型コーディングエージェント」カテゴリでどう他と違うのか。
| 項目 | open-agents | Claude Code (Anthropic) | ChatGPT Codex (OpenAI) | Cline / Aider |
|---|---|---|---|---|
| 形態 | OSS自ホスト | 商用クラウド | 商用クラウド | OSSローカル |
| UI | Next.js Web | Web/CLI | Web | CLI/VSCode |
| ランタイム | Vercel Workflow SDK | Anthropic管理 | OpenAI管理 | ローカルプロセス |
| Sandbox | Vercel Sandbox | Anthropicマネージド | OpenAIマネージド | ローカル |
| カスタマイズ | ✅ 全層改変可 | ❌ 提供機能のみ | ❌ 提供機能のみ | △ CLIのみ |
| モデル選択 | ✅ 自由 | Anthropic系 | OpenAI系 | ✅ 自由 |
| 商用利用 | ✅ MIT | ✅ サブスク | ✅ サブスク | ✅ OSS |
| デプロイ | Vercelワンクリック | — | — | ローカル |
(サブスク購読)"] A -->|"ローカル開発中心"| C["Cline / Aider
(OSSローカル)"] A -->|"自分のドメインに
クラウド型を立てたい"| D["open-agents
(Vercel Labs)"] D --> E["モデル・UI・ツール
全て差し替え可能"] style D fill:#27ae60,stroke:#1e8449,color:#fff style E fill:#f5a623,stroke:#e67e22,color:#000
open-agentsの立ち位置は『商用プロダクトと同等の体験を、自分のドメインで、自分の選んだモデルで提供する』。社内エージェント・クライアント向けSaaS・特定業務特化のコーディングアシスタント——こうした用途ではフォーク前提の設計が真価を発揮する。
フォークして自作する時のカスタマイズポイント
リファレンス実装として提供されているため、カスタマイズの勘所を押さえておくと移植が速い。
1. モデルプロバイダーの差し替え
packages/agent/models.ts に中央化されているため、ここを変更すれば全ツール呼び出しで新モデルが使われる。Anthropic SDK標準だが、OpenAI/Groq/Google等への差し替えは標準的なLLM abstractionパターンに従う。
2. Sandbox実装の差し替え
packages/sandbox にVercel Sandbox固有の実装が隔離されている。Cloudflare Sandboxes・Fly Machines・自前Kubernetes Podへの差し替えは、このpackageのインターフェースを実装し直すだけ。
3. ツールの追加・削除
packages/agent/tools/ にフラットなTypeScriptファイルとして並んでいる。新ツールを追加するには、既存ツール(例 read.ts)をコピーして実装を書き換え、index.ts に登録するだけだ。
// 例: browser.ts を追加
export const browserTool = {
name: "browser",
description: "Browse a URL and return the content",
parameters: z.object({ url: z.string().url() }),
execute: async ({ url }) => {
// 実装
}
};
4. UIカスタマイズ
apps/web はNext.js 15+React 19のスタンダードな構成。Tailwind CSS・shadcn/ui等を使っており、デザインシステム差し替えは難しくない。
5. データストアの変更
PostgreSQL(Drizzle ORM)からMySQL/SQLite/Turso等への移行は、Drizzleの方言切り替えでほぼ完了する。schema定義は apps/web/lib/db/schema.ts に集約されている。
注意点:Workflow SDK はVercel固有
open-agentsのdurable実行はVercel Workflow SDKに依存しており、AWSやGCPに移植するにはTemporal・Restate・Inngest等への書き換えが必要です。Vercelへのデプロイを前提とするOSSである点は最初に理解しておくとミスマッチを避けられます。
まとめ|「自分のChatGPT Codex」を作るためのスターターキット
open-agentsは、単なるチャットUI テンプレートではない。Web UI・耐障害性ランタイム・Sandbox VM・GitHub統合という、商用クラウドエージェントに必要な4要素すべてを揃えたリファレンス実装 だ。フォーク前提の設計思想により、商用プロダクト・社内ツール・垂直特化エージェントのスターターキットとして機能する。
Vercel環境へのロックインという明確な制約はあるものの、逆に言えばVercelエコシステムで完結する前提なら、これ以上スピーディーに立ち上がる選択肢は他にない。Vercel Emulateのようなテスト基盤、Cloudflare Sandboxesのような外部サンドボックス、Karpathy流CLAUDE.mdのような動作指針と組み合わせれば、プロダクションレベルのクラウドエージェントが手元で組み上がる時代に入っている。
参照ソース
- vercel-labs/open-agents (GitHub) — 本記事の対象OSSリポジトリ
- open-agents.dev — 公式デモサイト
- README.md — 導入手順の一次ソース
- AGENTS.md — エージェント向け開発ガイド
- Vercel Workflow SDK — durable実行基盤の公式ドキュメント
- Vercel Sandbox — 隔離実行環境の公式ドキュメント
- Next.js Documentation — Webレイヤーのフレームワーク