ブログ
6ラウンドの独立テスト:Sensbench AI Builderの強化
この1週間、独立した第三者機関がSensbench AI BuilderとSensbench MCP(Model Context Protocol)サーバーに対して、6ラウンドにわたる深い敵対的テストを実施しました。彼らの指示はシンプルでした:それを壊してみてください。彼らはプロジェクトを生成し、ファームウェアをコンパイルし、同一のプロンプトを再実行し、キャッシュを調べ、実際のMQTTブローカーに接続し、請求を監査しました。ここに、何が起こったか、何を修正したか、そして現在の数字を示します。
テストの実施方法
以下のすべての主張は、実際の環境で検証されました:
- 実際のコンパイル — 生成されたすべてのスケッチは、実際のarduino-esp32ツールチェーン(ESP-IDFビルド)でコンパイルされました。リンターや偽のパスではありません。
- 実際のMQTT — 生成されたHome Assistantスケッチはシミュレーターにフラッシュされ、実際の公開MQTTブローカーに接続され、エンドツーエンドで駆動されました:
mosquitto_pub ON→ デバイスコールバック → リレーパルス → 状態の公開。ディスカバリーメッセージはhomeassistant/switch/…/configでキャプチャされました。 - キャッシュセマンティクス — 同一のプロンプト、意味的に異なるプロンプト、ボードの変更、制約の変更を再生し、キャッシュされた回答がそれを生成した正確なリクエストにのみ一致することを検証しました。
- 請求の照合 — すべての生成とコンパイルは、クォータ台帳と照合されました:成功は課金、キャッシュヒットは無料、失敗したコンパイルは無料。
ラウンド1:正直な数字は20%
最初のラウンドは謙虚になりました。5つの生成プロジェクトのうち、4つがコンパイルに失敗しました。これには、最も一般的な実世界のリクエストの1つであるガレージドアオープナーが含まれます。失敗は典型的な初心者レベルのC++の間違いでした:宣言前に使用されたヘルパー関数、手作りのプロトコルスタック、ライブラリのインクルード漏れ。評決は公正でした:「パイプラインは本物だが、ジェネレーターは信頼できない。」
私たちが変更したこと
議論する代わりに、パイプライン自体にガードレールを構築しました:
- 自動プロトタイプ注入 — コンパイルツールチェーンはArduinoの自動プロトタイプステップを実行しないため、各コンパイルの前に正しい位置に関数プロトタイプを自動的に注入するようにしました。
- 内部自己チェックコンパイル — 生成されたすべてのプロジェクトは、ユーザーに表示される前に内部でコンパイルされます。失敗した場合、コンパイラエラーがフィードバックされ、モデルは最大2回再生成します。ユーザーは検証済みの結果のみを見ることができます。
- 手作りスタックよりも成熟したライブラリ — MQTTは実績のあるPubSubClientライブラリを使用するようになりました。モデルはMQTTプロトコルをゼロから再実装することを明示的に禁止されています。
- 要件完全性チェック — コンパイルだけでは不十分です。プロンプトがHome Assistant MQTTを要求する場合、コードには実際に機能するMQTTクライアント(subscribe/publish/callbackロジック)が含まれている必要があります。ローカルのみのデモを本物に見せかけたものは拒否され、再生成されます。
- 検証済みのみキャッシュ — 回答キャッシュには、コンパイルと要件チェックの両方に合格したプロジェクトのみが保存されます。人気のあるプロンプトを繰り返すと、常に検証済みのビルドが返されます。
- シミュレーター現実ルール — 生成されたスケッチは、シミュレーターの実際のアクセスポイント名、到達可能なデフォルトMQTTブローカー、双方向のON/OFF処理、Home Assistant用の保持された初期状態、正確なセンサータイプ(リードスイッチはリードスイッチのまま)をデフォルトで使用するようになりました。
現在の数字
- 実世界のリクエストでの初期合格率:6分の1。
- 修正後の合格率(繰り返しの独立ラウンド):6回連続のコンパイル+実際のMQTTロジック — キャッシュヒット応答を含む。
- キャッシュセマンティックテスト:6リクエスト、不一致なし。同一のプロンプトはバイト単位で同一のコードを返し、変更されたプロンプト、ボード、制約は常に新しいものを生成します。
- エンドツーエンドMQTT:デバイス → ブローカー → Home Assistantスタイルのサブスクリプション → コマンド → リレーパルス → 状態公開、すべて実際のブローカー(認証付きブローカーを含む)で確認されました。
- MCPサーバー:8/8ツールをエンドツーエンドで実行。クォータ請求が正確に照合されました(成功は課金、キャッシュヒットと失敗は無料)。
私たちがまだオープンにしていること
テスト中に文書化した正直な制限事項:
- Home Assistant統合はデフォルトで手動MQTTです(ディスカバリー設定は公開されますが、HAの自動ディスカバリー設定はHAのMQTT設定に依存します)。
- シミュレーターのサンドボックスには送信許可リストがあります。一部の公開ブローカーは到達可能ですが(例:broker.emqx.io)、他のブローカーは到達できません。何が機能するかはドキュメントを確認してください。
- ハードウェアの選択はリクエストに意味的に一致しますが、常に文字通りではありません。モデルは同等のセンサークラスを選択する場合があり、生成されたプランのノートにこれをフラグします。
なぜこれを公開するのか
誰でもデモビデオを公開できます。私たちは代わりに、失敗したラウンド、修正、再テストを含む完全な軌跡を、再現可能な方法論とともに公開することを選びました。自分で壊してみたい場合、AI Builderは1日1ビルド無料で、シミュレーターはブラウザ内で完全に動作します。MCPサーバーは実際のクォータ会計で利用可能です。自分のプロンプト、自分のブローカー、自分の懐疑心を持ってきてください。
— Sensbenchチーム