為 Laravel 開發挑選合適的 AI 模型比看起來要困難得多。
因此,在過去的幾周裡,我們進行了一項名為“Boost 基準測試”(Boost Benchmarks)的內部實驗。我們的目標有兩個:
- 找出哪些 AI 模型處理實際 Laravel 任務的效果最好。
- 衡量 Laravel Boost(一個為 Laravel 應用程式提供 AI 編碼上下文的 MCP 伺服器)是否真的能提升智慧體效能(簡短回答:確實可以)。
Boost 基準測試是一個評估框架,它讓 AI 編碼智慧體去處理真實的 Laravel 問題,使用 Pest 測試來驗證其輸出,並記錄執行過程中的一切。這些資料包括測試結果、Token 使用量、工具呼叫、執行時間和總成本。
我們測試了六款模型:Anthropic 的 haiku 4.5、sonnet 4.6 和 opus 4.6;月之暗面的 kimi k2.5;以及 OpenAI 的 gpt-5.3 codex 和 gpt-5.4。
我們計劃近期將該框架開源,但現在先簡要介紹一下該系統的工作原理。如果您有任何疑問或想討論該實驗,歡迎透過 @pushpak1300 聯絡我。
為何進行 Boost 基準測試
在該框架出現之前,改進 Laravel Boost 大多靠猜測。每當我們新增新工具、更新指南或刪除功能時,我們無法確信這些更改是否真的有助於智慧體在不同模型下表現得更好。
這正是我們構建基準測試框架的原因。現在流程清晰多了:執行評估,對 Boost 進行更改,重新執行評估,然後比較結果。這個閉環使我們能夠衡量每次更改的實際影響,而不是依賴於假設。
在此過程中,資料也回答了一個更廣泛的問題:究竟哪款 AI 模型最適合 Laravel 開發?
我們如何衡量 AI 模型在 Laravel 上的表現
AI 編碼智慧體已經變得非常強大且快速,但我們真的能測試出它們的工作效果嗎?我們的每項評估都檢查兩點:
- 功能性:實現是否有效?這是透過真實的 HTTP 請求和針對正在執行的應用程式的測試斷言來驗證的。
- 架構:程式碼是否遵循 Laravel 規範?這意味著沒有除錯痕跡、類繼承正確,且沒有明顯的生產環境錯誤。
評估如何工作
每項評估都位於 evals/ 目錄下,包含三個部分:
智慧體從一個沒有任何預構建方案的準系統 Laravel 應用程式開始。它必須檢查專案、實現功能,並留下能夠透過套件中所有測試的程式碼。
17 項評估任務
基準測試套件涵蓋了從標準路由到專業框架 API 的一系列真實 Laravel 工作。
| # | 任務 | 複雜度 |
|---|---|---|
| 001 | 新增帶有 Blade 檢視的 Web + API 路由 | 低 |
| 002 | 排程佇列任務 | 低 |
| 003 | 帶有驗證的 RESTful Post CRUD API | 中 |
| 004 | 互動式 Artisan 命令 | 中 |
| 005 | 快取層實現 | 中 |
| 006 | Eloquent 關係(BelongsTo, HasMany 等) | 中 |
| 007 | 事件與監聽器 | 中 |
| 008 | 通知系統 | 中 |
| 009 | Inertia.js 共享資料設定 | 中 |
| 010 | 檔案上傳與儲存 | 中 |
| 011 | Livewire 計數器 + 聯絡表單元件 | 高 |
| 012 | Laravel Folio 頁面路由 | 中 |
| 013 | Laravel Pennant 功能標誌 | 高 |
| 014 | Inertia.js 表單驗證 | 高 |
| 015 | 帶有自定義工具的 MCP 伺服器 | 高 |
| 016 | Laravel AI SDK 智慧體迴圈 | 高 |
| 017 | Socialite GitHub OAuth 登入 | 高 |
執行評估
典型的執行過程如下:
對於每個模型,執行器會將 input/ 目錄複製到臨時工作區,透過 OpenCode 使用提示詞和模型配置執行智慧體,然後合併 suite/ 目錄並執行 Pest。結果以 JSON 格式寫入 results/<eval_name>/。多項評估併發執行。
結果
使用 Boost
| 評估 | 任務 | 測試 | haiku-4.5 | sonnet-4.6 | kimi-k2.5 | gpt-5.3-codex | gpt-5.4 | opus-4.6 |
|---|---|---|---|---|---|---|---|---|
| 001 | 路由 | 10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 |
| 002 | 佇列任務 | 9 | ✅ 9/9 | ✅ 9/9 | ❌ 8/9 | ✅ 9/9 | ✅ 9/9 | ✅ 9/9 |
| 003 | Post CRUD API | 41 | ✅ 41/41 | ✅ 41/41 | ✅ 41/41 | ❌ 39/41 | ❌ 39/41 | ✅ 41/41 |
| 004 | Artisan 命令 | 10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 |
| 005 | 快取 | 11 | ✅ 11/11 | ✅ 11/11 | ✅ 11/11 | ✅ 11/11 | ✅ 11/11 | ✅ 11/11 |
| 006 | Eloquent 關係 | 44 | ❌ 21/44 | ✅ 44/44 | ✅ 44/44 | ✅ 44/44 | ✅ 44/44 | ✅ 44/44 |
| 007 | 事件與監聽器 | 21 | ✅ 21/21 | ✅ 21/21 | ❌ 18/21 | ✅ 21/21 | ✅ 21/21 | ✅ 21/21 |
| 008 | 通知 | 9 | ✅ 9/9 | ✅ 9/9 | ✅ 9/9 | ✅ 9/9 | ✅ 9/9 | ✅ 9/9 |
| 009 | Inertia 共享資料 | 15 | ❌ 12/15 | ❌ 5/15 | ❌ 14/15 | ✅ 15/15 | ✅ 15/15 | ❌ 14/15 |
| 010 | 檔案上傳 | 31 | ❌ 29/31 | ❌ 28/31 | ✅ 31/31 | ✅ 31/31 | ✅ 31/31 | ✅ 31/31 |
| 011 | Livewire 元件 | 19 | ❌ 17/19 | ❌ 17/19 | ❌ 17/19 | ✅ 19/19 | ✅ 19/19 | ❌ 7/19 |
| 012 | Folio 頁面 | 18 | ❌ 8/18 | ❌ 15/18 | ❌ 9/18 | ✅ 18/18 | ✅ 18/18 | ✅ 18/18 |
| 013 | Pennant 功能標誌 | 17 | ❌ 12/17 | ✅ 17/17 | ✅ 17/17 | ✅ 17/17 | ✅ 17/17 | ❌ 16/17 |
| 014 | Inertia 表單 | 19 | ❌ 17/19 | ✅ 19/19 | ✅ 19/19 | ✅ 19/19 | ✅ 19/19 | ✅ 19/19 |
| 015 | MCP 伺服器 | 13 | ❌ 12/13 | ✅ 13/13 | ✅ 13/13 | ✅ 13/13 | ✅ 13/13 | ✅ 13/13 |
| 016 | AI SDK 智慧體 | 13 | ✅ 13/13 | ✅ 13/13 | ❌ 12/13 | ✅ 13/13 | ✅ 13/13 | ✅ 13/13 |
| 017 | Socialite GitHub 登入 | 15 | ✅ 15/15 | ✅ 15/15 | ✅ 15/15 | ✅ 15/15 | ✅ 15/15 | ✅ 15/15 |
| 評估透過數 | 9/17 | 13/17 | 11/17 | 16/17 | 16/17 | 14/17 |
未使用 Boost
| 評估 | 任務 | 測試 | haiku-4.5 | sonnet-4.6 | kimi-k2.5 | gpt-5.3-codex | gpt-5.4 | opus-4.6 |
|---|---|---|---|---|---|---|---|---|
| 001 | 路由 | 10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 |
| 002 | 佇列任務 | 9 | ✅ 9/9 | ✅ 9/9 | ❌ 8/9 | ✅ 9/9 | ❌ 6/9 | ✅ 9/9 |
| 003 | Post CRUD API | 41 | ❌ 34/41 | ❌ 37/41 | ✅ 41/41 | ❌ 37/41 | ❌ 37/41 | ✅ 41/41 |
| 004 | Artisan 命令 | 10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ✅ 10/10 | ❌ 0/10 |
| 005 | 快取 | 11 | ✅ 11/11 | ✅ 11/11 | ✅ 11/11 | ✅ 11/11 | ✅ 11/11 | ✅ 11/11 |
| 006 | Eloquent 關係 | 44 | ✅ 44/44 | ✅ 44/44 | ✅ 44/44 | ✅ 44/44 | ✅ 44/44 | ✅ 44/44 |
| 007 | 事件與監聽器 | 21 | ❌ 7/21 | ✅ 21/21 | ❌ 12/21 | ✅ 21/21 | ✅ 21/21 | ✅ 21/21 |
| 008 | 通知 | 9 | ❌ 8/9 | ✅ 9/9 | ❌ 1/9 | ✅ 9/9 | ❌ 1/9 | ✅ 9/9 |
| 009 | Inertia 共享資料 | 15 | ❌ 5/15 | ✅ 15/15 | ❌ 14/15 | ✅ 15/15 | ✅ 15/15 | ❌ 1/15 |
| 010 | 檔案上傳 | 31 | ❌ 27/31 | ❌ 28/31 | ✅ 31/31 | ✅ 31/31 | ❌ 30/31 | ❌ 25/31 |
| 011 | Livewire 元件 | 19 | ❌ 14/19 | ✅ 19/19 | ❌ 5/19 | ✅ 19/19 | ✅ 19/19 | ✅ 19/19 |
| 012 | Folio 頁面 | 18 | ❌ 0/18 | ❌ 9/18 | ❌ 9/18 | ✅ 18/18 | ✅ 18/18 | ❌ 8/18 |
| 013 | Pennant 功能標誌 | 17 | ❌ 14/17 | ✅ 17/17 | ❌ 16/17 | ✅ 17/17 | ✅ 17/17 | ✅ 17/17 |
| 014 | Inertia 表單 | 19 | ❌ 17/19 | ✅ 19/19 | ✅ 19/19 | ✅ 19/19 | ✅ 19/19 | ✅ 19/19 |
| 015 | MCP 伺服器 | 13 | ❌ 0/13 | ✅ 13/13 | ✅ 13/13 | ❌ 0/13 | ✅ 13/13 | ✅ 13/13 |
| 016 | AI SDK 智慧體 | 13 | ❌ 6/13 | ❌ 10/13 | ❌ 11/13 | ✅ 13/13 | ✅ 13/13 | ✅ 13/13 |
| 017 | Socialite GitHub 登入 | 15 | ✅ 15/15 | ✅ 15/15 | ✅ 15/15 | ✅ 15/15 | ✅ 15/15 | ✅ 15/15 |
| 評估透過數 | 6/17 | 13/17 | 9/17 | 15/17 | 13/17 | 13/17 |
對比總結
| 模型 | 透過測試 (Boost) | 透過測試 (無 Boost) | 增量 | 測試準確率 (Boost) | 平均耗時 (Boost) | 平均耗時 (無 Boost) |
|---|---|---|---|---|---|---|
| haiku-4.5 | 267/315 | 231/315 | +36 | 84.8% | 145s | 164s |
| sonnet-4.6 | 297/315 | 296/315 | +1 | 94.3% | 179s | 208s |
| kimi-k2.5 | 298/315 | 270/315 | +28 | 94.6% | 108s | 122s |
| gpt-5.3-codex | 313/315 | 298/315 | +15 | 99.4% | 191s | 175s |
| gpt-5.4 | 312/315 | 299/315 | +13 | 99.0% | 210s | 202s |
| opus-4.6 | 301/315 | 275/315 | +26 | 95.6% | 217s | 275s |
Boost 是否提升了 AI 編碼智慧體?
簡短的回答是:是的。Boost 對我們測試的每一款模型都有幫助。

