跳转到主要内容

为什么需要自定义 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月18日