信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
Vercel Labs「Zero」——AIエージェントがビルド・修正・出荷するために設計されたシステム言語の仕組み
Vercel Labsが2026年5月17日に公開した実験的システム言語Zeroは、コンパイラ出力をJSON構造化診断として設計し、AIエージェントがエラー解析・修正計画・機能記述を人手なしで処理できる。C/Rustと同じ設計空間に位置しながら全く異なるツールチェーン哲学を持つ。
一言結論
Zeroはコンパイラ出力・エラー診断・機能記述をすべてJSON構造化形式で出力することで、AIエージェントが人間向けのテキストを解析せずにビルド・デバッグ・デプロイを完結できる。まだv0.1.2の実験段階だが、「エージェントが扱えるコードベース」という新しいPL設計の方向性を示している。
何が起きたか
2026年5月17日、Vercel Labs が実験的システムプログラミング言語 Zero(拡張子 .0)をGitHubで公開した。
リポジトリ: vercel-labs/zero
バージョン: v0.1.2(2026-05-17 リリース)
スター数: 1,700+(公開翌日時点)
ライセンス: 未明示(実験的リポジトリ)
実装言語: C (65.9%), JavaScript (27.9%), Shell (5.6%)
状態: 実験段階・安定性保証なし
Zeroは自分自身を次のように定義する:
「エージェントのためのプログラミング言語:小さなネイティブツール向けのシステム言語。明示的エフェクト、予測可能なメモリ、構造化されたコンパイラ出力。」
既存言語との本質的な違い
C / Rust との共通点と差異
ZeroはCやRustと同じ「システムプログラミング」の設計空間に位置する。ネイティブバイナリにコンパイルされ、メモリ制御を明示的に行う点は共通だ。
設計空間の比較:
メモリ制御 | ランタイム | コンパイル先 | ツールチェーン対象
C 明示的 | なし | ネイティブ | 人間
Rust 所有権 | なし | ネイティブ | 人間
Zero 明示的 | なし | ネイティブ | AIエージェント ← 差別化点
Rustの借用チェッカーに相当する機能は「基本的なもの(basic)」と説明されており、Rustほど厳密ではない。その代わりコンパイラ出力の機械可読性に全力を注いでいる。
「エージェントファースト」ツールチェーンとは何か
従来のコンパイラエラーは人間が読むための散文テキストだ。
# 従来のコンパイラエラー(人間向け)
error[E0502]: cannot borrow `s` as mutable because it is also borrowed as immutable
--> src/main.rs:6:14
|
5 | let r1 = &s;
| -- immutable borrow occurs here
Zeroのコンパイラは同じ情報をJSON構造体で出力する:
{
"code": "E0502",
"category": "borrow_check",
"span": { "file": "main.0", "line": 6, "col": 14 },
"repair_hints": [
{
"action": "drop_borrow",
"target_span": { "line": 5 },
"confidence": 0.87
}
]
}
エージェントはこのJSONを直接パースして修正計画を立てられる。人間向けの「説明文を解析して意図を推測する」ステップが不要になる。
Zero 固有のコマンド群
ビルド・診断系
zero check # 型チェック・エラー診断(JSON出力)
zero build # ネイティブバイナリのビルド
zero run # ビルド&実行
zero size --json # バイナリサイズの構造化分析
zero graph --json # モジュール依存グラフの可視化
エージェント連携系
# エラーの説明をエージェントが理解できる形式で出力
zero explain E0502
# 機械可読な修正計画を生成
zero fix --plan --json
# ルートサーフェスとバンドルインポートを分析
zero routes
# Vercel Agent Skills 仕様に従った機能記述を出力
# Claude Code, Cursor, Codex など 17+ のAIコーディング支援ツールが消費可能
zero skills
zero skills の出力例(エージェントがこのサービスの能力を把握するために使う):
{
"skills": [
{ "id": "build_native_binary", "description": "Compile .0 files to sub-10KiB native executables" },
{ "id": "emit_structured_diagnostics", "description": "Output all errors as typed JSON with repair metadata" }
]
}
言語設計の原則:「すべては明示的」
Zeroの設計は「すべてが明示的(everything is explicit)」という原則に従う:
明示的であること(Zeroが強制する):
✅ アロケータ: 隠れたアロケータなし
✅ 非同期: 暗黙的な async/await なし
✅ グローバル: マジックなグローバル変数なし
✅ エフェクト: 副作用は型システムに記録される
AIエージェントにとっての利点:
→ コードを読むだけで実行コストが予測できる
→ 隠れた状態が少ないため、バグの原因特定が容易
→ 「この関数は何をするか」がシグネチャだけで分かる
現在の状態と注意点
⚠️ 実験的ステータス(v0.1.2 時点)
確認済みの制限:
- 言語仕様の安定性: 未保証(破壊的変更の可能性)
- 借用チェッカー: Rustより基本的(メモリ安全の保証レベルは低い)
- エコシステム: ライブラリ/パッケージマネージャは未整備
- Steering Committeeの承認: 不要(Vercel独自プロジェクト)
検討すべきユースケース(現時点):
✅ AIエージェントパイプラインの実験的ツール
✅ 10KB以下のネイティブユーティリティの試験実装
✅ エージェント向け言語設計の研究
❌ 本番環境へのデプロイ(安定性未保証)
❌ 大規模コードベースの主要言語
なぜ今この設計が登場するのか
Claude Code・Cursor・Codexなどのエージェントが「コードを書く」だけでなく「ビルド・テスト・デプロイまで完結させる」ようになるにつれ、コンパイラとツールチェーンのAI可読性が重要になる。
従来のフロー(人間が仲介):
エージェント → コード生成 → コンパイラ → ❌ エラー(散文)
→ 人間がエラーを解釈 → エージェントにフィードバック
Zeroが目指すフロー:
エージェント → コード生成 → zero check → ❌ エラー(JSON)
→ エージェントが直接パース → zero fix → ✅ 修正
この設計思想は、プログラミング言語が「人間のための道具」から「エージェントと人間の共用インターフェース」へ移行するという仮説に基づいている。
まとめ・参考リンク
Zeroはまだ実験段階だが、「エージェントが扱いやすいシステム言語」という新しいカテゴリを提示した。CoはC/Rustの代替を狙うのではなく、エージェントパイプラインの末端で動く小さなネイティブツールのニッチを狙っている。
実用化には言語仕様の安定化とエコシステムの整備が必要で、現時点での本番利用は推奨できない。ただし、ツールチェーン設計の参照点として注目する価値はある。
出典・参考リンク
- GitHub: vercel-labs/zero(MIT, v0.1.2)
- Reddit r/programming — Vercel released Zero
- MarkTechPost: Vercel Labs Introduces Zero
- Vercel Agent Skills 仕様(
zero skillsコマンドの仕様元)
未確認事項: 借用チェッカーの具体的な保証範囲、商用利用ライセンス条件は公式ドキュメントで要確認。ベンチマーク比較データ(バイナリサイズ・コンパイル速度)は未公表。