> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Skills

> 说明如何加载可复用的 SKILL.md，并通过 SessionConfig 管理领域相关的指令。

## Skills

Skills 是可复用的 prompt 模块。可以加载 `SKILL.md`，把面向特定领域的指令添加到会话中。

## 概览

* 可以将领域知识作为技能复用
* 可以在项目之间共享相同的行为
* 可以按会话切换启用 / 禁用

在 Laravel 版中使用 `SessionConfig` 的 `skillDirectories` 和 `disabledSkills` 进行配置。

## 基本使用方式

在 `skillDirectories` 中指定父目录后，会加载其下每个子目录中的 `SKILL.md`。

```php theme={null}
use Revolution\Copilot\Contracts\CopilotSession;
use Revolution\Copilot\Facades\Copilot;
use Revolution\Copilot\Types\SessionConfig;

Copilot::start(function (CopilotSession $session) {
    $response = $session->sendAndWait(prompt: '从安全角度评审这个差异');

    dump($response->content());
}, config: new SessionConfig(
    skillDirectories: [
        base_path('skills'),
    ],
));
```

也可以用数组形式指定。

```php theme={null}
Copilot::run(
    prompt: '提出 README 的改进建议',
    config: [
        'skillDirectories' => [base_path('skills')],
    ],
);
```

## 禁用技能

使用 `disabledSkills` 可以只禁用一部分已加载的技能。

```php theme={null}
$config = new SessionConfig(
    skillDirectories: [base_path('skills')],
    disabledSkills: ['experimental-feature', 'deprecated-tool'],
);
```

## 目录结构

```text theme={null}
skills/
├── code-review/
│   └── SKILL.md
└── documentation/
    └── SKILL.md
```

在 `skillDirectories` 中指定像 `skills/` 这样的父目录。

## SKILL.md 的格式

`SKILL.md` 是 Markdown，可以选择性附带 YAML frontmatter。

```markdown theme={null}
---
name: code-review
description: Specialized code review capabilities
---

# Code Review Guidelines

When reviewing code, always check for:

1. Security vulnerabilities
2. Performance issues
3. Code style
4. Test coverage
```

frontmatter 的主要项：

* `name`: 技能标识（在 `disabledSkills` 中指定的名字）
* `description`: 技能的简短描述

省略 `name` 时会使用目录名。

## 与 Custom Agents 结合

在 `customAgents[].skills` 中指定技能名后，当目标代理启动时，会事先加载该技能的内容。

```php theme={null}
use Revolution\Copilot\Types\SessionConfig;

$config = new SessionConfig(
    skillDirectories: [base_path('skills/security')],
    customAgents: [
        [
            'name' => 'security-auditor',
            'description' => 'Security-focused code reviewer',
            'prompt' => 'Focus on OWASP Top 10 vulnerabilities',
            'skills' => ['security-scan', 'dependency-check'],
        ],
    ],
);
```

> 省略 `skills` 时，代理中不会注入技能内容。

## 通过 RPC 查看和操作

技能的发现、启用 / 禁用也可以通过 RPC 操作。

```php theme={null}
// 在服务器级别发现技能
$result = Copilot::client()->rpc()->skills()->discover();

// 会话内技能列表
$session->rpc()->skills()->list();

// 在会话内单独切换启用 / 禁用
$session->rpc()->skills()->enable(['name' => 'security-scan']);
$session->rpc()->skills()->disable(['name' => 'security-scan']);
```

## 最佳实践

* 按领域拆分技能（如 `skills/security`、`skills/testing`）
* 在 frontmatter 中写上 `name` 和 `description`
* 有冲突的指令时通过 `disabledSkills` 显式排除
* 先单独验证再组合多个技能

## 参考

* [SessionConfig](/zh/packages/laravel-copilot-sdk/session-config)
* [Custom Agents](/zh/packages/laravel-copilot-sdk/custom-agents)
* [RPC](/zh/packages/laravel-copilot-sdk/rpc)


## Related topics

- [laravel/agent-skills — Laravel 官方 AI 智能体技能集](/zh/blog/agent-skills-introduction.md)
- [Laravel Boost](/zh/boost.md)
- [创建 Boost 的自定义 Agent](/zh/advanced/boost-custom-agent.md)
- [Laravel 与 AI 开发](/zh/ai.md)
- [流式事件](/zh/packages/laravel-copilot-sdk/streaming-events.md)
