こんにちは。もるふぉです。
CursorやClaude CodeにUIを書かせていると、「そんなpropないよ」というコンポーネントを堂々と生成されることがありますよね。
エージェントはあなたのデザインシステムのAPIを、正確には知りません。
だいたいで書いています。
コードレビューで気づけばまだいいのですが、気づかずに混入したときは、原因究明に余計な時間を失います。
Metaが8年ぶりに社内から出してきた「Astryx」は、この「だいたい」を設計から潰しにきたデザインシステムです。
デザインシステムの選定基準が、これから変わるかもしれない。
そう感じた理由を整理しました。
Astryxとは何か — Metaが8年育てたデザインシステムがOSSになった
Astryxはオープンソースの React デザインシステムです。
特徴は生まれではなく育ちにあります。
Facebook・Instagram・Threads を支えながら Meta 社内で8年運用され、13,000以上のアプリで動いてきたものが、2026年6月18日に MIT ライセンスで公開されました。
つまり「新しく作ったOSS」ではなく「8年戦ってきた本番システムが外に出た」という話です。
GitHubのスターは公開から約3週間で約8,000(2026-07-12時点)、週あたり数千のペースで伸び続けています。
日本語の解説がまだほぼ無い今が、静かに触っておく好機です。
なぜ今このタイミングでOSSにしたのか
理由は公式が正面から書いています。
公式ブログは「より多くのコードがエージェントによって書かれるようになるにつれ、デザインシステムがどう構造化されるべきかを問い直さなければならない」と述べています。
ここが肝です。
Astryxは「便利なコンポーネント集を配りたい」のではなく、「エージェントが書く時代のデザインシステムはこうあるべき」という設計の提案として公開されました。
単なるリリースではなく、主張なんです。
次のセクションで、この「主張」の中身を具体的に見ていきます。
「エージェントが読める」とはどういう設計か
従来のデザインシステムは、人間向けにドキュメントを書き、AIには後から対応させる作りでした。
Astryxはその順番を逆にしています。
公式の言葉を借りれば、既存システムをエージェントに合わせて後付け改修(retrofit)するのではなく、最初から AI が操作できる前提(AI-operable)で土台から作った、と明言しています。
言葉にすると小さな違いに見えますが、ここが Astryxの全てだと考えています。
「エージェントが読める」とは、見た目のことでもコンポーネント数のことでもありません。
エージェントが「このコンポーネントに何を渡せるか」を、推測せずに知れる状態のことです。
この「後付けか、最初からか」の差が、実際の開発でどう効くのか。
従来のデザインシステムがエージェントに"読めなかった"理由
エージェントがあなたのデザインシステムのAPIを知る経路を思い出してください。
ドキュメントサイトのHTMLをスクレイプするか、学習データの記憶を掘り起こすか、Web検索で当て推量するか。
どれも「推測」です。
推測だから外します。
存在しない prop を生成する、非推奨のコンポーネントを引っ張ってくる、バージョン違いのAPIを混ぜる。
UIコード生成でハルシネーションが起きる温床は、たいていここにあります。
エージェントが悪いというより、正しい情報源が機械可読な形で存在しなかった、というのが本質です。
特にわかりやすいのは、社内独自のコンポーネントほど外しやすい、という点です。
世に広く出回っているライブラリなら学習データに含まれますが、あなたのチームが去年作ったコンポーネントの prop まではエージェントは知りません。
だから知っている一般的なAPIで「それらしく」埋めてくる。
ここが Astryx の狙うポイントです。
OpenAPIがバックエンドに与えたものを、フロントに与える
この状況、バックエンドの人は既視感があるはずです。
かつてAPIも「ドキュメントを読んで手で叩く」世界でした。
そこに OpenAPI やスキーマという機械可読な契約が入り、ツールもエージェントも「推測せず、定義を見て正確に叩く」ようになりました。
私の整理では、Astryx がフロントに持ち込もうとしているのは、まさにこれです。
いわば、UI構築に OpenAPI 相当の「機械可読なコントラクト」を与える試み。
バックエンドが手に入れた正確さを、これまで置き去りだったフロントのコンポーネント選択に持ってくる、という発想です。
人間向けの読み物としてのドキュメントとは別に、機械がそのまま解釈できる仕様書を最初から用意しておく、と言い換えてもいいと思います。
なお、この OpenAPI という例えは公式が言っているわけではなく、あくまで私の理解を助けるための比喩です。
ただ、次に見る具体的な仕組みを知ると、この例えがしっくりくるはずです。
Astryxはどうやってエージェントに読ませているのか
抽象論を具体に落とします。
勘所は「CLIとMCPサーバーの2本の経路を、最初から公式が用意している」点にあります。
確認できている機構を3つ挙げます。
CLIが"人間とAIの共通リファレンス"になる
Astryx の CLI は @astryxdesign/cli というパッケージで提供されます。
READMEにある実例は npm run astryx -- component --list のように、コンポーネント一覧・テンプレート・テーマ・codemods を引ける作りです。
公式が繰り返し強調しているのは、API・ドキュメント・CLI を一体で設計し、人もAIも同じリファレンスから同じように作る、という思想です。
長文ドキュメントやWeb検索より、CLIの方が信頼できるAIの学習経路になる、という主張ですね。
人間が --list で見る情報と、エージェントが取得する情報が、同じ蛇口から出てくるわけです。
ここで終わりじゃないのが、面白いところです。
manifest が返す"機械可読コントラクト"
CLI版OpenAPIの正体がこれです。
報道によれば astryx manifest --json を叩くと、全コマンド・引数・フラグ・レスポンス型が1つのJSONで自己記述されます。
エージェントはこのJSONを読めば、APIの形を推測する必要がなくなります。
加えて各コンポーネントには、AIの合成を助けるヒントが JSDoc として付いていると報じられています。
さらにもう一本の経路があります。
Astryxは公式ドキュメントの「Working with AI」ページ(astryx.atmeta.com/docs/working-with-ai)で、MCPサーバー(https://astryx.atmeta.com/mcp)を正式に公開しています。
公式サイトトップにも「from the command line or MCP」と並記されており、Claude Desktop・Cursor・Windsurf・Cline 向けのJSON設定例まで公式ドキュメントが提供しています。
「MCPは報道が盛った話」ではなく、CLIと並ぶファーストクラスの公式機能です。
コンポーネントの検索(search(query))や取得(get(name))をMCP経由で自然言語から呼べる設計になっています。
つまり、エージェントの接続経路はCLIとMCPの2本立てで、どちらも公式が用意しているという構図です。
「最初からエージェント操作を前提に土台を作った」という主張と、正確に対応しています。
StyleXは"構成技術の1つ"に過ぎない
「Astryx って StyleX の新版でしょ」という誤解を、ここで解いておきます。
確かに Astryx は StyleX(コンパイル時にCSSを生成するエンジン)で書かれています。
ですがそれは実装の内部事情で、利用者からは見えません。
見た目を変えたければ className を渡して、Tailwind でも CSS Modules でも素のCSSでも上書きできます。
StyleXを学ばないと使えない、ということはありません。
StyleX自体の解説はQiitaやZennの良い記事に譲りますが、少なくとも「Astryx = StyleX」ではない、とだけ押さえておけば十分です。
日本の文脈:国産デザインシステムのMCP対応との違い
エージェント対応の動きは日本にもあります。
三菱電機の Serendie や CyberAgent の Spindle は、MCPサーバーを提供してエージェントから自社デザインシステムを扱えるようにしています。
ただし立ち位置が違います。
国産勢の多くは「すでにある自社デザインシステムに、後からMCP対応を足す」流れです。
対して Astryx は「最初からエージェント操作を前提に設計され、しかもOSSとして誰でも使える」ところが出発点から異なります。
どちらが優れているという話ではなく、後付けか、土台からか、という設計思想の違いです。
日本のチームがエージェント対応を検討するとき、この2つの型を知っておくと選択肢が整理しやすくなります。
まとめ — デザインシステムの選定軸はこれから変わる
デザインシステムの選定基準は、これまで「見た目・アクセシビリティ・コンポーネントの網羅性」でした。
Astryx が突きつけているのは、そこに「エージェントが正確に読めるか」という軸が加わる、という予告です。
正直に付け加えると、Astryx はまだ Beta です。
コンポーネント数も公式表記の「150+」に対して実装ベースでは90前後という指摘があり、テーマ数も情報源によって7〜10種と差があります。
数字はこれから固まる段階です。
それでも、8年の実績を背負ったチームが「エージェントが書く時代の土台はこう作る」と具体で示した意味は大きいと考えています。
気になったら、まずは npx astryx component --list を一行叩いてみてください。
あるいはCursorやClaude Desktopに https://astryx.atmeta.com/mcp を設定して、コンポーネントを自然言語で呼んでみるのも5分でできます。
設計思想が手ざわりで理解できるはずです。



💬 コメント
ログイン か 会員登録 するとコメントできます