Skip to main content

為什麼需要自定義 Agent

Laravel Boost 內建支援 Claude Code、Cursor、Codex、GitHub Copilot(VS Code)等主流 AI 編碼工具。但若要適配公司內部工具、新興 AI Agent 或獨立的工作流,就需要使用 Boost 的擴充套件機制來實現自定義 Agent。 自定義 Agent 適用的場景:
  • 使用 Boost 尚未支援的 IDE 或 AI 工具
  • 希望將 Boost 整合到公司內部開發流程或自有 CI/CD 流水線中
  • Agent 擁有獨立的配置檔案格式或安裝步驟

Boost 的擴充套件架構

Agent 基類

所有 Agent 都繼承 Laravel\Boost\Install\Agents\Agent。該抽象類提供的能力:
  • Agent 的檢測(系統級 / 專案級)
  • MCP 伺服器的安裝(基於檔案 / 基於 Shell 命令)
  • 指南(Guidelines)的轉換鉤子(transformGuidelines
必須實現的抽象方法有 2 個(如下表還列出了常見需要覆蓋的方法)。

3 個契約

為按需啟用 Boost 的功能,只需實現下面所需的契約。
這 3 個契約都是可選的。也可以只支援指南而不支援 MCP。

SupportsGuidelines 契約

guidelinesPath() 返回生成的指南要寫入的路徑。例如 Claude Code 是 CLAUDE.md,Cursor 是 .cursor/rules/laravel-boost.mdc,需要匹配 Agent 讀取的格式。 transformGuidelines() 是對生成後的 Markdown 進行加工的鉤子。可以新增 Agent 專屬頭部或轉換為特殊格式。Agent 基類的預設實現原樣返回字串。

SupportsMcp 契約

由於 Agent 基類已提供 installMcp()installHttpMcp() 的預設實現,多數情況下只需覆蓋 mcpInstallationStrategy()mcpConfigPath() 即可。 安裝策略有兩種:

SupportsSkills 契約

返回 Agent 讀取的 Skill 目錄路徑。例如 Claude Code 是 .claude/skills,Cursor 是 .cursor/skills,需要匹配 Agent 的規範。

建立自定義 Agent

下面我們來實現一個獨立的 Agent 類。這裡以嵌入自有 CI/CD 工作流的虛構 Agent「MyAgent」為例。
1

建立 Agent 類

建立 app/Boost/MyAgent.php
systemDetectionConfig()projectDetectionConfig() 用於 Boost 在系統與專案中自動檢測 Agent。執行 boost:install 時會自動把匹配的 Agent 顯示為候選。
2

註冊 Agent

App\Providers\AppServiceProviderboot 方法中註冊自定義 Agent。
註冊後執行 php artisan boost:install,MyAgent 就會出現在選項中。
3

驗證

在選擇安裝目標 Agent 的介面會顯示 MyAgent。選擇後會生成 MYAGENT.md.myagent.json.myagent/skills/

指南的自定義

guidelinesPath 的設定

不同 Agent 讀取指南檔案的位置不同。
若允許透過配置檔案覆蓋,會更靈活。

需要 frontmatter 的 Agent

對於像 Cursor 的 .cursor/rules/*.mdc 這種需要 frontmatter 的格式,讓 frontmatter() 返回 true

指南的後處理

可以使用 transformGuidelines() 加工生成後的 Markdown。

新增自定義 AI 指南

要向 Boost 的指南中追加專案特有的規則,可以把 Blade 檔案放入 .ai/guidelines/ 目錄。
示例檔案:
執行 boost:install 後,這些指南會自動與 Boost 內建指南合併輸出。

覆蓋內建指南

若把自定義檔案放在與 Boost 內建指南相同的路徑下,將優先使用你的檔案。

新增自定義 Skill

建立 SKILL.md

.ai/skills/{Skill 名}/SKILL.md 中定義 Skill。
SKILL.md 由 YAML frontmatter 與 Markdown 指令構成。

生成發票 PDF

PDF 透過 barryvdh/laravel-dompdf 生成:
Skill 的設計理念是「按需載入」。將始終需要的資訊放在指南中,任務專屬的詳細模式放在 Skill 中,可以最佳化 AI 的上下文使用。

覆蓋內建 Skill

如果使用與 Boost 內建 Skill 相同名字建立自定義 Skill,將覆蓋內建版本。

為第三方包新增 Boost 支援

要為自己的包新增 Boost 支援,將配置檔案放到包的 resources/boost/ 目錄下即可。

新增指南

新增 Skill

當包使用者執行 php artisan boost:install 時,這些指南與 Skill 會自動被檢測並展示為可安裝物件。

實戰示例:面向自研 CI/CD Agent 的自定義 Agent

下面是嵌入公司 CI/CD 流水線的虛構 Agent「PipelineAgent」的完整實現示例。該 Agent 僅支援指南,不支援 MCP 與 Skill。
AppServiceProvider 中註冊:
在 CI 環境中可以透過下面的命令只生成指南:

參考連結

ClaudeCode.php — 官方實現示例

可從原始碼檢視隨 Boost 附帶的 ClaudeCode Agent 的完整實現。

Agent Skills

可參考 SKILL.md 的格式規範與最佳實踐。

Laravel Boost Custom Agent for GitHub Copilot CLI

同時支援 Copilot CLI 與 Testbench 的公開包實現示例

Laravel Boost Custom Agent for PhpStorm with GitHub Copilot

面向 PhpStorm GitHub Copilot 外掛的公開包實現示例
最後修改於 2026年7月31日