OpenRouterに登場した「Ox Alpha」は、コーディングや長時間のエージェント作業を想定した匿名モデルです。では、実際に日本語のWebアプリを一から作らせたら、そのまま動くのでしょうか。
2026年8月22日、個人情報や既存コードを含まないプロンプトをstealth/ox-alphaへ1回だけ送り、単一HTMLの「AIモデル比較メモ」を生成しました。その後、生成原本を保存し、静的検査、Chromeでの実行、編集後の再読み込み、390px表示まで確認しています。
先に結論:
Ox Alphaは15,200文字の見栄えのよいWebアプリを一度に生成しましたが、原本はJavaScript構文エラーで動きませんでした。構文を直すと、今度は表示ラベルと保存キーの不一致が判明。2点を最小修正した後は、追加・編集・保存・検索・お気に入り・390px表示まで動作しました。

広告・PR:この記事にアフィリエイトリンクはありません。OpenRouterやOx Alphaの提供元から報酬・製品提供も受けていません。仕様、価格、速度、公開状況は2026年8月22日の確認内容です。
初心者ブロガーOx Alphaは、生成されたコードをそのまま使えるモデルですか?



今回は一発では動きませんでした。見た目だけで完成とせず、構文・console・再読み込みまで確認するのが重要です。
この記事でわかること
- Ox Alphaの公式仕様と匿名提供の注意点
- 実際に送った安全なコーディング課題
- HTTP、時間、トークン、生成量の実測値
- 原本が動かなかった2つの原因
- 最小修正後のPC・390px動作結果
Ox Alphaとは
Ox Alphaの公式モデルIDはstealth/ox-alphaです。OpenRouterの説明では、コーディング、持続的なエージェント作業、長期のソフトウェア開発、複雑な推論、テキストと視覚情報を使う作業を想定しています。
ただし、開発元は公開されていません。公式ページには、匿名の第三者モデル提供元が開発・運用し、OpenRouterは開発者・所有者・提供元ではないと表示されています。SNS上の推測を根拠に、別の既知モデルだと断定しない方が安全です。


| 確認項目 | 2026年8月22日の公式表示・API |
|---|---|
| モデルID | stealth/ox-alpha |
| コンテキスト | 1,048,576トークン |
| 最大出力 | 131,072トークン |
| 入力 | テキスト、画像、動画 |
| 出力 | テキスト |
| 価格 | 入力・出力とも0ドル表示 |
| 推論 | 必須。max、high、lowに対応し、初期値はmax |
| 公開日表示 | 2026年8月21日 |
| 提供元 | 匿名の第三者モデル提供元 |
取得時点のモデルページにはp50 3.07秒、31 tokens/s、uptime 100%と表示されていました。ただし、これらは混雑や提供状況で変動する数字です。今回の長いコード生成にかかった時間とは分けて見ます。
送信前に確認したデータ保持の注意
重要:
Ox Alphaの公式ページには、プロンプトと回答がモデル提供元に保持され、トレーニングには使われないと表示されています。「学習に使われない」と「保存されない」は同じ意味ではありません。
今回は氏名、メール、顧客情報、公開前の記事、アクセスログ、既存サイトのコード、APIキー、業務データを送らず、架空の比較ツール要件だけを入力しました。
今回の実測条件
「見た目だけのデモ」ではなく、再読み込み後も使える小さなツールを課題にしました。
- HTML、CSS、JavaScriptを1ファイルへまとめる
- Model A〜Cの3件を初期表示する
- 名前、用途、強み、注意点、料金、5段階評価を編集する
- 候補の追加・削除、検索、お気に入り表示を用意する
localStorageへ保存し、再読み込み後に復元する- 390px幅で横スクロールを出さない
- 外部ライブラリ、CDN、API通信、iframe、
evalを使わない
APIキーは、この実測だけに使う名前で作り、有効期限1日、上限1ドルに設定しました。キー文字列はスクリーンショット、生成コード、ログ、Gitへ保存せず、実行後にOpenRouter上から削除しています。


推論設定はhigh、exclude: trueにしました。excludeは推論内容を回答へ含めない設定です。


payload = {
"model": "stealth/ox-alpha",
"messages": [{"role": "user", "content": PROMPT}],
"max_tokens": 24000,
"reasoning": {"effort": "high", "exclude": True},
"temperature": 1,
"top_p": 0.95,
}
プロンプトの中心:
比較候補の追加・削除、名前と用途の検索、お気に入り、5段階評価、localStorage保存、390px表示、アクセシビリティを指定。外部通信と動的コード実行は禁止しました。全文は再現用ファイルexperiments/ox-alpha/ox_alpha_prompt.txtへ保存しています。
API実測結果
API自体は正常終了しました。
| 実測項目 | 結果 |
|---|---|
| HTTP | 200 |
| request / response model | stealth/ox-alpha |
| finish reason | stop |
| 所要時間 | 278.009秒(約4分38秒) |
| prompt tokens | 497 |
| completion tokens | 5,997 |
| total tokens | 6,494 |
| 生成HTML | 15,200文字、585行 |
| APIレスポンス上のcost | 0ドル |
| APIレスポンス上のreasoning tokens | 0 |
reasoning.effort: highを送った一方、利用量のreasoning_tokensは0でした。この一回の数値だけで「推論していない」とは断定できません。exclude: trueや提供元の集計方法も関係し得るため、取得値だけを記録します。


生成コードを開く前に安全性を検査
AIが返したHTMLをすぐブラウザで開かず、先に外部通信と動的コード実行を検索しました。
| 検査対象 | 原本の検出数 |
|---|---|
fetch、XMLHttpRequest、WebSocket | 0 |
外部URL、外部script src | 0 |
iframe | 0 |
eval、Functionコンストラクタ | 0 |
データ保存はブラウザ内のlocalStorageだけです。外部通信を禁止した要件は守られていました。
原本はそのままでは動かなかった
静的なHTMLとCSSは表示されましたが、候補カードは0件でした。ChromeのconsoleにはSyntaxError: Invalid or unexpected tokenが出ています。