當我們開始進行基準測試時,目標並不是為了證明 Laravel Boost 有效,僅僅是為了觀察啟用和停用它之後會發生什麼。結果出奇地清晰。在整個基準測試套件中,每一款模型在啟用 Boost 後,表現都有所提升或保持大致相同。
- haiku 4.5
- 整個基準測試中提升最大的模型之一。
- 在沒有 Laravel Boost 的情況下,它在複雜的評估任務中表現非常吃力。
- 啟用 Boost 後,該模型在幾項較難的任務上有所恢復,總體評估透過數從 6/17 提升至 9/17。
- gpt 5.3 codex
- gpt 5.4
- 在整個套件中表現最穩定的模型。
- 在啟用 Laravel Boost 的情況下,它也達到了 16/17 項評估透過。
- 它僅有的失敗並非由於邏輯錯誤,而是源於微小的配置細節,從而導致未能完全透過。
- kimi k2.5
- 基準測試套件中速度最快的模型。
- 在啟用 Boost 的情況下,平均每項評估僅需 108 秒。
- 保持 94.6% 的測試準確率,同時比其他模型快得多。
- 總體而言,它在所測試的模型中提供了速度與正確性的最佳平衡。
- sonnet 4.6
- 即使沒有 Laravel Boost,也已經非常強大。
- 沒有 Boost 時,它通過了 296/315 個測試用例。
- 啟用 Boost 後,它達到了 297/315,小幅提升了 +1 個用例。
- 有趣的是效能表現。啟用 Boost 後,平均執行時間從 208 秒縮短至 179 秒,這意味著模型在保持相同正確性水平的同時變得明顯更快了。
綜上所述,結果說明了一個簡單的道理:Laravel Boost 能持續提升在真實 Laravel 任務中的表現,在某些情況下,它還能幫助已經很強大的模型跨越最後一道門檻,從而圓滿透過評估。
我們的收穫
Boost 在複雜任務上幫助最大
對於簡單的任務,如新增路由、排程佇列任務或編寫快取層,智慧體通常已經掌握了模式。Boost 會增加 MCP 呼叫和額外 Token,但很少改變最終結果。
真正的價值體現在開發者通常需要查閱文件的較難問題上。例如構建自定義 MCP 伺服器、使用 Laravel AI SDK 智慧體迴圈、配置 Pennant 功能標誌,或整合 Inertia 共享資料。在這些情況下,Boost 提供了關鍵的上下文,幫助智慧體正確完成任務。
LLM 行為具有不確定性
我們觀察到在重新執行某些評估時存在明顯的變數。例如,在啟用 Boost 的情況下,haiku 4.5 在 Livewire 評估中的成績透過重新執行,從 7/19 提升到了 17/19。gpt-5.3 codex 也在一次重跑中,在四項評估上實現了從失敗到透過的轉變,儘管模型、提示詞和環境完全相同。
因此,單次執行並不總是決定性的。我們正在考慮的一種方法是多次執行每項評估並取多數結果。目前,結果應被視為方向性訊號,而非固定的測量值。
微小的配置錯誤可能導致整個評估失敗
一個常見的失敗模式是配置錯誤。配置錯誤的服務提供商、不正確的繫結或損壞的遷移可能會導致 Laravel 應用程式無法啟動。發生這種情況時,即使核心邏輯正確,所有測試也會失敗。
例如,haiku 4.5 在沒有 Boost 的情況下在 MCP 伺服器評估中得分為 0/13,這很可能是因為伺服器配置不當導致的。應用程式從未啟動,因此無法執行任何測試。這凸顯了 AI 輔助 Laravel 開發中的一個現實風險:程式碼看起來可能是對的,但一個小的設定問題就可能悄無聲息地破壞整個應用程式。
Boost 引入了一些開銷
我們還觀察到啟用 Boost 會增加 Token、上下文甚至時間的開銷。由於智慧體需要進行 MCP 呼叫來檢索文件和框架上下文,Token 的總使用量自然會增加。
這在最大正確性和最小 Token 使用量之間產生了一種權衡。
實際上,成本差異非常小。在我們的執行中,平均增量每項評估大約為 0.05 美元到 0.20 美元,這處於 API 層級,在訂閱層面幾乎可以忽略不計。
儘管如此,減少開銷仍是我們關注的重點。Boost 最近的許多改進都集中在減少不必要的上下文、刪除冗餘指南以及最佳化工具輸出上,以便智慧體在不膨脹提示詞的情況下獲得所需資訊。
我們的目標是在保持 Laravel Boost 效能優勢的同時,儘可能減少上下文和 Token 開銷。
接下來要做什麼
我們正從多個方向擴充套件 Boost 基準測試:
-
更多的評估任務
套件正在增長,以覆蓋更多的 Laravel 模式和邊界情況。
-
新增更多的評估引數
目前,我們僅根據 Pest 測試和架構測試來評估正確性。展望未來,我們還需要加入對智慧體行為的期望。例如:智慧體是否呼叫了特定工具或觸發了特定技能?
-
更多的模型
到目前為止,我們已經在完整的基準測試套件上運行了 gpt-5.4、opus-4.6、sonnet-4.6、gpt-5.3 codex、haiku 4.5 和 kimi-k2.5。隨著新模型的釋出,我們將讓它們運行同樣的評估,以跟蹤隨時間的進展。
-
Web UI
一個用於比較執行結果、深入分析失敗原因並以互動方式探索結果的儀表板。
與此同時,如果您想在 AI 模型的幫助下更快速、更高效地構建 Laravel 應用程式,請嘗試使用 Laravel Boost。檢視我們的結果,選擇最適合您需求的 AI 智慧體。
