为什么需要自定义 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)
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 契约
.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\AppServiceProvider 的 boot 方法中注册自定义 Agent。php artisan boost:install,MyAgent 就会出现在选项中。3
验证
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
如果使用与 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 中注册:
参考链接
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 插件的公开包实现示例