原因は「初期状態へ戻す」の確認文でした。JavaScriptのダブルクォート文字列内に改行が直接入り、スクリプト全体が読み込めなくなっていました。
// 原本
window.confirm("初期状態に戻しますか?
現在の入力内容はすべて失われます。");
// 最小修正
window.confirm("初期状態に戻しますか?\n現在の入力内容はすべて失われます。");
構文を直すと、保存データの不一致が見つかった
改行だけ直すと3件表示と候補追加は動きました。しかし「新しいモデル」を別名へ編集して再読み込みすると、名前が元に戻ります。名前検索も編集後の値に反応しませんでした。
原因は、画面の日本語ラベルと内部データのキーが一致していなかったことです。入力要素のdata-fieldは「モデル名」、内部オブジェクトはnameでした。原本の更新処理はmodel["モデル名"]という別プロパティを作っていました。
var FIELD_KEYS = {
"モデル名": "name",
"用途": "use",
"強み": "strength",
"注意点": "caution",
"料金メモ": "price",
"評価": "rating",
"お気に入り": "fav"
};


最小修正版を実際に操作した結果
修正版では、Model A〜Cの3件を表示した後、4件目を追加しました。モデル名を「Ox Alpha 検証用」、用途を「単一HTMLのコード生成」、評価を5、お気に入りをオンに変更しています。
再読み込み後も入力内容は復元されました。名前欄へOx Alphaと入力すると、該当する1件だけを表示します。


| 操作 | 結果 |
|---|---|
| 初期表示 | Model A〜Cの3件 |
| 候補追加 | 4件目を追加できた |
| 編集 | モデル名、用途、評価、お気に入りを変更できた |
| 再読み込み | 変更内容を復元した |
| 名前検索 | Ox Alphaで1件表示 |
| お気に入りだけ表示 | Model Bと追加候補の2件表示 |
| console error | 0件 |
| 初期化 | 確認ダイアログが開くところまで確認し、テストデータ削除はキャンセル |
390px幅でも横スクロールは出なかった
Chromeの表示幅を390px、高さを844pxへ変更しました。documentElement.clientWidth、documentElement.scrollWidth、body.scrollWidthはいずれも390pxで、横スクロールはありません。


一方、縦方向はかなり長くなります。候補が増えるとスクロール量も増えるため、多数のモデルを比較するなら、項目の折りたたみか、一覧表示と編集画面を分ける改善が必要です。
Ox Alphaの良かった点・弱かった点
| 良かった点 | 弱かった点 |
|---|---|
| 1ファイルでUI全体を生成 | 原本にJavaScript構文エラー |
| 外部通信なしの要件を順守 | 表示ラベルと保存キーの不一致 |
| label、aria-live、キーボード操作へ配慮 | 「動く」ことを内部で検証できていない |
| PCと390px向けのCSSを用意 | スマホでは縦に長い |
| 追加、検索、評価、保存の設計は揃っていた | 生成に約4分38秒かかった |
今回の印象は「設計と見た目は速いが、完成判定は人間側に残る」です。構文エラー自体は1文字分の修正ですが、2つ目のデータ不一致は、実際に編集して再読み込みしないと見つけにくい問題でした。
Ox Alphaを使うなら最低限行いたい5つの確認
fetch、外部URL、iframe、evalなどを先に確認します。
ブラウザを開く前に、読み込み自体を止める誤りを探します。
画面の見た目だけでなく、実行時エラーの有無を確認します。
保存キーや復元処理の不一致を見つけます。
横スクロール、ボタン、入力欄、縦方向の長さを確認します。
「画面が表示された」だけでは、アプリが動いた証明になりません。今回も、見た目だけなら完成に見える状態でJavaScript全体が停止していました。
よくある質問
Ox Alphaは無料ですか
2026年8月22日のOpenRouter表示と今回のAPIレスポンスでは、入力・出力とも0ドル、今回のcostも0ドルでした。公開期間、料金、回数制限は変わり得るため、利用日のモデルページとAPIを確認してください。
Ox Alphaはどの会社のモデルですか
公式には匿名の第三者モデル提供元とされています。根拠のないモデル名や会社名は断定できません。
生成コードはそのまま公開できますか
今回の原本はそのままでは動きませんでした。安全検査、構文チェック、主要操作、再読み込み、スマホ幅の確認を行い、必要なら権利・ライセンス・セキュリティの確認も加えてください。
reasoning tokensが0なら推論していないのですか
今回取得したusage上は0でしたが、reasoning.effort: highとexclude: trueは送信しています。提供元の集計方法を確認できないため、内部挙動までは断定しません。
まとめ:生成結果より「どこまで検証したか」が重要
- Ox Alphaは15,200文字の日本語Webアプリを一度に生成した
- APIはHTTP 200、6,494トークン、278.009秒、cost 0ドルだった
- 外部通信や危険な動的実行は検出されなかった
- 原本には構文エラーと保存キー不一致の2点があった
- 最小修正後は追加、編集、復元、検索、お気に入り、390px表示まで動いた
- 匿名提供元がプロンプトと回答を保持するため、機密情報は送らない
Ox Alphaは「コードの完成品を無検査で受け取る道具」ではなく、「実装のたたき台を短時間で作り、テスト結果と一緒に評価するモデル」として使うと扱いやすいです。
OpenRouterの登録、無料モデルの探し方、APIキーを環境変数へ保存する手順から確認したい場合は、OpenRouterの始め方を先に参照してください。




